diff --git a/.dockerignore b/.dockerignore index fbde41c..21a26f4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,16 +1,7 @@ -# پیش‌فرض همه چیز ignore؛ فقط آنچه برای Docker لازم است را باز کن - * -!deploy-bundle.tar.gz -!prisma-client.tar.gz +!runtime +!runtime/** !Dockerfile !docker-compose.yml !docker-entrypoint.sh -!dist -!dist/** -!package.json -!package-lock.json -!prisma -!prisma/** -!prisma.config.ts !.env.example diff --git a/.gitignore b/.gitignore index 0d087da..a8ce662 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,16 @@ -# compiled output — dist را برای دیپلوی روی گیت می‌فرستیم -# /dist +# خروجی لوکال — روی گیت نرود +/dist /dist-docker /node_modules /build /generated .deploy-pack server-runtime.tgz +deploy-bundle.tar.gz +prisma-client.tar.gz + +# runtime باندل‌شده (~23MB) برای Dokploy روی گیت می‌رود + # logs logs diff --git a/Dockerfile b/Dockerfile index 2254e20..1837e5d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,33 +1,17 @@ -# bookworm کامل تا OpenSSL آماده باشد (بدون apt روی سرور ایران) -FROM node:22-bookworm +# ایمیج اجرا: runtime از گیت می‌آید. npm و node_modules داخل داکر نیست. +ARG NODE_IMAGE=node:22-bookworm +FROM ${NODE_IMAGE} WORKDIR /app ENV NODE_ENV=production ENV TZ=Asia/Tehran +ENV PRISMA_QUERY_ENGINE_LIBRARY=/app/runtime/libquery_engine-debian-openssl-3.0.x.so.node -COPY deploy-bundle.tar.gz /tmp/deploy-bundle.tar.gz -RUN tar -xzf /tmp/deploy-bundle.tar.gz -C /app \ - && rm /tmp/deploy-bundle.tar.gz - -# هیچ دستور prisma یا npm روی سرور اجرا نمی‌شود؛ همه چیز از قبل ساخته آمده است -ENV CHECKPOINT_DISABLE=1 -ENV DO_NOT_TRACK=1 -ENV PRISMA_HIDE_UPDATE_MESSAGE=1 - -COPY package.json package-lock.json prisma.config.ts /app/ -COPY prisma /app/prisma - -# کلاینت Prisma روی سیستم دولوپر با scripts/pack-prisma-client.sh ساخته می‌شود -COPY prisma-client.tar.gz /tmp/prisma-client.tar.gz -RUN rm -rf /app/node_modules/.prisma/client \ - && mkdir -p /app/node_modules/.prisma \ - && tar -xzf /tmp/prisma-client.tar.gz -C /app/node_modules/.prisma \ - && rm /tmp/prisma-client.tar.gz - -# dist آخر باشد تا دیپلوی معمولی فقط همین لایه را دوباره بسازد -COPY dist /app/dist +COPY runtime ./runtime COPY docker-entrypoint.sh /app/docker-entrypoint.sh -RUN chmod +x /app/docker-entrypoint.sh +RUN chmod +x /app/docker-entrypoint.sh \ + && test -f /app/runtime/server.cjs \ + && test -f /app/runtime/libquery_engine-debian-openssl-3.0.x.so.node EXPOSE 3000 ENTRYPOINT ["./docker-entrypoint.sh"] diff --git a/Dockerfile.dist b/Dockerfile.dist index 2db923d..c0fa4a1 100644 --- a/Dockerfile.dist +++ b/Dockerfile.dist @@ -1,32 +1,17 @@ -# ایمیج اجرا: dist از گیت می‌آید، فقط dependencyهای production نصب می‌شود -ARG NPM_REGISTRY=https://registry.npmmirror.com - -FROM node:22-alpine -ARG NPM_REGISTRY=https://registry.npmmirror.com +# همان Dockerfile: runtime باندل‌شده از گیت، بدون npm +ARG NODE_IMAGE=node:22-bookworm +FROM ${NODE_IMAGE} WORKDIR /app ENV NODE_ENV=production -ENV NPM_CONFIG_REGISTRY=${NPM_REGISTRY} +ENV TZ=Asia/Tehran +ENV PRISMA_QUERY_ENGINE_LIBRARY=/app/runtime/libquery_engine-debian-openssl-3.0.x.so.node -COPY package.json package-lock.json ./ -COPY prisma ./prisma -COPY prisma.config.ts ./ - -RUN set -eux; \ - mirror="$(echo "${NPM_REGISTRY}" | sed 's:/*$::')"; \ - sed -i \ - -e "s|https://registry.npmjs.org|${mirror}|g" \ - -e "s|https://registry.npmmirror.com|${mirror}|g" \ - package-lock.json; \ - npm config set registry "${mirror}"; \ - npm ci --omit=dev --no-audit --no-fund; \ - npm install prisma ts-node typescript --no-save --no-audit --no-fund --registry="${mirror}"; \ - npx prisma generate - -# بیلد لوکال که داخل گیت است -COPY dist ./dist -COPY docker-entrypoint.sh ./ -RUN chmod +x docker-entrypoint.sh +COPY runtime ./runtime +COPY docker-entrypoint.sh /app/docker-entrypoint.sh +RUN chmod +x /app/docker-entrypoint.sh \ + && test -f /app/runtime/server.cjs \ + && test -f /app/runtime/libquery_engine-debian-openssl-3.0.x.so.node EXPOSE 3000 ENTRYPOINT ["./docker-entrypoint.sh"] diff --git a/deploy-bundle.tar.gz b/deploy-bundle.tar.gz deleted file mode 100644 index 55e4bac..0000000 Binary files a/deploy-bundle.tar.gz and /dev/null differ diff --git a/dist/agent/agent.controller.d.ts b/dist/agent/agent.controller.d.ts deleted file mode 100644 index 82366d0..0000000 --- a/dist/agent/agent.controller.d.ts +++ /dev/null @@ -1,191 +0,0 @@ -import type { AuthPrincipal } from '../common/decorators/current-user.decorator'; -import { AgentService } from './agent.service'; -import { CompleteReminderDto, CreateMeetingDto, CreateReminderDto } from './dto/agent.dto'; -export declare class AgentController { - private readonly agentService; - constructor(agentService: AgentService); - categories(): Promise<{ - usage: { - id: string; - title: string; - subtitle: string; - }[]; - seasons: { - id: string; - title: string; - description: string; - }[]; - }>; - profile(user: AuthPrincipal): Promise<{ - id: string; - firstName: string; - lastName: string; - code: string; - levelLabel: string; - nextLevelLabel: string; - pointsToNext: number; - levelProgress: number; - phone: string; - customersCount: number; - ordersCount: number; - salesVolumeToman: number; - profitToman: number; - periodLabel: string; - }>; - customers(user: AuthPrincipal, q?: string, status?: string): Promise<{ - id: string; - name: string; - contactName: string; - phone: string; - status: string; - avatarLetter: string; - avatarColor: string; - totalPurchaseToman: number; - orderCount: number; - averageOrderToman: number; - levelLabel: string; - firstPurchaseDate: string; - agentCode: string | undefined; - agentName: string | undefined; - }[]>; - customerDetail(user: AuthPrincipal, id: string): Promise<{ - customer: { - id: string; - name: string; - contactName: string; - phone: string; - status: string; - avatarLetter: string; - avatarColor: string; - totalPurchaseToman: number; - orderCount: number; - averageOrderToman: number; - levelLabel: string; - firstPurchaseDate: string; - agentCode: string | null | undefined; - agentName: string | undefined; - }; - orders: { - id: string; - customerId: string; - title: string; - amountToman: number; - statusLabel: import("@prisma/client").$Enums.OrderStatus; - statusTone: "info"; - date: string; - }[]; - meetings: { - id: string; - customerId: string; - type: import("@prisma/client").$Enums.InteractionType; - title: string; - description: string; - date: string; - time: string | undefined; - }[]; - }>; - createMeeting(user: AuthPrincipal, dto: CreateMeetingDto): Promise<{ - meeting: { - id: string; - createdAt: Date; - updatedAt: Date; - customerId: string; - agentId: string; - type: import("@prisma/client").$Enums.InteractionType; - title: string; - description: string | null; - subject: string | null; - content: string | null; - date: string; - time: string | null; - }; - reminder: { - id: string; - createdAt: Date; - updatedAt: Date; - customerId: string; - title: string; - description: string | null; - date: string; - time: string; - note: string | null; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - completedAt: Date | null; - ownerId: string; - } | null; - }>; - reminders(user: AuthPrincipal, filter?: string): Promise<{ - id: string; - customerId: string; - title: string; - description: string; - time: string; - date: string; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - note: string | undefined; - customerName: string; - contactName: string; - avatarLetter: string; - avatarColor: string; - }[]>; - reminderDetail(user: AuthPrincipal, id: string): Promise<{ - reminder: { - id: string; - customerId: string; - title: string; - description: string; - time: string; - date: string; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - note: string | undefined; - }; - customer: { - id: string; - name: string; - contactName: string; - phone: string; - avatarLetter: string; - avatarColor: string; - }; - history: { - id: string; - type: import("@prisma/client").$Enums.InteractionType; - title: string; - description: string; - date: string; - }[]; - }>; - createReminder(user: AuthPrincipal, dto: CreateReminderDto): Promise<{ - id: string; - createdAt: Date; - updatedAt: Date; - customerId: string; - title: string; - description: string | null; - date: string; - time: string; - note: string | null; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - completedAt: Date | null; - ownerId: string; - }>; - completeReminder(user: AuthPrincipal, id: string, dto: CompleteReminderDto): Promise<{ - id: string; - createdAt: Date; - updatedAt: Date; - customerId: string; - title: string; - description: string | null; - date: string; - time: string; - note: string | null; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - completedAt: Date | null; - ownerId: string; - }>; -} diff --git a/dist/agent/agent.module.d.ts b/dist/agent/agent.module.d.ts deleted file mode 100644 index f6a99ae..0000000 --- a/dist/agent/agent.module.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare class AgentModule { -} diff --git a/dist/agent/agent.service.d.ts b/dist/agent/agent.service.d.ts deleted file mode 100644 index 625285a..0000000 --- a/dist/agent/agent.service.d.ts +++ /dev/null @@ -1,191 +0,0 @@ -import { PrismaService } from '../prisma/prisma.service'; -import { CompleteReminderDto, CreateMeetingDto, CreateReminderDto } from './dto/agent.dto'; -export declare class AgentService { - private readonly prisma; - constructor(prisma: PrismaService); - private requireAgent; - getProfile(agentId: string): Promise<{ - id: string; - firstName: string; - lastName: string; - code: string; - levelLabel: string; - nextLevelLabel: string; - pointsToNext: number; - levelProgress: number; - phone: string; - customersCount: number; - ordersCount: number; - salesVolumeToman: number; - profitToman: number; - periodLabel: string; - }>; - listMyCustomers(agentId: string, q?: string, status?: string): Promise<{ - id: string; - name: string; - contactName: string; - phone: string; - status: string; - avatarLetter: string; - avatarColor: string; - totalPurchaseToman: number; - orderCount: number; - averageOrderToman: number; - levelLabel: string; - firstPurchaseDate: string; - agentCode: string | undefined; - agentName: string | undefined; - }[]>; - getCustomerDetail(agentId: string, customerId: string): Promise<{ - customer: { - id: string; - name: string; - contactName: string; - phone: string; - status: string; - avatarLetter: string; - avatarColor: string; - totalPurchaseToman: number; - orderCount: number; - averageOrderToman: number; - levelLabel: string; - firstPurchaseDate: string; - agentCode: string | null | undefined; - agentName: string | undefined; - }; - orders: { - id: string; - customerId: string; - title: string; - amountToman: number; - statusLabel: import("@prisma/client").$Enums.OrderStatus; - statusTone: "info"; - date: string; - }[]; - meetings: { - id: string; - customerId: string; - type: import("@prisma/client").$Enums.InteractionType; - title: string; - description: string; - date: string; - time: string | undefined; - }[]; - }>; - createMeeting(agentId: string, dto: CreateMeetingDto): Promise<{ - meeting: { - id: string; - createdAt: Date; - updatedAt: Date; - customerId: string; - agentId: string; - type: import("@prisma/client").$Enums.InteractionType; - title: string; - description: string | null; - subject: string | null; - content: string | null; - date: string; - time: string | null; - }; - reminder: { - id: string; - createdAt: Date; - updatedAt: Date; - customerId: string; - title: string; - description: string | null; - date: string; - time: string; - note: string | null; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - completedAt: Date | null; - ownerId: string; - } | null; - }>; - listReminders(agentId: string, filter?: string): Promise<{ - id: string; - customerId: string; - title: string; - description: string; - time: string; - date: string; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - note: string | undefined; - customerName: string; - contactName: string; - avatarLetter: string; - avatarColor: string; - }[]>; - getReminder(agentId: string, reminderId: string): Promise<{ - reminder: { - id: string; - customerId: string; - title: string; - description: string; - time: string; - date: string; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - note: string | undefined; - }; - customer: { - id: string; - name: string; - contactName: string; - phone: string; - avatarLetter: string; - avatarColor: string; - }; - history: { - id: string; - type: import("@prisma/client").$Enums.InteractionType; - title: string; - description: string; - date: string; - }[]; - }>; - createReminder(agentId: string, dto: CreateReminderDto): Promise<{ - id: string; - createdAt: Date; - updatedAt: Date; - customerId: string; - title: string; - description: string | null; - date: string; - time: string; - note: string | null; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - completedAt: Date | null; - ownerId: string; - }>; - completeReminder(agentId: string, reminderId: string, dto: CompleteReminderDto): Promise<{ - id: string; - createdAt: Date; - updatedAt: Date; - customerId: string; - title: string; - description: string | null; - date: string; - time: string; - note: string | null; - interactionType: import("@prisma/client").$Enums.InteractionType; - completed: boolean; - completedAt: Date | null; - ownerId: string; - }>; - listCategories(): Promise<{ - usage: { - id: string; - title: string; - subtitle: string; - }[]; - seasons: { - id: string; - title: string; - description: string; - }[]; - }>; -} diff --git a/dist/agent/agent.service.js b/dist/agent/agent.service.js deleted file mode 100644 index 63e91c6..0000000 --- a/dist/agent/agent.service.js +++ /dev/null @@ -1,363 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.AgentService = void 0; -const common_1 = require("@nestjs/common"); -const client_1 = require("@prisma/client"); -const prisma_service_1 = require("../prisma/prisma.service"); -let AgentService = class AgentService { - prisma; - constructor(prisma) { - this.prisma = prisma; - } - async requireAgent(agentId) { - const agent = await this.prisma.customer.findUnique({ - where: { id: agentId }, - }); - if (!agent || agent.appRole !== client_1.AppUserRole.agent) { - throw new common_1.ForbiddenException('فقط واسطه به این بخش دسترسی دارد'); - } - return agent; - } - async getProfile(agentId) { - const agent = await this.requireAgent(agentId); - const [customersCount, ordersCount] = await Promise.all([ - this.prisma.customer.count({ - where: { assignedAgentId: agentId, isActive: true }, - }), - this.prisma.order.count({ - where: { - user: { assignedAgentId: agentId }, - }, - }), - ]); - const sales = await this.prisma.order.aggregate({ - where: { - user: { assignedAgentId: agentId }, - finalAmount: { not: null }, - }, - _sum: { finalAmount: true }, - }); - const salesVolume = sales._sum.finalAmount ?? 0; - return { - id: agent.id, - firstName: agent.firstName, - lastName: agent.lastName, - code: agent.agentCode ?? '', - levelLabel: agent.levelLabel ?? 'برنزی', - nextLevelLabel: agent.nextLevelLabel ?? 'نقره‌ای', - pointsToNext: agent.pointsToNext ?? 0, - levelProgress: agent.levelProgress ?? 0, - phone: agent.phone, - customersCount, - ordersCount, - salesVolumeToman: salesVolume, - profitToman: Math.round(salesVolume * 0.1), - periodLabel: '۳۰۰ روز اخیر', - }; - } - async listMyCustomers(agentId, q, status) { - await this.requireAgent(agentId); - const where = { - assignedAgentId: agentId, - ...(status === 'active' ? { isActive: true } : {}), - ...(status === 'inactive' ? { isActive: false } : {}), - ...(q - ? { - OR: [ - { firstName: { contains: q, mode: 'insensitive' } }, - { lastName: { contains: q, mode: 'insensitive' } }, - { businessName: { contains: q, mode: 'insensitive' } }, - { phone: { contains: q } }, - ], - } - : {}), - }; - const customers = await this.prisma.customer.findMany({ - where, - orderBy: { createdAt: 'desc' }, - include: { - orders: { - select: { finalAmount: true, id: true }, - }, - }, - }); - return customers.map((c) => { - const amounts = c.orders - .map((o) => o.finalAmount ?? 0) - .filter((n) => n > 0); - const total = amounts.reduce((a, b) => a + b, 0); - const orderCount = c.orders.length; - return { - id: c.id, - name: c.businessName || `${c.firstName} ${c.lastName}`, - contactName: `${c.firstName} ${c.lastName}`, - phone: c.phone, - status: !c.isActive ? 'inactive' : orderCount === 0 ? 'new' : 'active', - avatarLetter: c.avatarLetter || c.firstName.charAt(0), - avatarColor: c.avatarColor || '#c4b5fd', - totalPurchaseToman: total, - orderCount, - averageOrderToman: orderCount ? Math.round(total / orderCount) : 0, - levelLabel: c.levelLabel || 'برنزی', - firstPurchaseDate: '—', - agentCode: undefined, - agentName: undefined, - }; - }); - } - async getCustomerDetail(agentId, customerId) { - await this.requireAgent(agentId); - const customer = await this.prisma.customer.findFirst({ - where: { id: customerId, assignedAgentId: agentId }, - include: { - orders: { - orderBy: { createdAt: 'desc' }, - take: 20, - }, - }, - }); - if (!customer) - throw new common_1.NotFoundException('مشتری یافت نشد'); - const agent = await this.prisma.customer.findUnique({ - where: { id: agentId }, - }); - const amounts = customer.orders - .map((o) => o.finalAmount ?? 0) - .filter((n) => n > 0); - const total = amounts.reduce((a, b) => a + b, 0); - const orderCount = customer.orders.length; - const meetings = await this.prisma.meetingInteraction.findMany({ - where: { customerId, agentId }, - orderBy: { createdAt: 'desc' }, - take: 50, - }); - return { - customer: { - id: customer.id, - name: customer.businessName || `${customer.firstName} ${customer.lastName}`, - contactName: `${customer.firstName} ${customer.lastName}`, - phone: customer.phone, - status: customer.isActive ? 'active' : 'inactive', - avatarLetter: customer.avatarLetter || customer.firstName.charAt(0), - avatarColor: customer.avatarColor || '#f9a8d4', - totalPurchaseToman: total, - orderCount, - averageOrderToman: orderCount ? Math.round(total / orderCount) : 0, - levelLabel: customer.levelLabel || 'برنزی', - firstPurchaseDate: customer.createdAt.toISOString().slice(0, 10), - agentCode: agent?.agentCode, - agentName: agent ? `${agent.firstName} ${agent.lastName}` : undefined, - }, - orders: customer.orders.map((o) => ({ - id: o.id, - customerId: customer.id, - title: `سفارش #${o.orderNumber}`, - amountToman: o.finalAmount ?? 0, - statusLabel: o.status, - statusTone: 'info', - date: o.createdAt.toISOString().slice(0, 10), - })), - meetings: meetings.map((m) => ({ - id: m.id, - customerId: m.customerId, - type: m.type, - title: m.title, - description: m.description ?? '', - date: m.date, - time: m.time ?? undefined, - })), - }; - } - async createMeeting(agentId, dto) { - await this.requireAgent(agentId); - const customer = await this.prisma.customer.findFirst({ - where: { id: dto.customerId, assignedAgentId: agentId }, - }); - if (!customer) - throw new common_1.NotFoundException('مشتری یافت نشد'); - const meeting = await this.prisma.meetingInteraction.create({ - data: { - agentId, - customerId: dto.customerId, - type: dto.type, - title: dto.title.trim(), - description: dto.description?.trim(), - subject: dto.subject?.trim(), - content: dto.content?.trim(), - date: dto.date, - time: dto.time, - }, - }); - let reminder = null; - if (dto.createReminder && dto.reminderTitle && dto.reminderDate && dto.reminderTime) { - reminder = await this.prisma.reminder.create({ - data: { - ownerId: agentId, - customerId: dto.customerId, - title: dto.reminderTitle.trim(), - description: dto.reminderNote?.trim(), - note: dto.reminderNote?.trim(), - date: dto.reminderDate, - time: dto.reminderTime, - interactionType: dto.type, - }, - }); - } - return { meeting, reminder }; - } - async listReminders(agentId, filter) { - await this.requireAgent(agentId); - const where = { ownerId: agentId }; - if (filter === 'past') { - where.completed = true; - } - else if (filter === 'all') { - } - else { - where.completed = false; - } - const reminders = await this.prisma.reminder.findMany({ - where, - orderBy: [{ date: 'asc' }, { time: 'asc' }], - include: { - customer: true, - }, - }); - return reminders.map((r) => ({ - id: r.id, - customerId: r.customerId, - title: r.title, - description: r.description ?? '', - time: r.time, - date: r.date, - interactionType: r.interactionType, - completed: r.completed, - note: r.note ?? undefined, - customerName: r.customer.businessName || - `${r.customer.firstName} ${r.customer.lastName}`, - contactName: `${r.customer.firstName} ${r.customer.lastName}`, - avatarLetter: r.customer.avatarLetter || r.customer.firstName.charAt(0), - avatarColor: r.customer.avatarColor || '#c4b5fd', - })); - } - async getReminder(agentId, reminderId) { - await this.requireAgent(agentId); - const reminder = await this.prisma.reminder.findFirst({ - where: { id: reminderId, ownerId: agentId }, - include: { customer: true }, - }); - if (!reminder) - throw new common_1.NotFoundException('یادآور یافت نشد'); - const history = await this.prisma.meetingInteraction.findMany({ - where: { customerId: reminder.customerId, agentId }, - orderBy: { createdAt: 'desc' }, - take: 20, - }); - return { - reminder: { - id: reminder.id, - customerId: reminder.customerId, - title: reminder.title, - description: reminder.description ?? '', - time: reminder.time, - date: reminder.date, - interactionType: reminder.interactionType, - completed: reminder.completed, - note: reminder.note ?? undefined, - }, - customer: { - id: reminder.customer.id, - name: reminder.customer.businessName || - `${reminder.customer.firstName} ${reminder.customer.lastName}`, - contactName: `${reminder.customer.firstName} ${reminder.customer.lastName}`, - phone: reminder.customer.phone, - avatarLetter: reminder.customer.avatarLetter || reminder.customer.firstName.charAt(0), - avatarColor: reminder.customer.avatarColor || '#f9a8d4', - }, - history: history.map((m) => ({ - id: m.id, - type: m.type, - title: m.title, - description: m.description ?? '', - date: m.date, - })), - }; - } - async createReminder(agentId, dto) { - await this.requireAgent(agentId); - const customer = await this.prisma.customer.findFirst({ - where: { id: dto.customerId, assignedAgentId: agentId }, - }); - if (!customer) - throw new common_1.NotFoundException('مشتری یافت نشد'); - return this.prisma.reminder.create({ - data: { - ownerId: agentId, - customerId: dto.customerId, - title: dto.title.trim(), - description: dto.description?.trim(), - note: dto.note?.trim(), - date: dto.date, - time: dto.time, - interactionType: dto.interactionType ?? client_1.InteractionType.note, - }, - }); - } - async completeReminder(agentId, reminderId, dto) { - await this.requireAgent(agentId); - const reminder = await this.prisma.reminder.findFirst({ - where: { id: reminderId, ownerId: agentId }, - }); - if (!reminder) - throw new common_1.NotFoundException('یادآور یافت نشد'); - const completed = dto.completed ?? true; - return this.prisma.reminder.update({ - where: { id: reminderId }, - data: { - completed, - completedAt: completed ? new Date() : null, - }, - }); - } - async listCategories() { - return { - usage: [ - { id: 'trousers', title: 'پارچه‌های شلواری', subtitle: 'مشاهده محصولات' }, - { id: 'suit', title: 'پارچه‌های کت‌شلواری', subtitle: 'مشاهده محصولات' }, - { id: 'shirt', title: 'پارچه‌های پیراهنی', subtitle: 'مشاهده محصولات' }, - ], - seasons: [ - { - id: 'summer', - title: 'تابستانه', - description: 'سبک، خنک و مناسب فصل گرم', - }, - { - id: 'winter', - title: 'زمستانه', - description: 'گرم و مناسب فصل سرد', - }, - { - id: 'all_season', - title: 'چهارفصل', - description: 'مناسب استفاده در بیشتر فصل‌های سال', - }, - ], - }; - } -}; -exports.AgentService = AgentService; -exports.AgentService = AgentService = __decorate([ - (0, common_1.Injectable)(), - __metadata("design:paramtypes", [prisma_service_1.PrismaService]) -], AgentService); -//# sourceMappingURL=agent.service.js.map \ No newline at end of file diff --git a/dist/agent/agent.service.js.map b/dist/agent/agent.service.js.map deleted file mode 100644 index 22490f3..0000000 --- a/dist/agent/agent.service.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"agent.service.js","sourceRoot":"","sources":["../../src/agent/agent.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAIwB;AACxB,2CAAsE;AACtE,6DAAyD;AAQlD,IAAM,YAAY,GAAlB,MAAM,YAAY;IACM;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE9C,KAAK,CAAC,YAAY,CAAC,OAAe;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YAClD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,oBAAW,CAAC,KAAK,EAAE,CAAC;YAClD,MAAM,IAAI,2BAAkB,CAAC,kCAAkC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACzB,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;aACpD,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtB,KAAK,EAAE;oBACL,IAAI,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE;iBACnC;aACF,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAC9C,KAAK,EAAE;gBACL,IAAI,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE;gBAClC,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;aAC3B;YACD,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;SAC5B,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QAEhD,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;YAC3B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,OAAO;YACvC,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,SAAS;YACjD,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;YACrC,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC;YACvC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,cAAc;YACd,WAAW;YACX,gBAAgB,EAAE,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;YAC1C,WAAW,EAAE,cAAc;SAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,CAAU,EAAE,MAAe;QAChE,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,KAAK,GAA8B;YACvC,eAAe,EAAE,OAAO;YACxB,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,CAAC;gBACH,CAAC,CAAC;oBACE,EAAE,EAAE;wBACF,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;wBACnD,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;wBAClD,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;wBACtD,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;qBAC3B;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACpD,KAAK;YACL,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;YAC9B,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE;iBACxC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM;iBACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;iBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACnC,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACtD,WAAW,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE;gBAC3C,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;gBACtE,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrD,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;gBACvC,kBAAkB,EAAE,KAAK;gBACzB,UAAU;gBACV,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,OAAO;gBACnC,iBAAiB,EAAE,GAAG;gBACtB,SAAS,EAAE,SAA+B;gBAC1C,SAAS,EAAE,SAA+B;aAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAe,EAAE,UAAkB;QACzD,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE;YACnD,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;oBAC9B,IAAI,EAAE,EAAE;iBACT;aACF;SACF,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,CAAC,CAAC;QAE7D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YAClD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;SACvB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YAC7D,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;YAC9B,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;YAC9B,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE;gBACR,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,QAAQ,CAAC,YAAY,IAAI,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBAC3E,WAAW,EAAE,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACzD,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;gBACjD,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnE,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;gBAC9C,kBAAkB,EAAE,KAAK;gBACzB,UAAU;gBACV,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,OAAO;gBAC1C,iBAAiB,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChE,SAAS,EAAE,KAAK,EAAE,SAAS;gBAC3B,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aACtE;YACD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,KAAK,EAAE,UAAU,CAAC,CAAC,WAAW,EAAE;gBAChC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC;gBAC/B,WAAW,EAAE,CAAC,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAe;gBAC3B,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aAC7C,CAAC,CAAC;YACH,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;gBAChC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;aAC1B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,GAAqB;QACxD,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,CAAC,CAAC;QAE7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAC1D,IAAI,EAAE;gBACJ,OAAO;gBACP,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;gBACvB,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE;gBACpC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;gBAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;aACf;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACpF,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3C,IAAI,EAAE;oBACJ,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE;oBAC/B,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE;oBACrC,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE;oBAC9B,IAAI,EAAE,GAAG,CAAC,YAAY;oBACtB,IAAI,EAAE,GAAG,CAAC,YAAY;oBACtB,eAAe,EAAE,GAAG,CAAC,IAAI;iBAC1B;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,MAAe;QAClD,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,KAAK,GAA8B,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9D,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAE9B,CAAC;aAAM,CAAC;YAEN,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAC1B,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACpD,KAAK;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAC3C,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI;aACf;SACF,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;YAChC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;YACzB,YAAY,EACV,CAAC,CAAC,QAAQ,CAAC,YAAY;gBACvB,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAClD,WAAW,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC7D,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACvE,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,SAAS;SACjD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,UAAkB;QACnD,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE;YAC3C,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YAC5D,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;YACnD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;YAC9B,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE;gBACR,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;gBACvC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS;aACjC;YACD,QAAQ,EAAE;gBACR,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACxB,IAAI,EACF,QAAQ,CAAC,QAAQ,CAAC,YAAY;oBAC9B,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAChE,WAAW,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC3E,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;gBAC9B,YAAY,EACV,QAAQ,CAAC,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACzE,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,IAAI,SAAS;aACxD;YACD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;gBAChC,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,GAAsB;QAC1D,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,0BAAiB,CAAC,gBAAgB,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjC,IAAI,EAAE;gBACJ,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;gBACvB,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE;gBACpC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,wBAAe,CAAC,IAAI;aAC7D;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,UAAkB,EAClB,GAAwB;QAExB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjC,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;YACzB,IAAI,EAAE;gBACJ,SAAS;gBACT,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;aAC3C;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO;YACL,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,EAAE;gBACzE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE;gBACxE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE;aACxE;YACD,OAAO,EAAE;gBACP;oBACE,EAAE,EAAE,QAAQ;oBACZ,KAAK,EAAE,UAAU;oBACjB,WAAW,EAAE,0BAA0B;iBACxC;gBACD;oBACE,EAAE,EAAE,QAAQ;oBACZ,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,qBAAqB;iBACnC;gBACD;oBACE,EAAE,EAAE,YAAY;oBAChB,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,oCAAoC;iBAClD;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA/WY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAE0B,8BAAa;GADvC,YAAY,CA+WxB"} \ No newline at end of file diff --git a/dist/app.module.d.ts b/dist/app.module.d.ts deleted file mode 100644 index 09cdb35..0000000 --- a/dist/app.module.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare class AppModule { -} diff --git a/dist/main.d.ts b/dist/main.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/main.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/docker-compose.dist.yml b/docker-compose.dist.yml index f4db510..c7cad4a 100644 --- a/docker-compose.dist.yml +++ b/docker-compose.dist.yml @@ -23,8 +23,6 @@ services: build: context: . dockerfile: Dockerfile.dist - args: - NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmmirror.com} container_name: fabric_trade_api restart: unless-stopped depends_on: diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 627ab9d..3040f8b 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -4,38 +4,12 @@ set -e echo "Node: $(node -v)" echo "OpenSSL: $(openssl version 2>/dev/null || echo missing)" -# فقط host را لاگ کن تا سکرت لو نرود DB_HOST=$(printf '%s' "$DATABASE_URL" | sed -n 's|.*@\([^:/]*\).*|\1|p') echo "DATABASE_URL host: ${DB_HOST:-unknown}" -if [ ! -x ./node_modules/.bin/prisma ] && [ ! -f ./node_modules/prisma/build/index.js ]; then - echo "ERROR: prisma در node_modules نیست. روی سرور بزن:" - echo " npm install prisma --no-audit --no-fund --registry=https://registry.npmmirror.com" - exit 1 -fi - -if [ -x ./node_modules/.bin/prisma ]; then - PRISMA="./node_modules/.bin/prisma" -else - PRISMA="node ./node_modules/prisma/build/index.js" -fi - -echo "Waiting for database & applying migrations..." -i=0 -until $PRISMA migrate deploy; do - i=$((i + 1)) - if [ "$i" -ge 30 ]; then - echo "Database/migrate failed after 30 attempts" - exit 1 - fi - echo "Retry $i..." - sleep 2 -done - -if [ "${RUN_SEED:-false}" = "true" ]; then - echo "Seeding database..." - $PRISMA db seed || true +if [ -z "$PRISMA_QUERY_ENGINE_LIBRARY" ]; then + export PRISMA_QUERY_ENGINE_LIBRARY=/app/runtime/libquery_engine-debian-openssl-3.0.x.so.node fi echo "Starting API on port ${PORT:-3000}..." -exec node dist/main.js +exec node runtime/server.cjs diff --git a/package.json b/package.json index 62df158..b854e0f 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main.js", - "deploy:build": "npm run build && bash scripts/pack-prisma-client.sh", + "deploy:build": "node scripts/pack-runtime.mjs", + "pack:docker": "node scripts/pack-runtime.mjs", "build:deploy": "bash scripts/build-local-dist.sh", "docker:dist": "docker compose -f docker-compose.dist.yml up -d --build", "test": "jest", diff --git a/prisma-client.tar.gz b/prisma-client.tar.gz deleted file mode 100644 index 08af907..0000000 Binary files a/prisma-client.tar.gz and /dev/null differ diff --git a/runtime/libquery_engine-debian-openssl-3.0.x.so.node b/runtime/libquery_engine-debian-openssl-3.0.x.so.node new file mode 100644 index 0000000..fd83c8e Binary files /dev/null and b/runtime/libquery_engine-debian-openssl-3.0.x.so.node differ diff --git a/runtime/migrations/20241025000000_init/migration.sql b/runtime/migrations/20241025000000_init/migration.sql new file mode 100644 index 0000000..2ef6deb --- /dev/null +++ b/runtime/migrations/20241025000000_init/migration.sql @@ -0,0 +1,469 @@ +-- CreateSchema +CREATE SCHEMA IF NOT EXISTS "public"; + +-- CreateEnum +CREATE TYPE "SettlementType" AS ENUM ('cash', 'check'); + +-- CreateEnum +CREATE TYPE "CheckRegistrationMode" AS ENUM ('full', 'brief'); + +-- CreateEnum +CREATE TYPE "OrderStatus" AS ENUM ('cart', 'awaiting_settlement', 'cash_in_progress', 'check_in_progress', 'submitted', 'awaiting_review', 'pricing', 'needs_correction', 'awaiting_settlement_fix', 'cash_invoice_issued', 'awaiting_cash_payment', 'cash_payment_submitted', 'awaiting_cash_confirmation', 'cash_confirmed', 'awaiting_check_review', 'check_needs_fix', 'check_rejected', 'checks_approved', 'final_approved', 'preparing', 'ready_to_ship', 'shipped', 'delivered', 'cancelled', 'rejected', 'expired'); + +-- CreateEnum +CREATE TYPE "CheckStatus" AS ENUM ('pending_review', 'approved', 'rejected'); + +-- CreateEnum +CREATE TYPE "CashPaymentStatus" AS ENUM ('pending_review', 'approved', 'rejected', 'expired'); + +-- CreateEnum +CREATE TYPE "ShipmentStatus" AS ENUM ('preparing', 'ready', 'shipped', 'delivered'); + +-- CreateEnum +CREATE TYPE "CustomerType" AS ENUM ('wholesale', 'retail'); + +-- CreateEnum +CREATE TYPE "AdminRole" AS ENUM ('admin', 'sales', 'finance', 'warehouse'); + +-- CreateEnum +CREATE TYPE "NotificationTone" AS ENUM ('info', 'warning', 'success', 'danger'); + +-- CreateTable +CREATE TABLE "Company" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "slug" TEXT NOT NULL, + "description" TEXT, + "logoUrl" TEXT, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "displayOrder" INTEGER NOT NULL DEFAULT 0, + "maxMeteragePerInvoice" INTEGER NOT NULL DEFAULT 5000, + "cashInvoiceValidityHours" INTEGER NOT NULL DEFAULT 8, + "cashInvoiceValidUntilHour" INTEGER, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Company_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "BankAccount" ( + "id" TEXT NOT NULL, + "companyId" TEXT NOT NULL, + "bankName" TEXT NOT NULL, + "accountHolder" TEXT NOT NULL, + "accountNumber" TEXT NOT NULL, + "cardNumber" TEXT NOT NULL, + "iban" TEXT NOT NULL, + "notes" TEXT, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "displayOrder" INTEGER NOT NULL DEFAULT 0, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "BankAccount_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Catalog" ( + "id" TEXT NOT NULL, + "companyId" TEXT NOT NULL, + "name" TEXT NOT NULL, + "code" TEXT NOT NULL, + "description" TEXT, + "displayOrder" INTEGER NOT NULL DEFAULT 0, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Catalog_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Product" ( + "id" TEXT NOT NULL, + "companyId" TEXT NOT NULL, + "catalogId" TEXT NOT NULL, + "name" TEXT NOT NULL, + "code" TEXT NOT NULL, + "color" TEXT NOT NULL, + "description" TEXT, + "minMeterage" DOUBLE PRECISION NOT NULL DEFAULT 30, + "orderMultiplier" DOUBLE PRECISION NOT NULL DEFAULT 10, + "basePrice" DOUBLE PRECISION, + "stock" DOUBLE PRECISION, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Product_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Customer" ( + "id" TEXT NOT NULL, + "firstName" TEXT NOT NULL, + "lastName" TEXT NOT NULL, + "phone" TEXT NOT NULL, + "nationalId" TEXT, + "customerType" "CustomerType" NOT NULL DEFAULT 'wholesale', + "companyId" TEXT, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Customer_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "AdminUser" ( + "id" TEXT NOT NULL, + "fullName" TEXT NOT NULL, + "phone" TEXT NOT NULL, + "email" TEXT NOT NULL, + "passwordHash" TEXT NOT NULL, + "role" "AdminRole" NOT NULL DEFAULT 'admin', + "isActive" BOOLEAN NOT NULL DEFAULT true, + "lastLoginAt" TIMESTAMP(3), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "AdminUser_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "OtpChallenge" ( + "id" TEXT NOT NULL, + "phone" TEXT NOT NULL, + "code" TEXT NOT NULL, + "firstName" TEXT, + "lastName" TEXT, + "isRegister" BOOLEAN NOT NULL DEFAULT false, + "expiresAt" TIMESTAMP(3) NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "OtpChallenge_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Cart" ( + "id" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "companyId" TEXT, + "notes" TEXT, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Cart_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "CartItem" ( + "id" TEXT NOT NULL, + "cartId" TEXT NOT NULL, + "productId" TEXT NOT NULL, + "catalogCode" TEXT NOT NULL, + "productName" TEXT NOT NULL, + "productCode" TEXT NOT NULL, + "color" TEXT NOT NULL, + "meterage" DOUBLE PRECISION NOT NULL, + "unitPrice" DOUBLE PRECISION, + "notes" TEXT, + "companyId" TEXT NOT NULL, + "companyName" TEXT NOT NULL, + + CONSTRAINT "CartItem_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Order" ( + "id" TEXT NOT NULL, + "orderNumber" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "companyId" TEXT NOT NULL, + "companyName" TEXT NOT NULL, + "settlementType" "SettlementType" NOT NULL, + "checkMode" "CheckRegistrationMode", + "status" "OrderStatus" NOT NULL DEFAULT 'awaiting_review', + "totalMeterage" DOUBLE PRECISION NOT NULL DEFAULT 0, + "totalAmount" DOUBLE PRECISION, + "shippingCost" DOUBLE PRECISION, + "totalDiscount" DOUBLE PRECISION, + "finalAmount" DOUBLE PRECISION, + "notes" TEXT, + "checkRassDays" INTEGER, + "checkRassDate" TIMESTAMP(3), + "cashInvoiceExpiresAt" TIMESTAMP(3), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Order_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "OrderItem" ( + "id" TEXT NOT NULL, + "orderId" TEXT NOT NULL, + "productId" TEXT, + "catalogCode" TEXT NOT NULL, + "productName" TEXT NOT NULL, + "productCode" TEXT, + "color" TEXT NOT NULL, + "requestedMeterage" DOUBLE PRECISION NOT NULL, + "confirmedMeterage" DOUBLE PRECISION, + "unitPrice" DOUBLE PRECISION, + "unitDiscount" DOUBLE PRECISION DEFAULT 0, + "lineTotal" DOUBLE PRECISION, + "notes" TEXT, + + CONSTRAINT "OrderItem_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "OrderStatusHistory" ( + "id" TEXT NOT NULL, + "orderId" TEXT NOT NULL, + "fromStatus" "OrderStatus", + "toStatus" "OrderStatus" NOT NULL, + "changedBy" TEXT NOT NULL, + "note" TEXT, + "reason" TEXT, + "changedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "OrderStatusHistory_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Check" ( + "id" TEXT NOT NULL, + "orderId" TEXT NOT NULL, + "row" INTEGER NOT NULL, + "amount" DOUBLE PRECISION NOT NULL, + "dueDate" TIMESTAMP(3) NOT NULL, + "sayadId" TEXT, + "checkNumber" TEXT, + "ownerNationalId" TEXT, + "ownerFirstName" TEXT, + "ownerLastName" TEXT, + "bankName" TEXT, + "branchName" TEXT, + "frontImage" TEXT, + "backImage" TEXT, + "notes" TEXT, + "mode" "CheckRegistrationMode" NOT NULL DEFAULT 'full', + "status" "CheckStatus" NOT NULL DEFAULT 'pending_review', + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Check_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "CashPaymentReceipt" ( + "id" TEXT NOT NULL, + "orderId" TEXT NOT NULL, + "amount" DOUBLE PRECISION NOT NULL, + "paidAmount" DOUBLE PRECISION, + "transferDate" TIMESTAMP(3), + "transferTime" TEXT, + "trackingNumber" TEXT, + "destinationAccountId" TEXT, + "receiptImage" TEXT, + "notes" TEXT, + "expiresAt" TIMESTAMP(3), + "status" "CashPaymentStatus" NOT NULL DEFAULT 'pending_review', + "submittedAt" TIMESTAMP(3), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "CashPaymentReceipt_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Shipment" ( + "id" TEXT NOT NULL, + "orderId" TEXT NOT NULL, + "carrier" TEXT NOT NULL, + "trackingNumber" TEXT, + "meterage" DOUBLE PRECISION NOT NULL, + "status" "ShipmentStatus" NOT NULL DEFAULT 'preparing', + "shippedAt" TIMESTAMP(3), + "deliveredAt" TIMESTAMP(3), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Shipment_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "SystemSettings" ( + "id" TEXT NOT NULL DEFAULT 'default', + "maxMeteragePerInvoice" INTEGER NOT NULL DEFAULT 5000, + "cashInvoiceValidityHours" INTEGER NOT NULL DEFAULT 8, + "defaultSettlementCheck" BOOLEAN NOT NULL DEFAULT true, + "defaultSettlementCash" BOOLEAN NOT NULL DEFAULT true, + "smsOrderRegistered" BOOLEAN NOT NULL DEFAULT true, + "smsPaymentReminder" BOOLEAN NOT NULL DEFAULT true, + "smsCheckReview" BOOLEAN NOT NULL DEFAULT true, + "smsShippingUpdate" BOOLEAN NOT NULL DEFAULT true, + "supportPhone" TEXT, + "supportEmail" TEXT, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "SystemSettings_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "AdminNotification" ( + "id" TEXT NOT NULL, + "title" TEXT NOT NULL, + "body" TEXT NOT NULL, + "tone" "NotificationTone" DEFAULT 'info', + "link" TEXT, + "isRead" BOOLEAN NOT NULL DEFAULT false, + "sentAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "AdminNotification_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "InternalMessage" ( + "id" TEXT NOT NULL, + "senderName" TEXT NOT NULL, + "subject" TEXT NOT NULL, + "preview" TEXT NOT NULL, + "isRead" BOOLEAN NOT NULL DEFAULT false, + "sentAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "InternalMessage_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "Company_slug_key" ON "Company"("slug"); + +-- CreateIndex +CREATE INDEX "BankAccount_companyId_idx" ON "BankAccount"("companyId"); + +-- CreateIndex +CREATE INDEX "Catalog_companyId_idx" ON "Catalog"("companyId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Catalog_companyId_code_key" ON "Catalog"("companyId", "code"); + +-- CreateIndex +CREATE INDEX "Product_catalogId_idx" ON "Product"("catalogId"); + +-- CreateIndex +CREATE INDEX "Product_companyId_idx" ON "Product"("companyId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Product_companyId_code_key" ON "Product"("companyId", "code"); + +-- CreateIndex +CREATE UNIQUE INDEX "Customer_phone_key" ON "Customer"("phone"); + +-- CreateIndex +CREATE INDEX "Customer_companyId_idx" ON "Customer"("companyId"); + +-- CreateIndex +CREATE UNIQUE INDEX "AdminUser_phone_key" ON "AdminUser"("phone"); + +-- CreateIndex +CREATE UNIQUE INDEX "AdminUser_email_key" ON "AdminUser"("email"); + +-- CreateIndex +CREATE INDEX "OtpChallenge_phone_idx" ON "OtpChallenge"("phone"); + +-- CreateIndex +CREATE INDEX "Cart_userId_idx" ON "Cart"("userId"); + +-- CreateIndex +CREATE INDEX "CartItem_cartId_idx" ON "CartItem"("cartId"); + +-- CreateIndex +CREATE UNIQUE INDEX "CartItem_cartId_productId_key" ON "CartItem"("cartId", "productId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Order_orderNumber_key" ON "Order"("orderNumber"); + +-- CreateIndex +CREATE INDEX "Order_userId_idx" ON "Order"("userId"); + +-- CreateIndex +CREATE INDEX "Order_companyId_idx" ON "Order"("companyId"); + +-- CreateIndex +CREATE INDEX "Order_status_idx" ON "Order"("status"); + +-- CreateIndex +CREATE INDEX "Order_createdAt_idx" ON "Order"("createdAt"); + +-- CreateIndex +CREATE INDEX "OrderItem_orderId_idx" ON "OrderItem"("orderId"); + +-- CreateIndex +CREATE INDEX "OrderStatusHistory_orderId_idx" ON "OrderStatusHistory"("orderId"); + +-- CreateIndex +CREATE INDEX "Check_orderId_idx" ON "Check"("orderId"); + +-- CreateIndex +CREATE INDEX "Check_dueDate_idx" ON "Check"("dueDate"); + +-- CreateIndex +CREATE UNIQUE INDEX "CashPaymentReceipt_orderId_key" ON "CashPaymentReceipt"("orderId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Shipment_orderId_key" ON "Shipment"("orderId"); + +-- AddForeignKey +ALTER TABLE "BankAccount" ADD CONSTRAINT "BankAccount_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Catalog" ADD CONSTRAINT "Catalog_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Product" ADD CONSTRAINT "Product_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Product" ADD CONSTRAINT "Product_catalogId_fkey" FOREIGN KEY ("catalogId") REFERENCES "Catalog"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Customer" ADD CONSTRAINT "Customer_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Cart" ADD CONSTRAINT "Cart_userId_fkey" FOREIGN KEY ("userId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "CartItem" ADD CONSTRAINT "CartItem_cartId_fkey" FOREIGN KEY ("cartId") REFERENCES "Cart"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "CartItem" ADD CONSTRAINT "CartItem_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Order" ADD CONSTRAINT "Order_userId_fkey" FOREIGN KEY ("userId") REFERENCES "Customer"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Order" ADD CONSTRAINT "Order_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "OrderItem" ADD CONSTRAINT "OrderItem_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES "Order"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "OrderItem" ADD CONSTRAINT "OrderItem_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "OrderStatusHistory" ADD CONSTRAINT "OrderStatusHistory_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES "Order"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Check" ADD CONSTRAINT "Check_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES "Order"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "CashPaymentReceipt" ADD CONSTRAINT "CashPaymentReceipt_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES "Order"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "CashPaymentReceipt" ADD CONSTRAINT "CashPaymentReceipt_destinationAccountId_fkey" FOREIGN KEY ("destinationAccountId") REFERENCES "BankAccount"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Shipment" ADD CONSTRAINT "Shipment_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES "Order"("id") ON DELETE CASCADE ON UPDATE CASCADE; + diff --git a/runtime/migrations/20260808000000_otp_attempts/migration.sql b/runtime/migrations/20260808000000_otp_attempts/migration.sql new file mode 100644 index 0000000..c790fe3 --- /dev/null +++ b/runtime/migrations/20260808000000_otp_attempts/migration.sql @@ -0,0 +1,2 @@ +-- شمارنده تلاش ناموفق برای جلوگیری از حدس‌زدن کد ۴ رقمی +ALTER TABLE "OtpChallenge" ADD COLUMN "attempts" INTEGER NOT NULL DEFAULT 0; diff --git a/runtime/migrations/20260809000000_settlement_after_pricing/migration.sql b/runtime/migrations/20260809000000_settlement_after_pricing/migration.sql new file mode 100644 index 0000000..44d3598 --- /dev/null +++ b/runtime/migrations/20260809000000_settlement_after_pricing/migration.sql @@ -0,0 +1,2 @@ +-- روش تسویه دیگر در لحظه ثبت سفارش گرفته نمی‌شود؛ مشتری بعد از قیمت‌گذاری انتخاب می‌کند. +ALTER TABLE "Order" ALTER COLUMN "settlementType" DROP NOT NULL; diff --git a/runtime/migrations/20260809010000_customer_notifications/migration.sql b/runtime/migrations/20260809010000_customer_notifications/migration.sql new file mode 100644 index 0000000..eeb346b --- /dev/null +++ b/runtime/migrations/20260809010000_customer_notifications/migration.sql @@ -0,0 +1,24 @@ +-- اعلان درون‌برنامه‌ای مشتری به‌همراه سوئیچ پیامک «فاکتور آماده شد» +ALTER TABLE "SystemSettings" ADD COLUMN "smsPricingReady" BOOLEAN NOT NULL DEFAULT true; + +CREATE TABLE "CustomerNotification" ( + "id" TEXT NOT NULL, + "customerId" TEXT NOT NULL, + "orderId" TEXT, + "event" TEXT NOT NULL, + "title" TEXT NOT NULL, + "body" TEXT NOT NULL, + "tone" "NotificationTone" DEFAULT 'info', + "link" TEXT, + "isRead" BOOLEAN NOT NULL DEFAULT false, + "smsSent" BOOLEAN NOT NULL DEFAULT false, + "sentAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "CustomerNotification_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX "CustomerNotification_customerId_isRead_idx" ON "CustomerNotification"("customerId", "isRead"); +CREATE INDEX "CustomerNotification_sentAt_idx" ON "CustomerNotification"("sentAt"); + +ALTER TABLE "CustomerNotification" ADD CONSTRAINT "CustomerNotification_customerId_fkey" FOREIGN KEY ("customerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "CustomerNotification" ADD CONSTRAINT "CustomerNotification_orderId_fkey" FOREIGN KEY ("orderId") REFERENCES "Order"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/runtime/migrations/20260809020000_company_meterage_inherits_settings/migration.sql b/runtime/migrations/20260809020000_company_meterage_inherits_settings/migration.sql new file mode 100644 index 0000000..2ba700e --- /dev/null +++ b/runtime/migrations/20260809020000_company_meterage_inherits_settings/migration.sql @@ -0,0 +1,3 @@ +-- سقف متراژ شرکت اختیاری می‌شود؛ خالی یعنی از SystemSettings ارث می‌برد. +ALTER TABLE "Company" ALTER COLUMN "maxMeteragePerInvoice" DROP NOT NULL; +ALTER TABLE "Company" ALTER COLUMN "maxMeteragePerInvoice" DROP DEFAULT; diff --git a/runtime/migrations/20260809030000_cash_reminder_sent_at/migration.sql b/runtime/migrations/20260809030000_cash_reminder_sent_at/migration.sql new file mode 100644 index 0000000..571cbee --- /dev/null +++ b/runtime/migrations/20260809030000_cash_reminder_sent_at/migration.sql @@ -0,0 +1,4 @@ +-- یادآوری پایان مهلت پرداخت فقط یک‌بار برای هر فاکتور ارسال می‌شود. +ALTER TABLE "Order" ADD COLUMN "cashReminderSentAt" TIMESTAMP(3); + +CREATE INDEX "Order_status_cashInvoiceExpiresAt_idx" ON "Order"("status", "cashInvoiceExpiresAt"); diff --git a/runtime/migrations/20260815100000_order_item_company/migration.sql b/runtime/migrations/20260815100000_order_item_company/migration.sql new file mode 100644 index 0000000..8e12c8a --- /dev/null +++ b/runtime/migrations/20260815100000_order_item_company/migration.sql @@ -0,0 +1,15 @@ +-- اقلام سفارش شرکت خود را نگه می‌دارند تا یک فاکتور چندشرکتی ممکن شود. +ALTER TABLE "OrderItem" ADD COLUMN "companyId" TEXT; +ALTER TABLE "OrderItem" ADD COLUMN "companyName" TEXT; + +UPDATE "OrderItem" AS oi +SET + "companyId" = o."companyId", + "companyName" = o."companyName" +FROM "Order" AS o +WHERE oi."orderId" = o."id"; + +ALTER TABLE "OrderItem" ALTER COLUMN "companyId" SET NOT NULL; +ALTER TABLE "OrderItem" ALTER COLUMN "companyName" SET NOT NULL; + +CREATE INDEX "OrderItem_companyId_idx" ON "OrderItem"("companyId"); diff --git a/runtime/migrations/20260908130000_app_user_crm_catalog/migration.sql b/runtime/migrations/20260908130000_app_user_crm_catalog/migration.sql new file mode 100644 index 0000000..e627e92 --- /dev/null +++ b/runtime/migrations/20260908130000_app_user_crm_catalog/migration.sql @@ -0,0 +1,122 @@ +-- AlterEnum +CREATE TYPE "AppUserRole" AS ENUM ('customer', 'agent'); +CREATE TYPE "InteractionType" AS ENUM ('in_person', 'call', 'message', 'note'); +CREATE TYPE "ProductSeason" AS ENUM ('summer', 'winter', 'all_season'); +CREATE TYPE "ProductUsageCategory" AS ENUM ('trousers', 'suit', 'shirt', 'other'); + +-- AlterTable Product +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "usageCategory" "ProductUsageCategory" NOT NULL DEFAULT 'other'; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "season" "ProductSeason" NOT NULL DEFAULT 'all_season'; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "widthCm" DOUBLE PRECISION; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "composition" TEXT; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "weightGrams" DOUBLE PRECISION; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "weaveType" TEXT; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "colorsJson" JSONB; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "tagsJson" JSONB; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "imageUrlsJson" JSONB; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "subtitle" TEXT; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "rollMeters" DOUBLE PRECISION NOT NULL DEFAULT 50; +ALTER TABLE "Product" ADD COLUMN IF NOT EXISTS "isNew" BOOLEAN NOT NULL DEFAULT false; + +CREATE INDEX IF NOT EXISTS "Product_usageCategory_idx" ON "Product"("usageCategory"); +CREATE INDEX IF NOT EXISTS "Product_season_idx" ON "Product"("season"); + +-- AlterTable Customer +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "appRole" "AppUserRole" NOT NULL DEFAULT 'customer'; +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "agentCode" TEXT; +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "businessName" TEXT; +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "levelLabel" TEXT; +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "nextLevelLabel" TEXT; +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "pointsToNext" INTEGER; +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "levelProgress" INTEGER DEFAULT 0; +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "assignedAgentId" TEXT; +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "avatarLetter" TEXT; +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "avatarColor" TEXT; + +CREATE INDEX IF NOT EXISTS "Customer_appRole_idx" ON "Customer"("appRole"); +CREATE INDEX IF NOT EXISTS "Customer_assignedAgentId_idx" ON "Customer"("assignedAgentId"); +CREATE INDEX IF NOT EXISTS "Customer_agentCode_idx" ON "Customer"("agentCode"); + +ALTER TABLE "Customer" + ADD CONSTRAINT "Customer_assignedAgentId_fkey" + FOREIGN KEY ("assignedAgentId") REFERENCES "Customer"("id") + ON DELETE SET NULL ON UPDATE CASCADE; + +-- MeetingInteraction +CREATE TABLE IF NOT EXISTS "MeetingInteraction" ( + "id" TEXT NOT NULL, + "customerId" TEXT NOT NULL, + "agentId" TEXT NOT NULL, + "type" "InteractionType" NOT NULL DEFAULT 'in_person', + "title" TEXT NOT NULL, + "description" TEXT, + "subject" TEXT, + "content" TEXT, + "date" TEXT NOT NULL, + "time" TEXT, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + CONSTRAINT "MeetingInteraction_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX IF NOT EXISTS "MeetingInteraction_customerId_idx" ON "MeetingInteraction"("customerId"); +CREATE INDEX IF NOT EXISTS "MeetingInteraction_agentId_idx" ON "MeetingInteraction"("agentId"); +CREATE INDEX IF NOT EXISTS "MeetingInteraction_date_idx" ON "MeetingInteraction"("date"); + +ALTER TABLE "MeetingInteraction" + ADD CONSTRAINT "MeetingInteraction_customerId_fkey" + FOREIGN KEY ("customerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE "MeetingInteraction" + ADD CONSTRAINT "MeetingInteraction_agentId_fkey" + FOREIGN KEY ("agentId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- Reminder +CREATE TABLE IF NOT EXISTS "Reminder" ( + "id" TEXT NOT NULL, + "ownerId" TEXT NOT NULL, + "customerId" TEXT NOT NULL, + "title" TEXT NOT NULL, + "description" TEXT, + "note" TEXT, + "date" TEXT NOT NULL, + "time" TEXT NOT NULL, + "interactionType" "InteractionType" NOT NULL DEFAULT 'note', + "completed" BOOLEAN NOT NULL DEFAULT false, + "completedAt" TIMESTAMP(3), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + CONSTRAINT "Reminder_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX IF NOT EXISTS "Reminder_ownerId_completed_idx" ON "Reminder"("ownerId", "completed"); +CREATE INDEX IF NOT EXISTS "Reminder_customerId_idx" ON "Reminder"("customerId"); +CREATE INDEX IF NOT EXISTS "Reminder_date_idx" ON "Reminder"("date"); + +ALTER TABLE "Reminder" + ADD CONSTRAINT "Reminder_ownerId_fkey" + FOREIGN KEY ("ownerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE "Reminder" + ADD CONSTRAINT "Reminder_customerId_fkey" + FOREIGN KEY ("customerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- ProductFavorite +CREATE TABLE IF NOT EXISTS "ProductFavorite" ( + "id" TEXT NOT NULL, + "customerId" TEXT NOT NULL, + "productId" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT "ProductFavorite_pkey" PRIMARY KEY ("id") +); + +CREATE UNIQUE INDEX IF NOT EXISTS "ProductFavorite_customerId_productId_key" ON "ProductFavorite"("customerId", "productId"); +CREATE INDEX IF NOT EXISTS "ProductFavorite_customerId_idx" ON "ProductFavorite"("customerId"); + +ALTER TABLE "ProductFavorite" + ADD CONSTRAINT "ProductFavorite_customerId_fkey" + FOREIGN KEY ("customerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +ALTER TABLE "ProductFavorite" + ADD CONSTRAINT "ProductFavorite_productId_fkey" + FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/runtime/migrations/20260908180000_admin_non_crm/migration.sql b/runtime/migrations/20260908180000_admin_non_crm/migration.sql new file mode 100644 index 0000000..80e7cec --- /dev/null +++ b/runtime/migrations/20260908180000_admin_non_crm/migration.sql @@ -0,0 +1,149 @@ +-- CreateEnum +CREATE TYPE "CatalogRequestStatus" AS ENUM ('new', 'approved', 'ready_to_ship', 'delivered', 'returned', 'cancelled'); + +-- CreateEnum +CREATE TYPE "CatalogItemHolderType" AS ENUM ('warehouse', 'customer', 'agent'); + +-- AlterTable SystemSettings +ALTER TABLE "SystemSettings" ADD COLUMN IF NOT EXISTS "minOrderRollsPerProduct" INTEGER NOT NULL DEFAULT 1; +ALTER TABLE "SystemSettings" ADD COLUMN IF NOT EXISTS "showCatalogPublicPrice" BOOLEAN NOT NULL DEFAULT false; + +-- CreateTable Brand +CREATE TABLE "Brand" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "slug" TEXT, + "description" TEXT, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "displayOrder" INTEGER NOT NULL DEFAULT 0, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + CONSTRAINT "Brand_pkey" PRIMARY KEY ("id") +); + +CREATE UNIQUE INDEX "Brand_slug_key" ON "Brand"("slug"); + +-- CreateTable CustomerLevelDef +CREATE TABLE "CustomerLevelDef" ( + "id" TEXT NOT NULL, + "code" TEXT NOT NULL, + "label" TEXT NOT NULL, + "sortOrder" INTEGER NOT NULL DEFAULT 0, + "criteriaJson" JSONB, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + CONSTRAINT "CustomerLevelDef_pkey" PRIMARY KEY ("id") +); + +CREATE UNIQUE INDEX "CustomerLevelDef_code_key" ON "CustomerLevelDef"("code"); + +-- CreateTable LevelBenefit +CREATE TABLE "LevelBenefit" ( + "id" TEXT NOT NULL, + "levelId" TEXT NOT NULL, + "title" TEXT NOT NULL, + "description" TEXT, + CONSTRAINT "LevelBenefit_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX "LevelBenefit_levelId_idx" ON "LevelBenefit"("levelId"); + +-- AlterTable Customer +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "levelDefId" TEXT; + +CREATE INDEX IF NOT EXISTS "Customer_levelDefId_idx" ON "Customer"("levelDefId"); + +-- CreateTable CustomerBrand +CREATE TABLE "CustomerBrand" ( + "customerId" TEXT NOT NULL, + "brandId" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT "CustomerBrand_pkey" PRIMARY KEY ("customerId","brandId") +); + +CREATE INDEX "CustomerBrand_brandId_idx" ON "CustomerBrand"("brandId"); + +-- CreateTable CatalogRequest +CREATE TABLE "CatalogRequest" ( + "id" TEXT NOT NULL, + "customerId" TEXT NOT NULL, + "status" "CatalogRequestStatus" NOT NULL DEFAULT 'new', + "note" TEXT, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + CONSTRAINT "CatalogRequest_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX "CatalogRequest_customerId_idx" ON "CatalogRequest"("customerId"); +CREATE INDEX "CatalogRequest_status_idx" ON "CatalogRequest"("status"); + +-- CreateTable CatalogRequestItem +CREATE TABLE "CatalogRequestItem" ( + "id" TEXT NOT NULL, + "requestId" TEXT NOT NULL, + "productId" TEXT NOT NULL, + "quantity" INTEGER NOT NULL DEFAULT 1, + "holderType" "CatalogItemHolderType" NOT NULL DEFAULT 'warehouse', + "holderCustomerId" TEXT, + CONSTRAINT "CatalogRequestItem_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX "CatalogRequestItem_requestId_idx" ON "CatalogRequestItem"("requestId"); +CREATE INDEX "CatalogRequestItem_productId_idx" ON "CatalogRequestItem"("productId"); + +-- CreateTable CatalogItemMovement +CREATE TABLE "CatalogItemMovement" ( + "id" TEXT NOT NULL, + "itemId" TEXT NOT NULL, + "fromHolder" TEXT NOT NULL, + "toHolder" TEXT NOT NULL, + "note" TEXT, + "movedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT "CatalogItemMovement_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX "CatalogItemMovement_itemId_idx" ON "CatalogItemMovement"("itemId"); + +-- CreateTable StockNotifyRequest +CREATE TABLE "StockNotifyRequest" ( + "id" TEXT NOT NULL, + "customerId" TEXT NOT NULL, + "productId" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "notifiedAt" TIMESTAMP(3), + CONSTRAINT "StockNotifyRequest_pkey" PRIMARY KEY ("id") +); + +CREATE UNIQUE INDEX "StockNotifyRequest_customerId_productId_key" ON "StockNotifyRequest"("customerId", "productId"); +CREATE INDEX "StockNotifyRequest_productId_active_idx" ON "StockNotifyRequest"("productId", "active"); + +-- CreateTable ProductSuggestion +CREATE TABLE "ProductSuggestion" ( + "id" TEXT NOT NULL, + "customerId" TEXT NOT NULL, + "productId" TEXT NOT NULL, + "note" TEXT, + "createdByAdminId" TEXT, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT "ProductSuggestion_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX "ProductSuggestion_customerId_isActive_idx" ON "ProductSuggestion"("customerId", "isActive"); +CREATE INDEX "ProductSuggestion_productId_idx" ON "ProductSuggestion"("productId"); + +-- FKs +ALTER TABLE "Customer" ADD CONSTRAINT "Customer_levelDefId_fkey" FOREIGN KEY ("levelDefId") REFERENCES "CustomerLevelDef"("id") ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE "LevelBenefit" ADD CONSTRAINT "LevelBenefit_levelId_fkey" FOREIGN KEY ("levelId") REFERENCES "CustomerLevelDef"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "CustomerBrand" ADD CONSTRAINT "CustomerBrand_customerId_fkey" FOREIGN KEY ("customerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "CustomerBrand" ADD CONSTRAINT "CustomerBrand_brandId_fkey" FOREIGN KEY ("brandId") REFERENCES "Brand"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "CatalogRequest" ADD CONSTRAINT "CatalogRequest_customerId_fkey" FOREIGN KEY ("customerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "CatalogRequestItem" ADD CONSTRAINT "CatalogRequestItem_requestId_fkey" FOREIGN KEY ("requestId") REFERENCES "CatalogRequest"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "CatalogRequestItem" ADD CONSTRAINT "CatalogRequestItem_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE RESTRICT ON UPDATE CASCADE; +ALTER TABLE "CatalogItemMovement" ADD CONSTRAINT "CatalogItemMovement_itemId_fkey" FOREIGN KEY ("itemId") REFERENCES "CatalogRequestItem"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "StockNotifyRequest" ADD CONSTRAINT "StockNotifyRequest_customerId_fkey" FOREIGN KEY ("customerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "StockNotifyRequest" ADD CONSTRAINT "StockNotifyRequest_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "ProductSuggestion" ADD CONSTRAINT "ProductSuggestion_customerId_fkey" FOREIGN KEY ("customerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "ProductSuggestion" ADD CONSTRAINT "ProductSuggestion_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/runtime/migrations/20260909120000_agent_pricing_settings/migration.sql b/runtime/migrations/20260909120000_agent_pricing_settings/migration.sql new file mode 100644 index 0000000..0c4fbba --- /dev/null +++ b/runtime/migrations/20260909120000_agent_pricing_settings/migration.sql @@ -0,0 +1,3 @@ +-- AlterTable +ALTER TABLE "SystemSettings" ADD COLUMN IF NOT EXISTS "allowAgentPricing" BOOLEAN NOT NULL DEFAULT false; +ALTER TABLE "SystemSettings" ADD COLUMN IF NOT EXISTS "agentMinUnitPrice" INTEGER; diff --git a/runtime/migrations/20260909160000_customer_avatar_url/migration.sql b/runtime/migrations/20260909160000_customer_avatar_url/migration.sql new file mode 100644 index 0000000..d42cff6 --- /dev/null +++ b/runtime/migrations/20260909160000_customer_avatar_url/migration.sql @@ -0,0 +1 @@ +ALTER TABLE "Customer" ADD COLUMN IF NOT EXISTS "avatarUrl" TEXT; diff --git a/runtime/migrations/20260909180000_category_images/migration.sql b/runtime/migrations/20260909180000_category_images/migration.sql new file mode 100644 index 0000000..4ee1eed --- /dev/null +++ b/runtime/migrations/20260909180000_category_images/migration.sql @@ -0,0 +1 @@ +ALTER TABLE "SystemSettings" ADD COLUMN IF NOT EXISTS "categoryImagesJson" JSONB; diff --git a/runtime/migrations/20260909190000_app_banners/migration.sql b/runtime/migrations/20260909190000_app_banners/migration.sql new file mode 100644 index 0000000..fb33418 --- /dev/null +++ b/runtime/migrations/20260909190000_app_banners/migration.sql @@ -0,0 +1,22 @@ +CREATE TABLE IF NOT EXISTS "AppBanner" ( + "id" TEXT NOT NULL, + "slot" TEXT NOT NULL, + "title" TEXT NOT NULL, + "subtitle" TEXT, + "ctaLabel" TEXT, + "ctaLink" TEXT, + "imageUrl" TEXT, + "displayOrder" INTEGER NOT NULL DEFAULT 0, + "isActive" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "AppBanner_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX IF NOT EXISTS "AppBanner_slot_isActive_displayOrder_idx" +ON "AppBanner"("slot", "isActive", "displayOrder"); + +INSERT INTO "AppBanner" ("id", "slot", "title", "subtitle", "ctaLabel", "ctaLink", "displayOrder", "isActive", "createdAt", "updatedAt") +SELECT 'home-hero-default', 'home_hero', 'کالکشن پاییز و زمستان', 'جدیدترین پارچه‌ها', 'مشاهده کالکشن', '/categories', 0, true, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP +WHERE NOT EXISTS (SELECT 1 FROM "AppBanner" WHERE "id" = 'home-hero-default'); diff --git a/runtime/migrations/migration_lock.toml b/runtime/migrations/migration_lock.toml new file mode 100644 index 0000000..2fe25d8 --- /dev/null +++ b/runtime/migrations/migration_lock.toml @@ -0,0 +1 @@ +provider = "postgresql" diff --git a/runtime/package.json b/runtime/package.json new file mode 100644 index 0000000..85c31dd --- /dev/null +++ b/runtime/package.json @@ -0,0 +1,5 @@ +{ + "name": "fabric-trade-runtime", + "private": true, + "type": "commonjs" +} diff --git a/runtime/schema.prisma b/runtime/schema.prisma new file mode 100644 index 0000000..cb3466d --- /dev/null +++ b/runtime/schema.prisma @@ -0,0 +1,751 @@ +generator client { + provider = "prisma-client-js" + binaryTargets = ["native", "debian-openssl-3.0.x"] +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") +} + +enum SettlementType { + cash + check +} + +enum CheckRegistrationMode { + full + brief +} + +enum OrderStatus { + cart + awaiting_settlement + cash_in_progress + check_in_progress + submitted + awaiting_review + pricing + needs_correction + awaiting_settlement_fix + cash_invoice_issued + awaiting_cash_payment + cash_payment_submitted + awaiting_cash_confirmation + cash_confirmed + awaiting_check_review + check_needs_fix + check_rejected + checks_approved + final_approved + preparing + ready_to_ship + shipped + delivered + cancelled + rejected + expired +} + +enum CheckStatus { + pending_review + approved + rejected +} + +enum CashPaymentStatus { + pending_review + approved + rejected + expired +} + +enum ShipmentStatus { + preparing + ready + shipped + delivered +} + +enum CustomerType { + wholesale + retail +} + +enum AppUserRole { + customer + agent +} + +enum InteractionType { + in_person + call + message + note +} + +enum ProductSeason { + summer + winter + all_season +} + +enum ProductUsageCategory { + trousers + suit + shirt + other +} + +enum AdminRole { + admin + sales + finance + warehouse +} + +enum NotificationTone { + info + warning + success + danger +} + +/// گردش کالیته فیزیکی (§۷ سند) +enum CatalogRequestStatus { + new + approved + ready_to_ship + delivered + returned + cancelled +} + +enum CatalogItemHolderType { + warehouse + customer + agent +} + +model Company { + id String @id @default(cuid()) + name String + slug String @unique + description String? + logoUrl String? + isActive Boolean @default(true) + displayOrder Int @default(0) + /// خالی یعنی از تنظیمات سیستم ارث می‌برد + maxMeteragePerInvoice Int? + cashInvoiceValidityHours Int @default(8) + cashInvoiceValidUntilHour Int? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + bankAccounts BankAccount[] + catalogs Catalog[] + products Product[] + orders Order[] + customers Customer[] +} + +model BankAccount { + id String @id @default(cuid()) + companyId String + bankName String + accountHolder String + accountNumber String + cardNumber String + iban String + notes String? + isActive Boolean @default(true) + displayOrder Int @default(0) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + company Company @relation(fields: [companyId], references: [id], onDelete: Cascade) + cashReceipts CashPaymentReceipt[] + + @@index([companyId]) +} + +model Catalog { + id String @id @default(cuid()) + companyId String + name String + code String + description String? + displayOrder Int @default(0) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + company Company @relation(fields: [companyId], references: [id], onDelete: Cascade) + products Product[] + + @@unique([companyId, code]) + @@index([companyId]) +} + +model Product { + id String @id @default(cuid()) + companyId String + catalogId String + name String + code String + color String + description String? + minMeterage Float @default(30) + orderMultiplier Float @default(10) + basePrice Float? + stock Float? + isActive Boolean @default(true) + /// فیلدهای نمایش کاتالوگ موکاپ (اپ کاربر) + usageCategory ProductUsageCategory @default(other) + season ProductSeason @default(all_season) + widthCm Float? + composition String? + weightGrams Float? + weaveType String? + colorsJson Json? + tagsJson Json? + imageUrlsJson Json? + subtitle String? + rollMeters Float @default(50) + isNew Boolean @default(false) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + company Company @relation(fields: [companyId], references: [id], onDelete: Cascade) + catalog Catalog @relation(fields: [catalogId], references: [id], onDelete: Cascade) + cartItems CartItem[] + orderItems OrderItem[] + favorites ProductFavorite[] + catalogRequestItems CatalogRequestItem[] + stockNotifyRequests StockNotifyRequest[] + productSuggestions ProductSuggestion[] + + @@unique([companyId, code]) + @@index([catalogId]) + @@index([companyId]) + @@index([usageCategory]) + @@index([season]) +} + +model Customer { + id String @id @default(cuid()) + firstName String + lastName String + phone String @unique + nationalId String? + customerType CustomerType @default(wholesale) + /// نقش در اپ کاربر: مشتری عادی یا واسطه + appRole AppUserRole @default(customer) + agentCode String? + businessName String? + levelLabel String? + nextLevelLabel String? + pointsToNext Int? + levelProgress Int? @default(0) + assignedAgentId String? + avatarLetter String? + avatarColor String? + avatarUrl String? + companyId String? + levelDefId String? + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + company Company? @relation(fields: [companyId], references: [id], onDelete: SetNull) + levelDef CustomerLevelDef? @relation(fields: [levelDefId], references: [id], onDelete: SetNull) + assignedAgent Customer? @relation("AgentCustomers", fields: [assignedAgentId], references: [id], onDelete: SetNull) + agentCustomers Customer[] @relation("AgentCustomers") + carts Cart[] + orders Order[] + notifications CustomerNotification[] + meetings MeetingInteraction[] @relation("MeetingCustomer") + meetingsAsAgent MeetingInteraction[] @relation("MeetingAgent") + reminders Reminder[] @relation("ReminderOwner") + remindersAbout Reminder[] @relation("ReminderCustomer") + favorites ProductFavorite[] + catalogRequests CatalogRequest[] + stockNotifyRequests StockNotifyRequest[] + productSuggestions ProductSuggestion[] + customerBrands CustomerBrand[] + + @@index([companyId]) + @@index([appRole]) + @@index([assignedAgentId]) + @@index([agentCode]) + @@index([levelDefId]) +} + +model AdminUser { + id String @id @default(cuid()) + fullName String + phone String @unique + email String @unique + passwordHash String + role AdminRole @default(admin) + isActive Boolean @default(true) + lastLoginAt DateTime? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + +model OtpChallenge { + id String @id @default(cuid()) + phone String + code String + firstName String? + lastName String? + isRegister Boolean @default(false) + attempts Int @default(0) + expiresAt DateTime + createdAt DateTime @default(now()) + + @@index([phone]) +} + +model Cart { + id String @id @default(cuid()) + userId String + companyId String? + notes String? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + user Customer @relation(fields: [userId], references: [id], onDelete: Cascade) + items CartItem[] + + @@index([userId]) +} + +model CartItem { + id String @id @default(cuid()) + cartId String + productId String + catalogCode String + productName String + productCode String + color String + meterage Float + unitPrice Float? + notes String? + companyId String + companyName String + + cart Cart @relation(fields: [cartId], references: [id], onDelete: Cascade) + product Product @relation(fields: [productId], references: [id], onDelete: Restrict) + + @@unique([cartId, productId]) + @@index([cartId]) +} + +model Order { + id String @id @default(cuid()) + orderNumber String @unique + userId String + companyId String + companyName String + // روش تسویه بعد از قیمت‌گذاری ادمین توسط مشتری انتخاب می‌شود + settlementType SettlementType? + checkMode CheckRegistrationMode? + status OrderStatus @default(awaiting_review) + totalMeterage Float @default(0) + totalAmount Float? + shippingCost Float? + totalDiscount Float? + finalAmount Float? + notes String? + checkRassDays Int? + checkRassDate DateTime? + cashInvoiceExpiresAt DateTime? + /// زمان ارسال یادآوری پایان مهلت پرداخت تا دوباره ارسال نشود + cashReminderSentAt DateTime? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + user Customer @relation(fields: [userId], references: [id], onDelete: Restrict) + company Company @relation(fields: [companyId], references: [id], onDelete: Restrict) + items OrderItem[] + checks Check[] + cashReceipt CashPaymentReceipt? + shipment Shipment? + statusHistory OrderStatusHistory[] + notifications CustomerNotification[] + + @@index([userId]) + @@index([companyId]) + @@index([status]) + @@index([createdAt]) + @@index([status, cashInvoiceExpiresAt]) +} + +model OrderItem { + id String @id @default(cuid()) + orderId String + productId String? + catalogCode String + productName String + productCode String? + color String + requestedMeterage Float + confirmedMeterage Float? + unitPrice Float? + unitDiscount Float? @default(0) + lineTotal Float? + notes String? + companyId String + companyName String + + order Order @relation(fields: [orderId], references: [id], onDelete: Cascade) + product Product? @relation(fields: [productId], references: [id], onDelete: SetNull) + + @@index([orderId]) + @@index([companyId]) +} + +model OrderStatusHistory { + id String @id @default(cuid()) + orderId String + fromStatus OrderStatus? + toStatus OrderStatus + changedBy String + note String? + reason String? + changedAt DateTime @default(now()) + + order Order @relation(fields: [orderId], references: [id], onDelete: Cascade) + + @@index([orderId]) +} + +model Check { + id String @id @default(cuid()) + orderId String + row Int + amount Float + dueDate DateTime + sayadId String? + checkNumber String? + ownerNationalId String? + ownerFirstName String? + ownerLastName String? + bankName String? + branchName String? + frontImage String? + backImage String? + notes String? + mode CheckRegistrationMode @default(full) + status CheckStatus @default(pending_review) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + order Order @relation(fields: [orderId], references: [id], onDelete: Cascade) + + @@index([orderId]) + @@index([dueDate]) +} + +model CashPaymentReceipt { + id String @id @default(cuid()) + orderId String @unique + amount Float + paidAmount Float? + transferDate DateTime? + transferTime String? + trackingNumber String? + destinationAccountId String? + receiptImage String? + notes String? + expiresAt DateTime? + status CashPaymentStatus @default(pending_review) + submittedAt DateTime? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + order Order @relation(fields: [orderId], references: [id], onDelete: Cascade) + destinationAccount BankAccount? @relation(fields: [destinationAccountId], references: [id], onDelete: SetNull) +} + +model Shipment { + id String @id @default(cuid()) + orderId String @unique + carrier String + trackingNumber String? + meterage Float + status ShipmentStatus @default(preparing) + shippedAt DateTime? + deliveredAt DateTime? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + order Order @relation(fields: [orderId], references: [id], onDelete: Cascade) +} + +model SystemSettings { + id String @id @default("default") + maxMeteragePerInvoice Int @default(5000) + cashInvoiceValidityHours Int @default(8) + defaultSettlementCheck Boolean @default(true) + defaultSettlementCash Boolean @default(true) + /// حداقل سفارش: تعداد طاقه از هر محصول (§۱۹) + minOrderRollsPerProduct Int @default(1) + /// نمایش قیمت عمومی در کاتالوگ (پیش‌فرض خاموش) + showCatalogPublicPrice Boolean @default(false) + /// اجازه قیمت‌گذاری توسط واسطه (§۱۹) + allowAgentPricing Boolean @default(false) + /// کف قیمت واحد برای قیمت‌گذاری واسطه (ریال) — اختیاری + agentMinUnitPrice Int? + smsOrderRegistered Boolean @default(true) + smsPricingReady Boolean @default(true) + smsPaymentReminder Boolean @default(true) + smsCheckReview Boolean @default(true) + smsShippingUpdate Boolean @default(true) + supportPhone String? + supportEmail String? + /// تصاویر دسته‌های کاربرد/فصل اپ کاربر: { trousers: dataUrl, summer: dataUrl, ... } + categoryImagesJson Json? + updatedAt DateTime @updatedAt +} + +/// بنرهای قابل مدیریت بخش‌های اپ کاربر +model AppBanner { + id String @id @default(cuid()) + slot String + title String + subtitle String? + ctaLabel String? + ctaLink String? + imageUrl String? + displayOrder Int @default(0) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@index([slot, isActive, displayOrder]) +} + +model AdminNotification { + id String @id @default(cuid()) + title String + body String + tone NotificationTone? @default(info) + link String? + isRead Boolean @default(false) + sentAt DateTime @default(now()) +} + +model CustomerNotification { + id String @id @default(cuid()) + customerId String + orderId String? + event String + title String + body String + tone NotificationTone? @default(info) + link String? + isRead Boolean @default(false) + smsSent Boolean @default(false) + sentAt DateTime @default(now()) + + customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade) + order Order? @relation(fields: [orderId], references: [id], onDelete: SetNull) + + @@index([customerId, isRead]) + @@index([sentAt]) +} + +model InternalMessage { + id String @id @default(cuid()) + senderName String + subject String + preview String + isRead Boolean @default(false) + sentAt DateTime @default(now()) +} + +model MeetingInteraction { + id String @id @default(cuid()) + customerId String + agentId String + type InteractionType @default(in_person) + title String + description String? + subject String? + content String? + date String + time String? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + customer Customer @relation("MeetingCustomer", fields: [customerId], references: [id], onDelete: Cascade) + agent Customer @relation("MeetingAgent", fields: [agentId], references: [id], onDelete: Cascade) + + @@index([customerId]) + @@index([agentId]) + @@index([date]) +} + +model Reminder { + id String @id @default(cuid()) + ownerId String + customerId String + title String + description String? + note String? + date String + time String + interactionType InteractionType @default(note) + completed Boolean @default(false) + completedAt DateTime? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + owner Customer @relation("ReminderOwner", fields: [ownerId], references: [id], onDelete: Cascade) + customer Customer @relation("ReminderCustomer", fields: [customerId], references: [id], onDelete: Cascade) + + @@index([ownerId, completed]) + @@index([customerId]) + @@index([date]) +} + +model ProductFavorite { + id String @id @default(cuid()) + customerId String + productId String + createdAt DateTime @default(now()) + + customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade) + product Product @relation(fields: [productId], references: [id], onDelete: Cascade) + + @@unique([customerId, productId]) + @@index([customerId]) +} + +model Brand { + id String @id @default(cuid()) + name String + slug String? @unique + description String? + isActive Boolean @default(true) + displayOrder Int @default(0) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + customers CustomerBrand[] +} + +model CustomerBrand { + customerId String + brandId String + createdAt DateTime @default(now()) + + customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade) + brand Brand @relation(fields: [brandId], references: [id], onDelete: Cascade) + + @@id([customerId, brandId]) + @@index([brandId]) +} + +model CustomerLevelDef { + id String @id @default(cuid()) + code String @unique + label String + sortOrder Int @default(0) + criteriaJson Json? + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + benefits LevelBenefit[] + customers Customer[] +} + +model LevelBenefit { + id String @id @default(cuid()) + levelId String + title String + description String? + + level CustomerLevelDef @relation(fields: [levelId], references: [id], onDelete: Cascade) + + @@index([levelId]) +} + +model CatalogRequest { + id String @id @default(cuid()) + customerId String + status CatalogRequestStatus @default(new) + note String? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade) + items CatalogRequestItem[] + + @@index([customerId]) + @@index([status]) +} + +model CatalogRequestItem { + id String @id @default(cuid()) + requestId String + productId String + quantity Int @default(1) + holderType CatalogItemHolderType @default(warehouse) + holderCustomerId String? + + request CatalogRequest @relation(fields: [requestId], references: [id], onDelete: Cascade) + product Product @relation(fields: [productId], references: [id], onDelete: Restrict) + movements CatalogItemMovement[] + + @@index([requestId]) + @@index([productId]) +} + +model CatalogItemMovement { + id String @id @default(cuid()) + itemId String + fromHolder String + toHolder String + note String? + movedAt DateTime @default(now()) + + item CatalogRequestItem @relation(fields: [itemId], references: [id], onDelete: Cascade) + + @@index([itemId]) +} + +model StockNotifyRequest { + id String @id @default(cuid()) + customerId String + productId String + active Boolean @default(true) + createdAt DateTime @default(now()) + notifiedAt DateTime? + + customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade) + product Product @relation(fields: [productId], references: [id], onDelete: Cascade) + + @@unique([customerId, productId]) + @@index([productId, active]) +} + +model ProductSuggestion { + id String @id @default(cuid()) + customerId String + productId String + note String? + createdByAdminId String? + isActive Boolean @default(true) + createdAt DateTime @default(now()) + + customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade) + product Product @relation(fields: [productId], references: [id], onDelete: Cascade) + + @@index([customerId, isActive]) + @@index([productId]) +} diff --git a/runtime/server.cjs b/runtime/server.cjs new file mode 100644 index 0000000..e59c806 --- /dev/null +++ b/runtime/server.cjs @@ -0,0 +1,140197 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +var __esm = (fn, res, err) => function __init() { + if (err) throw err[0]; + try { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; + } catch (e) { + throw err = [e], e; + } +}; +var __commonJS = (cb, mod) => function __require() { + try { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + } catch (e) { + throw mod = 0, e; + } +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// node_modules/tslib/tslib.es6.mjs +var tslib_es6_exports = {}; +__export(tslib_es6_exports, { + __addDisposableResource: () => __addDisposableResource, + __assign: () => __assign, + __asyncDelegator: () => __asyncDelegator, + __asyncGenerator: () => __asyncGenerator, + __asyncValues: () => __asyncValues, + __await: () => __await, + __awaiter: () => __awaiter, + __classPrivateFieldGet: () => __classPrivateFieldGet, + __classPrivateFieldIn: () => __classPrivateFieldIn, + __classPrivateFieldSet: () => __classPrivateFieldSet, + __createBinding: () => __createBinding, + __decorate: () => __decorate, + __disposeResources: () => __disposeResources, + __esDecorate: () => __esDecorate, + __exportStar: () => __exportStar, + __extends: () => __extends, + __generator: () => __generator, + __importDefault: () => __importDefault, + __importStar: () => __importStar, + __makeTemplateObject: () => __makeTemplateObject, + __metadata: () => __metadata, + __param: () => __param, + __propKey: () => __propKey, + __read: () => __read, + __rest: () => __rest, + __rewriteRelativeImportExtension: () => __rewriteRelativeImportExtension, + __runInitializers: () => __runInitializers, + __setFunctionName: () => __setFunctionName, + __spread: () => __spread, + __spreadArray: () => __spreadArray, + __spreadArrays: () => __spreadArrays, + __values: () => __values, + default: () => tslib_es6_default +}); +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} +function __param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { + if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); + return f; + } + __name(accept, "accept"); + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function(f) { + if (done) throw new TypeError("Cannot add initializers after decoration has completed"); + extraInitializers.push(accept(f || null)); + }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; +} +function __runInitializers(thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; +} +function __propKey(x) { + return typeof x === "symbol" ? x : "".concat(x); +} +function __setFunctionName(f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); +} +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + __name(adopt, "adopt"); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + __name(fulfilled, "fulfilled"); + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + __name(rejected, "rejected"); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + __name(step, "step"); + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} +function __generator(thisArg, body) { + var _ = { label: 0, sent: /* @__PURE__ */ __name(function() { + if (t[0] & 1) throw t[1]; + return t[1]; + }, "sent"), trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + __name(verb, "verb"); + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + __name(step, "step"); +} +function __exportStar(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); +} +function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} +function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; +} +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +} +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} +function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} +function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() { + return this; + }, i; + function awaitReturn(f) { + return function(v) { + return Promise.resolve(v).then(f, reject); + }; + } + __name(awaitReturn, "awaitReturn"); + function verb(n, f) { + if (g[n]) { + i[n] = function(v) { + return new Promise(function(a, b) { + q.push([n, v, a, b]) > 1 || resume(n, v); + }); + }; + if (f) i[n] = f(i[n]); + } + } + __name(verb, "verb"); + function resume(n, v) { + try { + step(g[n](v)); + } catch (e) { + settle(q[0][3], e); + } + } + __name(resume, "resume"); + function step(r) { + r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); + } + __name(step, "step"); + function fulfill(value) { + resume("next", value); + } + __name(fulfill, "fulfill"); + function reject(value) { + resume("throw", value); + } + __name(reject, "reject"); + function settle(f, v) { + if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); + } + __name(settle, "settle"); +} +function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function(e) { + throw e; + }), verb("return"), i[Symbol.iterator] = function() { + return this; + }, i; + function verb(n, f) { + i[n] = o[n] ? function(v) { + return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; + } : f; + } + __name(verb, "verb"); +} +function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i); + function verb(n) { + i[n] = o[n] && function(v) { + return new Promise(function(resolve, reject) { + v = o[n](v), settle(resolve, reject, v.done, v.value); + }); + }; + } + __name(verb, "verb"); + function settle(resolve, reject, d, v) { + Promise.resolve(v).then(function(v2) { + resolve({ value: v2, done: d }); + }, reject); + } + __name(settle, "settle"); +} +function __makeTemplateObject(cooked, raw2) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw2 }); + } else { + cooked.raw = raw2; + } + return cooked; +} +function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + } + __setModuleDefault(result, mod); + return result; +} +function __importDefault(mod) { + return mod && mod.__esModule ? mod : { default: mod }; +} +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} +function __classPrivateFieldSet(receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value; +} +function __classPrivateFieldIn(state, receiver) { + if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function") throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); +} +function __addDisposableResource(env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose, inner; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; + if (async) inner = dispose; + } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + if (inner) dispose = /* @__PURE__ */ __name(function() { + try { + inner.call(this); + } catch (e) { + return Promise.reject(e); + } + }, "dispose"); + env.stack.push({ value, dispose, async }); + } else if (async) { + env.stack.push({ async: true }); + } + return value; +} +function __disposeResources(env) { + function fail(e) { + env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; + env.hasError = true; + } + __name(fail, "fail"); + var r, s = 0; + function next() { + while (r = env.stack.pop()) { + try { + if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); + if (r.dispose) { + var result = r.dispose.call(r.value); + if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { + fail(e); + return next(); + }); + } else s |= 1; + } catch (e) { + fail(e); + } + } + if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); + if (env.hasError) throw env.error; + } + __name(next, "next"); + return next(); +} +function __rewriteRelativeImportExtension(path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : d + ext + "." + cm.toLowerCase() + "js"; + }); + } + return path; +} +var extendStatics, __assign, __createBinding, __setModuleDefault, ownKeys, _SuppressedError, tslib_es6_default; +var init_tslib_es6 = __esm({ + "node_modules/tslib/tslib.es6.mjs"() { + extendStatics = /* @__PURE__ */ __name(function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics(d, b); + }, "extendStatics"); + __name(__extends, "__extends"); + __assign = /* @__PURE__ */ __name(function() { + __assign = Object.assign || /* @__PURE__ */ __name(function __assign2(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }, "__assign"); + return __assign.apply(this, arguments); + }, "__assign"); + __name(__rest, "__rest"); + __name(__decorate, "__decorate"); + __name(__param, "__param"); + __name(__esDecorate, "__esDecorate"); + __name(__runInitializers, "__runInitializers"); + __name(__propKey, "__propKey"); + __name(__setFunctionName, "__setFunctionName"); + __name(__metadata, "__metadata"); + __name(__awaiter, "__awaiter"); + __name(__generator, "__generator"); + __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + __name(__exportStar, "__exportStar"); + __name(__values, "__values"); + __name(__read, "__read"); + __name(__spread, "__spread"); + __name(__spreadArrays, "__spreadArrays"); + __name(__spreadArray, "__spreadArray"); + __name(__await, "__await"); + __name(__asyncGenerator, "__asyncGenerator"); + __name(__asyncDelegator, "__asyncDelegator"); + __name(__asyncValues, "__asyncValues"); + __name(__makeTemplateObject, "__makeTemplateObject"); + __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }; + ownKeys = /* @__PURE__ */ __name(function(o) { + ownKeys = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }, "ownKeys"); + __name(__importStar, "__importStar"); + __name(__importDefault, "__importDefault"); + __name(__classPrivateFieldGet, "__classPrivateFieldGet"); + __name(__classPrivateFieldSet, "__classPrivateFieldSet"); + __name(__classPrivateFieldIn, "__classPrivateFieldIn"); + __name(__addDisposableResource, "__addDisposableResource"); + _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; + }; + __name(__disposeResources, "__disposeResources"); + __name(__rewriteRelativeImportExtension, "__rewriteRelativeImportExtension"); + tslib_es6_default = { + __extends, + __assign, + __rest, + __decorate, + __param, + __esDecorate, + __runInitializers, + __propKey, + __setFunctionName, + __metadata, + __awaiter, + __generator, + __createBinding, + __exportStar, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, + __classPrivateFieldIn, + __addDisposableResource, + __disposeResources, + __rewriteRelativeImportExtension + }; + } +}); + +// node_modules/reflect-metadata/Reflect.js +var require_Reflect = __commonJS({ + "node_modules/reflect-metadata/Reflect.js"() { + var Reflect2; + (function(Reflect3) { + (function(factory) { + var root = typeof globalThis === "object" ? globalThis : typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : sloppyModeThis(); + var exporter = makeExporter(Reflect3); + if (typeof root.Reflect !== "undefined") { + exporter = makeExporter(root.Reflect, exporter); + } + factory(exporter, root); + if (typeof root.Reflect === "undefined") { + root.Reflect = Reflect3; + } + function makeExporter(target, previous) { + return function(key, value) { + Object.defineProperty(target, key, { configurable: true, writable: true, value }); + if (previous) + previous(key, value); + }; + } + __name(makeExporter, "makeExporter"); + function functionThis() { + try { + return Function("return this;")(); + } catch (_) { + } + } + __name(functionThis, "functionThis"); + function indirectEvalThis() { + try { + return (void 0, eval)("(function() { return this; })()"); + } catch (_) { + } + } + __name(indirectEvalThis, "indirectEvalThis"); + function sloppyModeThis() { + return functionThis() || indirectEvalThis(); + } + __name(sloppyModeThis, "sloppyModeThis"); + })(function(exporter, root) { + var hasOwn = Object.prototype.hasOwnProperty; + var supportsSymbol = typeof Symbol === "function"; + var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive"; + var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator"; + var supportsCreate = typeof Object.create === "function"; + var supportsProto = { __proto__: [] } instanceof Array; + var downLevel = !supportsCreate && !supportsProto; + var HashMap = { + // create an object in dictionary mode (a.k.a. "slow" mode in v8) + create: supportsCreate ? function() { + return MakeDictionary(/* @__PURE__ */ Object.create(null)); + } : supportsProto ? function() { + return MakeDictionary({ __proto__: null }); + } : function() { + return MakeDictionary({}); + }, + has: downLevel ? function(map, key) { + return hasOwn.call(map, key); + } : function(map, key) { + return key in map; + }, + get: downLevel ? function(map, key) { + return hasOwn.call(map, key) ? map[key] : void 0; + } : function(map, key) { + return map[key]; + } + }; + var functionPrototype = Object.getPrototypeOf(Function); + var _Map = typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill(); + var _Set = typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill(); + var _WeakMap = typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill(); + var registrySymbol = supportsSymbol ? /* @__PURE__ */ Symbol.for("@reflect-metadata:registry") : void 0; + var metadataRegistry = GetOrCreateMetadataRegistry(); + var metadataProvider = CreateMetadataProvider(metadataRegistry); + function decorate(decorators, target, propertyKey, attributes) { + if (!IsUndefined(propertyKey)) { + if (!IsArray(decorators)) + throw new TypeError(); + if (!IsObject(target)) + throw new TypeError(); + if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes)) + throw new TypeError(); + if (IsNull(attributes)) + attributes = void 0; + propertyKey = ToPropertyKey(propertyKey); + return DecorateProperty(decorators, target, propertyKey, attributes); + } else { + if (!IsArray(decorators)) + throw new TypeError(); + if (!IsConstructor(target)) + throw new TypeError(); + return DecorateConstructor(decorators, target); + } + } + __name(decorate, "decorate"); + exporter("decorate", decorate); + function metadata(metadataKey, metadataValue) { + function decorator(target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey)) + throw new TypeError(); + OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); + } + __name(decorator, "decorator"); + return decorator; + } + __name(metadata, "metadata"); + exporter("metadata", metadata); + function defineMetadata(metadataKey, metadataValue, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); + } + __name(defineMetadata, "defineMetadata"); + exporter("defineMetadata", defineMetadata); + function hasMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryHasMetadata(metadataKey, target, propertyKey); + } + __name(hasMetadata, "hasMetadata"); + exporter("hasMetadata", hasMetadata); + function hasOwnMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey); + } + __name(hasOwnMetadata, "hasOwnMetadata"); + exporter("hasOwnMetadata", hasOwnMetadata); + function getMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryGetMetadata(metadataKey, target, propertyKey); + } + __name(getMetadata, "getMetadata"); + exporter("getMetadata", getMetadata); + function getOwnMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey); + } + __name(getOwnMetadata, "getOwnMetadata"); + exporter("getOwnMetadata", getOwnMetadata); + function getMetadataKeys(target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryMetadataKeys(target, propertyKey); + } + __name(getMetadataKeys, "getMetadataKeys"); + exporter("getMetadataKeys", getMetadataKeys); + function getOwnMetadataKeys(target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + return OrdinaryOwnMetadataKeys(target, propertyKey); + } + __name(getOwnMetadataKeys, "getOwnMetadataKeys"); + exporter("getOwnMetadataKeys", getOwnMetadataKeys); + function deleteMetadata(metadataKey, target, propertyKey) { + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + if (!IsObject(target)) + throw new TypeError(); + if (!IsUndefined(propertyKey)) + propertyKey = ToPropertyKey(propertyKey); + var provider = GetMetadataProvider( + target, + propertyKey, + /*Create*/ + false + ); + if (IsUndefined(provider)) + return false; + return provider.OrdinaryDeleteMetadata(metadataKey, target, propertyKey); + } + __name(deleteMetadata, "deleteMetadata"); + exporter("deleteMetadata", deleteMetadata); + function DecorateConstructor(decorators, target) { + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + var decorated = decorator(target); + if (!IsUndefined(decorated) && !IsNull(decorated)) { + if (!IsConstructor(decorated)) + throw new TypeError(); + target = decorated; + } + } + return target; + } + __name(DecorateConstructor, "DecorateConstructor"); + function DecorateProperty(decorators, target, propertyKey, descriptor) { + for (var i = decorators.length - 1; i >= 0; --i) { + var decorator = decorators[i]; + var decorated = decorator(target, propertyKey, descriptor); + if (!IsUndefined(decorated) && !IsNull(decorated)) { + if (!IsObject(decorated)) + throw new TypeError(); + descriptor = decorated; + } + } + return descriptor; + } + __name(DecorateProperty, "DecorateProperty"); + function OrdinaryHasMetadata(MetadataKey, O, P) { + var hasOwn2 = OrdinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn2) + return true; + var parent = OrdinaryGetPrototypeOf(O); + if (!IsNull(parent)) + return OrdinaryHasMetadata(MetadataKey, parent, P); + return false; + } + __name(OrdinaryHasMetadata, "OrdinaryHasMetadata"); + function OrdinaryHasOwnMetadata(MetadataKey, O, P) { + var provider = GetMetadataProvider( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(provider)) + return false; + return ToBoolean(provider.OrdinaryHasOwnMetadata(MetadataKey, O, P)); + } + __name(OrdinaryHasOwnMetadata, "OrdinaryHasOwnMetadata"); + function OrdinaryGetMetadata(MetadataKey, O, P) { + var hasOwn2 = OrdinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn2) + return OrdinaryGetOwnMetadata(MetadataKey, O, P); + var parent = OrdinaryGetPrototypeOf(O); + if (!IsNull(parent)) + return OrdinaryGetMetadata(MetadataKey, parent, P); + return void 0; + } + __name(OrdinaryGetMetadata, "OrdinaryGetMetadata"); + function OrdinaryGetOwnMetadata(MetadataKey, O, P) { + var provider = GetMetadataProvider( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(provider)) + return; + return provider.OrdinaryGetOwnMetadata(MetadataKey, O, P); + } + __name(OrdinaryGetOwnMetadata, "OrdinaryGetOwnMetadata"); + function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) { + var provider = GetMetadataProvider( + O, + P, + /*Create*/ + true + ); + provider.OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P); + } + __name(OrdinaryDefineOwnMetadata, "OrdinaryDefineOwnMetadata"); + function OrdinaryMetadataKeys(O, P) { + var ownKeys2 = OrdinaryOwnMetadataKeys(O, P); + var parent = OrdinaryGetPrototypeOf(O); + if (parent === null) + return ownKeys2; + var parentKeys = OrdinaryMetadataKeys(parent, P); + if (parentKeys.length <= 0) + return ownKeys2; + if (ownKeys2.length <= 0) + return parentKeys; + var set = new _Set(); + var keys = []; + for (var _i = 0, ownKeys_1 = ownKeys2; _i < ownKeys_1.length; _i++) { + var key = ownKeys_1[_i]; + var hasKey = set.has(key); + if (!hasKey) { + set.add(key); + keys.push(key); + } + } + for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) { + var key = parentKeys_1[_a]; + var hasKey = set.has(key); + if (!hasKey) { + set.add(key); + keys.push(key); + } + } + return keys; + } + __name(OrdinaryMetadataKeys, "OrdinaryMetadataKeys"); + function OrdinaryOwnMetadataKeys(O, P) { + var provider = GetMetadataProvider( + O, + P, + /*create*/ + false + ); + if (!provider) { + return []; + } + return provider.OrdinaryOwnMetadataKeys(O, P); + } + __name(OrdinaryOwnMetadataKeys, "OrdinaryOwnMetadataKeys"); + function Type(x) { + if (x === null) + return 1; + switch (typeof x) { + case "undefined": + return 0; + case "boolean": + return 2; + case "string": + return 3; + case "symbol": + return 4; + case "number": + return 5; + case "object": + return x === null ? 1 : 6; + default: + return 6; + } + } + __name(Type, "Type"); + function IsUndefined(x) { + return x === void 0; + } + __name(IsUndefined, "IsUndefined"); + function IsNull(x) { + return x === null; + } + __name(IsNull, "IsNull"); + function IsSymbol(x) { + return typeof x === "symbol"; + } + __name(IsSymbol, "IsSymbol"); + function IsObject(x) { + return typeof x === "object" ? x !== null : typeof x === "function"; + } + __name(IsObject, "IsObject"); + function ToPrimitive(input, PreferredType) { + switch (Type(input)) { + case 0: + return input; + case 1: + return input; + case 2: + return input; + case 3: + return input; + case 4: + return input; + case 5: + return input; + } + var hint = PreferredType === 3 ? "string" : PreferredType === 5 ? "number" : "default"; + var exoticToPrim = GetMethod(input, toPrimitiveSymbol); + if (exoticToPrim !== void 0) { + var result = exoticToPrim.call(input, hint); + if (IsObject(result)) + throw new TypeError(); + return result; + } + return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint); + } + __name(ToPrimitive, "ToPrimitive"); + function OrdinaryToPrimitive(O, hint) { + if (hint === "string") { + var toString_1 = O.toString; + if (IsCallable(toString_1)) { + var result = toString_1.call(O); + if (!IsObject(result)) + return result; + } + var valueOf = O.valueOf; + if (IsCallable(valueOf)) { + var result = valueOf.call(O); + if (!IsObject(result)) + return result; + } + } else { + var valueOf = O.valueOf; + if (IsCallable(valueOf)) { + var result = valueOf.call(O); + if (!IsObject(result)) + return result; + } + var toString_2 = O.toString; + if (IsCallable(toString_2)) { + var result = toString_2.call(O); + if (!IsObject(result)) + return result; + } + } + throw new TypeError(); + } + __name(OrdinaryToPrimitive, "OrdinaryToPrimitive"); + function ToBoolean(argument) { + return !!argument; + } + __name(ToBoolean, "ToBoolean"); + function ToString(argument) { + return "" + argument; + } + __name(ToString, "ToString"); + function ToPropertyKey(argument) { + var key = ToPrimitive( + argument, + 3 + /* String */ + ); + if (IsSymbol(key)) + return key; + return ToString(key); + } + __name(ToPropertyKey, "ToPropertyKey"); + function IsArray(argument) { + return Array.isArray ? Array.isArray(argument) : argument instanceof Object ? argument instanceof Array : Object.prototype.toString.call(argument) === "[object Array]"; + } + __name(IsArray, "IsArray"); + function IsCallable(argument) { + return typeof argument === "function"; + } + __name(IsCallable, "IsCallable"); + function IsConstructor(argument) { + return typeof argument === "function"; + } + __name(IsConstructor, "IsConstructor"); + function IsPropertyKey(argument) { + switch (Type(argument)) { + case 3: + return true; + case 4: + return true; + default: + return false; + } + } + __name(IsPropertyKey, "IsPropertyKey"); + function SameValueZero(x, y) { + return x === y || x !== x && y !== y; + } + __name(SameValueZero, "SameValueZero"); + function GetMethod(V, P) { + var func = V[P]; + if (func === void 0 || func === null) + return void 0; + if (!IsCallable(func)) + throw new TypeError(); + return func; + } + __name(GetMethod, "GetMethod"); + function GetIterator(obj) { + var method = GetMethod(obj, iteratorSymbol); + if (!IsCallable(method)) + throw new TypeError(); + var iterator = method.call(obj); + if (!IsObject(iterator)) + throw new TypeError(); + return iterator; + } + __name(GetIterator, "GetIterator"); + function IteratorValue(iterResult) { + return iterResult.value; + } + __name(IteratorValue, "IteratorValue"); + function IteratorStep(iterator) { + var result = iterator.next(); + return result.done ? false : result; + } + __name(IteratorStep, "IteratorStep"); + function IteratorClose(iterator) { + var f = iterator["return"]; + if (f) + f.call(iterator); + } + __name(IteratorClose, "IteratorClose"); + function OrdinaryGetPrototypeOf(O) { + var proto = Object.getPrototypeOf(O); + if (typeof O !== "function" || O === functionPrototype) + return proto; + if (proto !== functionPrototype) + return proto; + var prototype = O.prototype; + var prototypeProto = prototype && Object.getPrototypeOf(prototype); + if (prototypeProto == null || prototypeProto === Object.prototype) + return proto; + var constructor = prototypeProto.constructor; + if (typeof constructor !== "function") + return proto; + if (constructor === O) + return proto; + return constructor; + } + __name(OrdinaryGetPrototypeOf, "OrdinaryGetPrototypeOf"); + function CreateMetadataRegistry() { + var fallback; + if (!IsUndefined(registrySymbol) && typeof root.Reflect !== "undefined" && !(registrySymbol in root.Reflect) && typeof root.Reflect.defineMetadata === "function") { + fallback = CreateFallbackProvider(root.Reflect); + } + var first; + var second; + var rest; + var targetProviderMap = new _WeakMap(); + var registry = { + registerProvider, + getProvider, + setProvider + }; + return registry; + function registerProvider(provider) { + if (!Object.isExtensible(registry)) { + throw new Error("Cannot add provider to a frozen registry."); + } + switch (true) { + case fallback === provider: + break; + case IsUndefined(first): + first = provider; + break; + case first === provider: + break; + case IsUndefined(second): + second = provider; + break; + case second === provider: + break; + default: + if (rest === void 0) + rest = new _Set(); + rest.add(provider); + break; + } + } + __name(registerProvider, "registerProvider"); + function getProviderNoCache(O, P) { + if (!IsUndefined(first)) { + if (first.isProviderFor(O, P)) + return first; + if (!IsUndefined(second)) { + if (second.isProviderFor(O, P)) + return first; + if (!IsUndefined(rest)) { + var iterator = GetIterator(rest); + while (true) { + var next = IteratorStep(iterator); + if (!next) { + return void 0; + } + var provider = IteratorValue(next); + if (provider.isProviderFor(O, P)) { + IteratorClose(iterator); + return provider; + } + } + } + } + } + if (!IsUndefined(fallback) && fallback.isProviderFor(O, P)) { + return fallback; + } + return void 0; + } + __name(getProviderNoCache, "getProviderNoCache"); + function getProvider(O, P) { + var providerMap = targetProviderMap.get(O); + var provider; + if (!IsUndefined(providerMap)) { + provider = providerMap.get(P); + } + if (!IsUndefined(provider)) { + return provider; + } + provider = getProviderNoCache(O, P); + if (!IsUndefined(provider)) { + if (IsUndefined(providerMap)) { + providerMap = new _Map(); + targetProviderMap.set(O, providerMap); + } + providerMap.set(P, provider); + } + return provider; + } + __name(getProvider, "getProvider"); + function hasProvider(provider) { + if (IsUndefined(provider)) + throw new TypeError(); + return first === provider || second === provider || !IsUndefined(rest) && rest.has(provider); + } + __name(hasProvider, "hasProvider"); + function setProvider(O, P, provider) { + if (!hasProvider(provider)) { + throw new Error("Metadata provider not registered."); + } + var existingProvider = getProvider(O, P); + if (existingProvider !== provider) { + if (!IsUndefined(existingProvider)) { + return false; + } + var providerMap = targetProviderMap.get(O); + if (IsUndefined(providerMap)) { + providerMap = new _Map(); + targetProviderMap.set(O, providerMap); + } + providerMap.set(P, provider); + } + return true; + } + __name(setProvider, "setProvider"); + } + __name(CreateMetadataRegistry, "CreateMetadataRegistry"); + function GetOrCreateMetadataRegistry() { + var metadataRegistry2; + if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) { + metadataRegistry2 = root.Reflect[registrySymbol]; + } + if (IsUndefined(metadataRegistry2)) { + metadataRegistry2 = CreateMetadataRegistry(); + } + if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) { + Object.defineProperty(root.Reflect, registrySymbol, { + enumerable: false, + configurable: false, + writable: false, + value: metadataRegistry2 + }); + } + return metadataRegistry2; + } + __name(GetOrCreateMetadataRegistry, "GetOrCreateMetadataRegistry"); + function CreateMetadataProvider(registry) { + var metadata2 = new _WeakMap(); + var provider = { + isProviderFor: /* @__PURE__ */ __name(function(O, P) { + var targetMetadata = metadata2.get(O); + if (IsUndefined(targetMetadata)) + return false; + return targetMetadata.has(P); + }, "isProviderFor"), + OrdinaryDefineOwnMetadata: OrdinaryDefineOwnMetadata2, + OrdinaryHasOwnMetadata: OrdinaryHasOwnMetadata2, + OrdinaryGetOwnMetadata: OrdinaryGetOwnMetadata2, + OrdinaryOwnMetadataKeys: OrdinaryOwnMetadataKeys2, + OrdinaryDeleteMetadata + }; + metadataRegistry.registerProvider(provider); + return provider; + function GetOrCreateMetadataMap(O, P, Create) { + var targetMetadata = metadata2.get(O); + var createdTargetMetadata = false; + if (IsUndefined(targetMetadata)) { + if (!Create) + return void 0; + targetMetadata = new _Map(); + metadata2.set(O, targetMetadata); + createdTargetMetadata = true; + } + var metadataMap = targetMetadata.get(P); + if (IsUndefined(metadataMap)) { + if (!Create) + return void 0; + metadataMap = new _Map(); + targetMetadata.set(P, metadataMap); + if (!registry.setProvider(O, P, provider)) { + targetMetadata.delete(P); + if (createdTargetMetadata) { + metadata2.delete(O); + } + throw new Error("Wrong provider for target."); + } + } + return metadataMap; + } + __name(GetOrCreateMetadataMap, "GetOrCreateMetadataMap"); + function OrdinaryHasOwnMetadata2(MetadataKey, O, P) { + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(metadataMap)) + return false; + return ToBoolean(metadataMap.has(MetadataKey)); + } + __name(OrdinaryHasOwnMetadata2, "OrdinaryHasOwnMetadata"); + function OrdinaryGetOwnMetadata2(MetadataKey, O, P) { + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(metadataMap)) + return void 0; + return metadataMap.get(MetadataKey); + } + __name(OrdinaryGetOwnMetadata2, "OrdinaryGetOwnMetadata"); + function OrdinaryDefineOwnMetadata2(MetadataKey, MetadataValue, O, P) { + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + true + ); + metadataMap.set(MetadataKey, MetadataValue); + } + __name(OrdinaryDefineOwnMetadata2, "OrdinaryDefineOwnMetadata"); + function OrdinaryOwnMetadataKeys2(O, P) { + var keys = []; + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(metadataMap)) + return keys; + var keysObj = metadataMap.keys(); + var iterator = GetIterator(keysObj); + var k = 0; + while (true) { + var next = IteratorStep(iterator); + if (!next) { + keys.length = k; + return keys; + } + var nextValue = IteratorValue(next); + try { + keys[k] = nextValue; + } catch (e) { + try { + IteratorClose(iterator); + } finally { + throw e; + } + } + k++; + } + } + __name(OrdinaryOwnMetadataKeys2, "OrdinaryOwnMetadataKeys"); + function OrdinaryDeleteMetadata(MetadataKey, O, P) { + var metadataMap = GetOrCreateMetadataMap( + O, + P, + /*Create*/ + false + ); + if (IsUndefined(metadataMap)) + return false; + if (!metadataMap.delete(MetadataKey)) + return false; + if (metadataMap.size === 0) { + var targetMetadata = metadata2.get(O); + if (!IsUndefined(targetMetadata)) { + targetMetadata.delete(P); + if (targetMetadata.size === 0) { + metadata2.delete(targetMetadata); + } + } + } + return true; + } + __name(OrdinaryDeleteMetadata, "OrdinaryDeleteMetadata"); + } + __name(CreateMetadataProvider, "CreateMetadataProvider"); + function CreateFallbackProvider(reflect) { + var defineMetadata2 = reflect.defineMetadata, hasOwnMetadata2 = reflect.hasOwnMetadata, getOwnMetadata2 = reflect.getOwnMetadata, getOwnMetadataKeys2 = reflect.getOwnMetadataKeys, deleteMetadata2 = reflect.deleteMetadata; + var metadataOwner = new _WeakMap(); + var provider = { + isProviderFor: /* @__PURE__ */ __name(function(O, P) { + var metadataPropertySet = metadataOwner.get(O); + if (!IsUndefined(metadataPropertySet) && metadataPropertySet.has(P)) { + return true; + } + if (getOwnMetadataKeys2(O, P).length) { + if (IsUndefined(metadataPropertySet)) { + metadataPropertySet = new _Set(); + metadataOwner.set(O, metadataPropertySet); + } + metadataPropertySet.add(P); + return true; + } + return false; + }, "isProviderFor"), + OrdinaryDefineOwnMetadata: defineMetadata2, + OrdinaryHasOwnMetadata: hasOwnMetadata2, + OrdinaryGetOwnMetadata: getOwnMetadata2, + OrdinaryOwnMetadataKeys: getOwnMetadataKeys2, + OrdinaryDeleteMetadata: deleteMetadata2 + }; + return provider; + } + __name(CreateFallbackProvider, "CreateFallbackProvider"); + function GetMetadataProvider(O, P, Create) { + var registeredProvider = metadataRegistry.getProvider(O, P); + if (!IsUndefined(registeredProvider)) { + return registeredProvider; + } + if (Create) { + if (metadataRegistry.setProvider(O, P, metadataProvider)) { + return metadataProvider; + } + throw new Error("Illegal state."); + } + return void 0; + } + __name(GetMetadataProvider, "GetMetadataProvider"); + function CreateMapPolyfill() { + var cacheSentinel = {}; + var arraySentinel = []; + var MapIterator = ( + /** @class */ + (function() { + function MapIterator2(keys, values, selector) { + this._index = 0; + this._keys = keys; + this._values = values; + this._selector = selector; + } + __name(MapIterator2, "MapIterator"); + MapIterator2.prototype["@@iterator"] = function() { + return this; + }; + MapIterator2.prototype[iteratorSymbol] = function() { + return this; + }; + MapIterator2.prototype.next = function() { + var index = this._index; + if (index >= 0 && index < this._keys.length) { + var result = this._selector(this._keys[index], this._values[index]); + if (index + 1 >= this._keys.length) { + this._index = -1; + this._keys = arraySentinel; + this._values = arraySentinel; + } else { + this._index++; + } + return { value: result, done: false }; + } + return { value: void 0, done: true }; + }; + MapIterator2.prototype.throw = function(error) { + if (this._index >= 0) { + this._index = -1; + this._keys = arraySentinel; + this._values = arraySentinel; + } + throw error; + }; + MapIterator2.prototype.return = function(value) { + if (this._index >= 0) { + this._index = -1; + this._keys = arraySentinel; + this._values = arraySentinel; + } + return { value, done: true }; + }; + return MapIterator2; + })() + ); + var Map2 = ( + /** @class */ + (function() { + function Map3() { + this._keys = []; + this._values = []; + this._cacheKey = cacheSentinel; + this._cacheIndex = -2; + } + __name(Map3, "Map"); + Object.defineProperty(Map3.prototype, "size", { + get: /* @__PURE__ */ __name(function() { + return this._keys.length; + }, "get"), + enumerable: true, + configurable: true + }); + Map3.prototype.has = function(key) { + return this._find( + key, + /*insert*/ + false + ) >= 0; + }; + Map3.prototype.get = function(key) { + var index = this._find( + key, + /*insert*/ + false + ); + return index >= 0 ? this._values[index] : void 0; + }; + Map3.prototype.set = function(key, value) { + var index = this._find( + key, + /*insert*/ + true + ); + this._values[index] = value; + return this; + }; + Map3.prototype.delete = function(key) { + var index = this._find( + key, + /*insert*/ + false + ); + if (index >= 0) { + var size = this._keys.length; + for (var i = index + 1; i < size; i++) { + this._keys[i - 1] = this._keys[i]; + this._values[i - 1] = this._values[i]; + } + this._keys.length--; + this._values.length--; + if (SameValueZero(key, this._cacheKey)) { + this._cacheKey = cacheSentinel; + this._cacheIndex = -2; + } + return true; + } + return false; + }; + Map3.prototype.clear = function() { + this._keys.length = 0; + this._values.length = 0; + this._cacheKey = cacheSentinel; + this._cacheIndex = -2; + }; + Map3.prototype.keys = function() { + return new MapIterator(this._keys, this._values, getKey); + }; + Map3.prototype.values = function() { + return new MapIterator(this._keys, this._values, getValue); + }; + Map3.prototype.entries = function() { + return new MapIterator(this._keys, this._values, getEntry); + }; + Map3.prototype["@@iterator"] = function() { + return this.entries(); + }; + Map3.prototype[iteratorSymbol] = function() { + return this.entries(); + }; + Map3.prototype._find = function(key, insert) { + if (!SameValueZero(this._cacheKey, key)) { + this._cacheIndex = -1; + for (var i = 0; i < this._keys.length; i++) { + if (SameValueZero(this._keys[i], key)) { + this._cacheIndex = i; + break; + } + } + } + if (this._cacheIndex < 0 && insert) { + this._cacheIndex = this._keys.length; + this._keys.push(key); + this._values.push(void 0); + } + return this._cacheIndex; + }; + return Map3; + })() + ); + return Map2; + function getKey(key, _) { + return key; + } + __name(getKey, "getKey"); + function getValue(_, value) { + return value; + } + __name(getValue, "getValue"); + function getEntry(key, value) { + return [key, value]; + } + __name(getEntry, "getEntry"); + } + __name(CreateMapPolyfill, "CreateMapPolyfill"); + function CreateSetPolyfill() { + var Set2 = ( + /** @class */ + (function() { + function Set3() { + this._map = new _Map(); + } + __name(Set3, "Set"); + Object.defineProperty(Set3.prototype, "size", { + get: /* @__PURE__ */ __name(function() { + return this._map.size; + }, "get"), + enumerable: true, + configurable: true + }); + Set3.prototype.has = function(value) { + return this._map.has(value); + }; + Set3.prototype.add = function(value) { + return this._map.set(value, value), this; + }; + Set3.prototype.delete = function(value) { + return this._map.delete(value); + }; + Set3.prototype.clear = function() { + this._map.clear(); + }; + Set3.prototype.keys = function() { + return this._map.keys(); + }; + Set3.prototype.values = function() { + return this._map.keys(); + }; + Set3.prototype.entries = function() { + return this._map.entries(); + }; + Set3.prototype["@@iterator"] = function() { + return this.keys(); + }; + Set3.prototype[iteratorSymbol] = function() { + return this.keys(); + }; + return Set3; + })() + ); + return Set2; + } + __name(CreateSetPolyfill, "CreateSetPolyfill"); + function CreateWeakMapPolyfill() { + var UUID_SIZE = 16; + var keys = HashMap.create(); + var rootKey = CreateUniqueKey(); + return ( + /** @class */ + (function() { + function WeakMap2() { + this._key = CreateUniqueKey(); + } + __name(WeakMap2, "WeakMap"); + WeakMap2.prototype.has = function(target) { + var table = GetOrCreateWeakMapTable( + target, + /*create*/ + false + ); + return table !== void 0 ? HashMap.has(table, this._key) : false; + }; + WeakMap2.prototype.get = function(target) { + var table = GetOrCreateWeakMapTable( + target, + /*create*/ + false + ); + return table !== void 0 ? HashMap.get(table, this._key) : void 0; + }; + WeakMap2.prototype.set = function(target, value) { + var table = GetOrCreateWeakMapTable( + target, + /*create*/ + true + ); + table[this._key] = value; + return this; + }; + WeakMap2.prototype.delete = function(target) { + var table = GetOrCreateWeakMapTable( + target, + /*create*/ + false + ); + return table !== void 0 ? delete table[this._key] : false; + }; + WeakMap2.prototype.clear = function() { + this._key = CreateUniqueKey(); + }; + return WeakMap2; + })() + ); + function CreateUniqueKey() { + var key; + do + key = "@@WeakMap@@" + CreateUUID(); + while (HashMap.has(keys, key)); + keys[key] = true; + return key; + } + __name(CreateUniqueKey, "CreateUniqueKey"); + function GetOrCreateWeakMapTable(target, create) { + if (!hasOwn.call(target, rootKey)) { + if (!create) + return void 0; + Object.defineProperty(target, rootKey, { value: HashMap.create() }); + } + return target[rootKey]; + } + __name(GetOrCreateWeakMapTable, "GetOrCreateWeakMapTable"); + function FillRandomBytes(buffer, size) { + for (var i = 0; i < size; ++i) + buffer[i] = Math.random() * 255 | 0; + return buffer; + } + __name(FillRandomBytes, "FillRandomBytes"); + function GenRandomBytes(size) { + if (typeof Uint8Array === "function") { + var array = new Uint8Array(size); + if (typeof crypto !== "undefined") { + crypto.getRandomValues(array); + } else if (typeof msCrypto !== "undefined") { + msCrypto.getRandomValues(array); + } else { + FillRandomBytes(array, size); + } + return array; + } + return FillRandomBytes(new Array(size), size); + } + __name(GenRandomBytes, "GenRandomBytes"); + function CreateUUID() { + var data = GenRandomBytes(UUID_SIZE); + data[6] = data[6] & 79 | 64; + data[8] = data[8] & 191 | 128; + var result = ""; + for (var offset = 0; offset < UUID_SIZE; ++offset) { + var byte = data[offset]; + if (offset === 4 || offset === 6 || offset === 8) + result += "-"; + if (byte < 16) + result += "0"; + result += byte.toString(16).toLowerCase(); + } + return result; + } + __name(CreateUUID, "CreateUUID"); + } + __name(CreateWeakMapPolyfill, "CreateWeakMapPolyfill"); + function MakeDictionary(obj) { + obj.__ = void 0; + delete obj.__; + return obj; + } + __name(MakeDictionary, "MakeDictionary"); + }); + })(Reflect2 || (Reflect2 = {})); + } +}); + +// node_modules/@nestjs/core/adapters/http-adapter.js +var require_http_adapter = __commonJS({ + "node_modules/@nestjs/core/adapters/http-adapter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AbstractHttpAdapter = void 0; + var AbstractHttpAdapter = class { + static { + __name(this, "AbstractHttpAdapter"); + } + constructor(instance) { + this.instance = instance; + } + async init() { + } + use(...args) { + return this.instance.use(...args); + } + get(...args) { + return this.instance.get(...args); + } + post(...args) { + return this.instance.post(...args); + } + head(...args) { + return this.instance.head(...args); + } + delete(...args) { + return this.instance.delete(...args); + } + put(...args) { + return this.instance.put(...args); + } + patch(...args) { + return this.instance.patch(...args); + } + propfind(...args) { + return this.instance.propfind(...args); + } + proppatch(...args) { + return this.instance.proppatch(...args); + } + mkcol(...args) { + return this.instance.mkcol(...args); + } + copy(...args) { + return this.instance.copy(...args); + } + move(...args) { + return this.instance.move(...args); + } + lock(...args) { + return this.instance.lock(...args); + } + unlock(...args) { + return this.instance.unlock(...args); + } + all(...args) { + return this.instance.all(...args); + } + search(...args) { + return this.instance.search(...args); + } + options(...args) { + return this.instance.options(...args); + } + listen(port, hostname, callback) { + return this.instance.listen(port, hostname, callback); + } + getHttpServer() { + return this.httpServer; + } + setHttpServer(httpServer) { + this.httpServer = httpServer; + } + setInstance(instance) { + this.instance = instance; + } + getInstance() { + return this.instance; + } + normalizePath(path) { + return path; + } + setOnRouteTriggered(onRouteTriggered) { + this.onRouteTriggered = onRouteTriggered; + } + getOnRouteTriggered() { + return this.onRouteTriggered; + } + setOnRequestHook(onRequestHook) { + } + setOnResponseHook(onResponseHook) { + } + }; + exports2.AbstractHttpAdapter = AbstractHttpAdapter; + } +}); + +// node_modules/@nestjs/core/adapters/index.js +var require_adapters = __commonJS({ + "node_modules/@nestjs/core/adapters/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_http_adapter(), exports2); + } +}); + +// node_modules/@nestjs/core/application-config.js +var require_application_config = __commonJS({ + "node_modules/@nestjs/core/application-config.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApplicationConfig = void 0; + var ApplicationConfig = class { + static { + __name(this, "ApplicationConfig"); + } + constructor(ioAdapter = null) { + this.ioAdapter = ioAdapter; + this.globalPrefix = ""; + this.globalPrefixOptions = {}; + this.globalPipes = []; + this.globalFilters = []; + this.globalInterceptors = []; + this.globalGuards = []; + this.globalRequestPipes = []; + this.globalRequestFilters = []; + this.globalRequestInterceptors = []; + this.globalRequestGuards = []; + } + setGlobalPrefix(prefix) { + this.globalPrefix = prefix; + } + getGlobalPrefix() { + return this.globalPrefix; + } + setGlobalPrefixOptions(options) { + this.globalPrefixOptions = options; + } + getGlobalPrefixOptions() { + return this.globalPrefixOptions; + } + setIoAdapter(ioAdapter) { + this.ioAdapter = ioAdapter; + } + getIoAdapter() { + return this.ioAdapter; + } + addGlobalPipe(pipe) { + this.globalPipes.push(pipe); + } + useGlobalPipes(...pipes) { + this.globalPipes = this.globalPipes.concat(pipes); + } + getGlobalFilters() { + return this.globalFilters; + } + addGlobalFilter(filter) { + this.globalFilters.push(filter); + } + useGlobalFilters(...filters) { + this.globalFilters = this.globalFilters.concat(filters); + } + getGlobalPipes() { + return this.globalPipes; + } + getGlobalInterceptors() { + return this.globalInterceptors; + } + addGlobalInterceptor(interceptor) { + this.globalInterceptors.push(interceptor); + } + useGlobalInterceptors(...interceptors) { + this.globalInterceptors = this.globalInterceptors.concat(interceptors); + } + getGlobalGuards() { + return this.globalGuards; + } + addGlobalGuard(guard) { + this.globalGuards.push(guard); + } + useGlobalGuards(...guards) { + this.globalGuards = this.globalGuards.concat(guards); + } + addGlobalRequestInterceptor(wrapper) { + this.globalRequestInterceptors.push(wrapper); + } + getGlobalRequestInterceptors() { + return this.globalRequestInterceptors; + } + addGlobalRequestPipe(wrapper) { + this.globalRequestPipes.push(wrapper); + } + getGlobalRequestPipes() { + return this.globalRequestPipes; + } + addGlobalRequestFilter(wrapper) { + this.globalRequestFilters.push(wrapper); + } + getGlobalRequestFilters() { + return this.globalRequestFilters; + } + addGlobalRequestGuard(wrapper) { + this.globalRequestGuards.push(wrapper); + } + getGlobalRequestGuards() { + return this.globalRequestGuards; + } + enableVersioning(options) { + if (Array.isArray(options.defaultVersion)) { + options.defaultVersion = Array.from(new Set(options.defaultVersion)); + } + this.versioningOptions = options; + } + getVersioning() { + return this.versioningOptions; + } + }; + exports2.ApplicationConfig = ApplicationConfig; + } +}); + +// node_modules/@nestjs/core/constants.js +var require_constants = __commonJS({ + "node_modules/@nestjs/core/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ENHANCER_TOKEN_TO_SUBTYPE_MAP = exports2.APP_FILTER = exports2.APP_GUARD = exports2.APP_PIPE = exports2.APP_INTERCEPTOR = exports2.MESSAGES = void 0; + exports2.MESSAGES = { + APPLICATION_START: `Starting Nest application...`, + APPLICATION_READY: `Nest application successfully started`, + MICROSERVICE_READY: `Nest microservice successfully started`, + UNKNOWN_EXCEPTION_MESSAGE: "Internal server error", + ERROR_DURING_SHUTDOWN: "Error happened during shutdown", + CALL_LISTEN_FIRST: "app.listen() needs to be called before calling app.getUrl()" + }; + exports2.APP_INTERCEPTOR = "APP_INTERCEPTOR"; + exports2.APP_PIPE = "APP_PIPE"; + exports2.APP_GUARD = "APP_GUARD"; + exports2.APP_FILTER = "APP_FILTER"; + exports2.ENHANCER_TOKEN_TO_SUBTYPE_MAP = { + [exports2.APP_GUARD]: "guard", + [exports2.APP_INTERCEPTOR]: "interceptor", + [exports2.APP_PIPE]: "pipe", + [exports2.APP_FILTER]: "filter" + }; + } +}); + +// node_modules/@nestjs/common/decorators/core/bind.decorator.js +var require_bind_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/bind.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Bind = Bind; + function Bind(...decorators) { + return (target, key, descriptor) => { + decorators.forEach((fn, index) => fn(target, key, index)); + return descriptor; + }; + } + __name(Bind, "Bind"); + } +}); + +// node_modules/@nestjs/common/constants.js +var require_constants2 = __commonJS({ + "node_modules/@nestjs/common/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ENTRY_PROVIDER_WATERMARK = exports2.CATCH_WATERMARK = exports2.CONTROLLER_WATERMARK = exports2.INJECTABLE_WATERMARK = exports2.VERSION_METADATA = exports2.SSE_METADATA = exports2.RESPONSE_PASSTHROUGH_METADATA = exports2.REDIRECT_METADATA = exports2.HEADERS_METADATA = exports2.MODULE_PATH = exports2.HTTP_CODE_METADATA = exports2.RENDER_METADATA = exports2.ENHANCER_KEY_TO_SUBTYPE_MAP = exports2.EXCEPTION_FILTERS_METADATA = exports2.INTERCEPTORS_METADATA = exports2.GUARDS_METADATA = exports2.PIPES_METADATA = exports2.FILTER_CATCH_EXCEPTIONS = exports2.CUSTOM_ROUTE_ARGS_METADATA = exports2.ROUTE_ARGS_METADATA = exports2.METHOD_METADATA = exports2.SCOPE_OPTIONS_METADATA = exports2.OPTIONAL_PROPERTY_DEPS_METADATA = exports2.PROPERTY_DEPS_METADATA = exports2.OPTIONAL_DEPS_METADATA = exports2.SELF_DECLARED_DEPS_METADATA = exports2.PARAMTYPES_METADATA = exports2.PATH_METADATA = exports2.HOST_METADATA = exports2.GLOBAL_MODULE_METADATA = exports2.MODULE_METADATA = void 0; + exports2.MODULE_METADATA = { + IMPORTS: "imports", + PROVIDERS: "providers", + CONTROLLERS: "controllers", + EXPORTS: "exports" + }; + exports2.GLOBAL_MODULE_METADATA = "__module:global__"; + exports2.HOST_METADATA = "host"; + exports2.PATH_METADATA = "path"; + exports2.PARAMTYPES_METADATA = "design:paramtypes"; + exports2.SELF_DECLARED_DEPS_METADATA = "self:paramtypes"; + exports2.OPTIONAL_DEPS_METADATA = "optional:paramtypes"; + exports2.PROPERTY_DEPS_METADATA = "self:properties_metadata"; + exports2.OPTIONAL_PROPERTY_DEPS_METADATA = "optional:properties_metadata"; + exports2.SCOPE_OPTIONS_METADATA = "scope:options"; + exports2.METHOD_METADATA = "method"; + exports2.ROUTE_ARGS_METADATA = "__routeArguments__"; + exports2.CUSTOM_ROUTE_ARGS_METADATA = "__customRouteArgs__"; + exports2.FILTER_CATCH_EXCEPTIONS = "__filterCatchExceptions__"; + exports2.PIPES_METADATA = "__pipes__"; + exports2.GUARDS_METADATA = "__guards__"; + exports2.INTERCEPTORS_METADATA = "__interceptors__"; + exports2.EXCEPTION_FILTERS_METADATA = "__exceptionFilters__"; + exports2.ENHANCER_KEY_TO_SUBTYPE_MAP = { + [exports2.GUARDS_METADATA]: "guard", + [exports2.INTERCEPTORS_METADATA]: "interceptor", + [exports2.PIPES_METADATA]: "pipe", + [exports2.EXCEPTION_FILTERS_METADATA]: "filter" + }; + exports2.RENDER_METADATA = "__renderTemplate__"; + exports2.HTTP_CODE_METADATA = "__httpCode__"; + exports2.MODULE_PATH = "__module_path__"; + exports2.HEADERS_METADATA = "__headers__"; + exports2.REDIRECT_METADATA = "__redirect__"; + exports2.RESPONSE_PASSTHROUGH_METADATA = "__responsePassthrough__"; + exports2.SSE_METADATA = "__sse__"; + exports2.VERSION_METADATA = "__version__"; + exports2.INJECTABLE_WATERMARK = "__injectable__"; + exports2.CONTROLLER_WATERMARK = "__controller__"; + exports2.CATCH_WATERMARK = "__catch__"; + exports2.ENTRY_PROVIDER_WATERMARK = "__entryProvider__"; + } +}); + +// node_modules/@nestjs/common/decorators/core/catch.decorator.js +var require_catch_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/catch.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Catch = Catch; + var constants_1 = require_constants2(); + function Catch(...exceptions) { + return (target) => { + Reflect.defineMetadata(constants_1.CATCH_WATERMARK, true, target); + Reflect.defineMetadata(constants_1.FILTER_CATCH_EXCEPTIONS, exceptions, target); + }; + } + __name(Catch, "Catch"); + } +}); + +// node_modules/@nestjs/common/utils/shared.utils.js +var require_shared_utils = __commonJS({ + "node_modules/@nestjs/common/utils/shared.utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isSymbol = exports2.isEmpty = exports2.isNil = exports2.isConstructor = exports2.isNumber = exports2.isString = exports2.isFunction = exports2.stripEndSlash = exports2.normalizePath = exports2.addLeadingSlash = exports2.isPlainObject = exports2.isObject = exports2.isUndefined = void 0; + var isUndefined = /* @__PURE__ */ __name((obj) => typeof obj === "undefined", "isUndefined"); + exports2.isUndefined = isUndefined; + var isObject = /* @__PURE__ */ __name((fn) => !(0, exports2.isNil)(fn) && typeof fn === "object", "isObject"); + exports2.isObject = isObject; + var isPlainObject = /* @__PURE__ */ __name((fn) => { + if (!(0, exports2.isObject)(fn)) { + return false; + } + const proto = Object.getPrototypeOf(fn); + if (proto === null) { + return true; + } + const ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof ctor === "function" && ctor instanceof ctor && Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object); + }, "isPlainObject"); + exports2.isPlainObject = isPlainObject; + var addLeadingSlash = /* @__PURE__ */ __name((path) => path && typeof path === "string" ? path.charAt(0) !== "/" && path.substring(0, 2) !== "{/" ? "/" + path : path : "", "addLeadingSlash"); + exports2.addLeadingSlash = addLeadingSlash; + var normalizePath = /* @__PURE__ */ __name((path) => path ? path.startsWith("/") ? ("/" + path.replace(/\/+$/, "")).replace(/\/+/g, "/") : "/" + path.replace(/\/+$/, "") : "/", "normalizePath"); + exports2.normalizePath = normalizePath; + var stripEndSlash = /* @__PURE__ */ __name((path) => path[path.length - 1] === "/" ? path.slice(0, path.length - 1) : path, "stripEndSlash"); + exports2.stripEndSlash = stripEndSlash; + var isFunction = /* @__PURE__ */ __name((val) => typeof val === "function", "isFunction"); + exports2.isFunction = isFunction; + var isString = /* @__PURE__ */ __name((val) => typeof val === "string", "isString"); + exports2.isString = isString; + var isNumber = /* @__PURE__ */ __name((val) => typeof val === "number", "isNumber"); + exports2.isNumber = isNumber; + var isConstructor = /* @__PURE__ */ __name((val) => val === "constructor", "isConstructor"); + exports2.isConstructor = isConstructor; + var isNil = /* @__PURE__ */ __name((val) => (0, exports2.isUndefined)(val) || val === null, "isNil"); + exports2.isNil = isNil; + var isEmpty = /* @__PURE__ */ __name((array) => !(array && array.length > 0), "isEmpty"); + exports2.isEmpty = isEmpty; + var isSymbol = /* @__PURE__ */ __name((val) => typeof val === "symbol", "isSymbol"); + exports2.isSymbol = isSymbol; + } +}); + +// node_modules/@nestjs/common/decorators/core/controller.decorator.js +var require_controller_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/controller.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Controller = Controller; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + function Controller(prefixOrOptions) { + const defaultPath = "/"; + const [path, host, scopeOptions, versionOptions] = (0, shared_utils_1.isUndefined)(prefixOrOptions) ? [defaultPath, void 0, void 0, void 0] : (0, shared_utils_1.isString)(prefixOrOptions) || Array.isArray(prefixOrOptions) ? [prefixOrOptions, void 0, void 0, void 0] : [ + prefixOrOptions.path || defaultPath, + prefixOrOptions.host, + { scope: prefixOrOptions.scope, durable: prefixOrOptions.durable }, + Array.isArray(prefixOrOptions.version) ? Array.from(new Set(prefixOrOptions.version)) : prefixOrOptions.version + ]; + return (target) => { + Reflect.defineMetadata(constants_1.CONTROLLER_WATERMARK, true, target); + Reflect.defineMetadata(constants_1.PATH_METADATA, path, target); + Reflect.defineMetadata(constants_1.HOST_METADATA, host, target); + Reflect.defineMetadata(constants_1.SCOPE_OPTIONS_METADATA, scopeOptions, target); + Reflect.defineMetadata(constants_1.VERSION_METADATA, versionOptions, target); + }; + } + __name(Controller, "Controller"); + } +}); + +// node_modules/@nestjs/common/decorators/core/dependencies.decorator.js +var require_dependencies_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/dependencies.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Dependencies = void 0; + exports2.flatten = flatten; + var constants_1 = require_constants2(); + function flatten(arr) { + const flat = [].concat(...arr); + return flat.some(Array.isArray) ? flatten(flat) : flat; + } + __name(flatten, "flatten"); + var Dependencies = /* @__PURE__ */ __name((...dependencies) => { + const flattenDeps = flatten(dependencies); + return (target) => { + Reflect.defineMetadata(constants_1.PARAMTYPES_METADATA, flattenDeps, target); + }; + }, "Dependencies"); + exports2.Dependencies = Dependencies; + } +}); + +// node_modules/@nestjs/common/utils/extend-metadata.util.js +var require_extend_metadata_util = __commonJS({ + "node_modules/@nestjs/common/utils/extend-metadata.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.extendArrayMetadata = extendArrayMetadata; + function extendArrayMetadata(key, metadata, target) { + const previousValue = Reflect.getMetadata(key, target) || []; + const value = [...previousValue, ...metadata]; + Reflect.defineMetadata(key, value, target); + } + __name(extendArrayMetadata, "extendArrayMetadata"); + } +}); + +// node_modules/@nestjs/common/utils/validate-each.util.js +var require_validate_each_util = __commonJS({ + "node_modules/@nestjs/common/utils/validate-each.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InvalidDecoratorItemException = void 0; + exports2.validateEach = validateEach; + var InvalidDecoratorItemException = class extends Error { + static { + __name(this, "InvalidDecoratorItemException"); + } + constructor(decorator, item, context) { + const message = `Invalid ${item} passed to ${decorator}() decorator (${context}).`; + super(message); + this.msg = message; + } + what() { + return this.msg; + } + }; + exports2.InvalidDecoratorItemException = InvalidDecoratorItemException; + function validateEach(context, arr, predicate, decorator, item) { + if (!context || !context.name) { + return true; + } + const errors = arr.some((str) => !predicate(str)); + if (errors) { + throw new InvalidDecoratorItemException(decorator, item, context.name); + } + return true; + } + __name(validateEach, "validateEach"); + } +}); + +// node_modules/@nestjs/common/decorators/core/exception-filters.decorator.js +var require_exception_filters_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/exception-filters.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UseFilters = void 0; + var constants_1 = require_constants2(); + var extend_metadata_util_1 = require_extend_metadata_util(); + var shared_utils_1 = require_shared_utils(); + var validate_each_util_1 = require_validate_each_util(); + var UseFilters = /* @__PURE__ */ __name((...filters) => addExceptionFiltersMetadata(...filters), "UseFilters"); + exports2.UseFilters = UseFilters; + function addExceptionFiltersMetadata(...filters) { + return (target, key, descriptor) => { + const isFilterValid = /* @__PURE__ */ __name((filter) => filter && ((0, shared_utils_1.isFunction)(filter) || (0, shared_utils_1.isFunction)(filter.catch)), "isFilterValid"); + if (descriptor) { + (0, validate_each_util_1.validateEach)(target.constructor, filters, isFilterValid, "@UseFilters", "filter"); + (0, extend_metadata_util_1.extendArrayMetadata)(constants_1.EXCEPTION_FILTERS_METADATA, filters, descriptor.value); + return descriptor; + } + (0, validate_each_util_1.validateEach)(target, filters, isFilterValid, "@UseFilters", "filter"); + (0, extend_metadata_util_1.extendArrayMetadata)(constants_1.EXCEPTION_FILTERS_METADATA, filters, target); + return target; + }; + } + __name(addExceptionFiltersMetadata, "addExceptionFiltersMetadata"); + } +}); + +// node_modules/@nestjs/common/decorators/core/inject.decorator.js +var require_inject_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/inject.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Inject = Inject; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + function Inject(token) { + const injectCallHasArguments = arguments.length > 0; + return (target, key, index) => { + let type = token || Reflect.getMetadata("design:type", target, key); + if (!type && !injectCallHasArguments) { + type = Reflect.getMetadata(constants_1.PARAMTYPES_METADATA, target, key)?.[index]; + } + if (!(0, shared_utils_1.isUndefined)(index)) { + let dependencies = Reflect.getMetadata(constants_1.SELF_DECLARED_DEPS_METADATA, target) || []; + dependencies = [...dependencies, { index, param: type }]; + Reflect.defineMetadata(constants_1.SELF_DECLARED_DEPS_METADATA, dependencies, target); + return; + } + let properties = Reflect.getMetadata(constants_1.PROPERTY_DEPS_METADATA, target.constructor) || []; + properties = [...properties, { key, type }]; + Reflect.defineMetadata(constants_1.PROPERTY_DEPS_METADATA, properties, target.constructor); + }; + } + __name(Inject, "Inject"); + } +}); + +// node_modules/uid/dist/index.js +var require_dist = __commonJS({ + "node_modules/uid/dist/index.js"(exports2) { + var IDX = 256; + var HEX = []; + var SIZE = 256; + var BUFFER; + while (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1); + function uid(len) { + var i = 0, tmp = len || 11; + if (!BUFFER || IDX + tmp > SIZE * 2) { + for (BUFFER = "", IDX = 0; i < SIZE; i++) { + BUFFER += HEX[Math.random() * 256 | 0]; + } + } + return BUFFER.substring(IDX, IDX++ + tmp); + } + __name(uid, "uid"); + exports2.uid = uid; + } +}); + +// node_modules/@nestjs/common/decorators/core/injectable.decorator.js +var require_injectable_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/injectable.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Injectable = Injectable; + exports2.mixin = mixin; + var uid_1 = require_dist(); + var constants_1 = require_constants2(); + function Injectable(options) { + return (target) => { + Reflect.defineMetadata(constants_1.INJECTABLE_WATERMARK, true, target); + Reflect.defineMetadata(constants_1.SCOPE_OPTIONS_METADATA, options, target); + }; + } + __name(Injectable, "Injectable"); + function mixin(mixinClass) { + Object.defineProperty(mixinClass, "name", { + value: (0, uid_1.uid)(21) + }); + Injectable()(mixinClass); + return mixinClass; + } + __name(mixin, "mixin"); + } +}); + +// node_modules/@nestjs/common/decorators/core/optional.decorator.js +var require_optional_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/optional.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Optional = Optional; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + function Optional() { + return (target, key, index) => { + if (!(0, shared_utils_1.isUndefined)(index)) { + const args = Reflect.getMetadata(constants_1.OPTIONAL_DEPS_METADATA, target) || []; + Reflect.defineMetadata(constants_1.OPTIONAL_DEPS_METADATA, [...args, index], target); + return; + } + const properties = Reflect.getMetadata(constants_1.OPTIONAL_PROPERTY_DEPS_METADATA, target.constructor) || []; + Reflect.defineMetadata(constants_1.OPTIONAL_PROPERTY_DEPS_METADATA, [...properties, key], target.constructor); + }; + } + __name(Optional, "Optional"); + } +}); + +// node_modules/@nestjs/common/decorators/core/set-metadata.decorator.js +var require_set_metadata_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/set-metadata.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SetMetadata = void 0; + var SetMetadata = /* @__PURE__ */ __name((metadataKey, metadataValue) => { + const decoratorFactory = /* @__PURE__ */ __name((target, key, descriptor) => { + if (descriptor) { + Reflect.defineMetadata(metadataKey, metadataValue, descriptor.value); + return descriptor; + } + Reflect.defineMetadata(metadataKey, metadataValue, target); + return target; + }, "decoratorFactory"); + decoratorFactory.KEY = metadataKey; + return decoratorFactory; + }, "SetMetadata"); + exports2.SetMetadata = SetMetadata; + } +}); + +// node_modules/@nestjs/common/decorators/core/use-guards.decorator.js +var require_use_guards_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/use-guards.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UseGuards = UseGuards; + var constants_1 = require_constants2(); + var extend_metadata_util_1 = require_extend_metadata_util(); + var shared_utils_1 = require_shared_utils(); + var validate_each_util_1 = require_validate_each_util(); + function UseGuards(...guards) { + return (target, key, descriptor) => { + const isGuardValid = /* @__PURE__ */ __name((guard) => guard && ((0, shared_utils_1.isFunction)(guard) || (0, shared_utils_1.isFunction)(guard.canActivate)), "isGuardValid"); + if (descriptor) { + (0, validate_each_util_1.validateEach)(target.constructor, guards, isGuardValid, "@UseGuards", "guard"); + (0, extend_metadata_util_1.extendArrayMetadata)(constants_1.GUARDS_METADATA, guards, descriptor.value); + return descriptor; + } + (0, validate_each_util_1.validateEach)(target, guards, isGuardValid, "@UseGuards", "guard"); + (0, extend_metadata_util_1.extendArrayMetadata)(constants_1.GUARDS_METADATA, guards, target); + return target; + }; + } + __name(UseGuards, "UseGuards"); + } +}); + +// node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.js +var require_use_interceptors_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UseInterceptors = UseInterceptors; + var constants_1 = require_constants2(); + var extend_metadata_util_1 = require_extend_metadata_util(); + var shared_utils_1 = require_shared_utils(); + var validate_each_util_1 = require_validate_each_util(); + function UseInterceptors(...interceptors) { + return (target, key, descriptor) => { + const isInterceptorValid = /* @__PURE__ */ __name((interceptor) => interceptor && ((0, shared_utils_1.isFunction)(interceptor) || (0, shared_utils_1.isFunction)(interceptor.intercept)), "isInterceptorValid"); + if (descriptor) { + (0, validate_each_util_1.validateEach)(target.constructor, interceptors, isInterceptorValid, "@UseInterceptors", "interceptor"); + (0, extend_metadata_util_1.extendArrayMetadata)(constants_1.INTERCEPTORS_METADATA, interceptors, descriptor.value); + return descriptor; + } + (0, validate_each_util_1.validateEach)(target, interceptors, isInterceptorValid, "@UseInterceptors", "interceptor"); + (0, extend_metadata_util_1.extendArrayMetadata)(constants_1.INTERCEPTORS_METADATA, interceptors, target); + return target; + }; + } + __name(UseInterceptors, "UseInterceptors"); + } +}); + +// node_modules/@nestjs/common/decorators/core/use-pipes.decorator.js +var require_use_pipes_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/use-pipes.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UsePipes = UsePipes; + var constants_1 = require_constants2(); + var extend_metadata_util_1 = require_extend_metadata_util(); + var shared_utils_1 = require_shared_utils(); + var validate_each_util_1 = require_validate_each_util(); + function UsePipes(...pipes) { + return (target, key, descriptor) => { + const isPipeValid = /* @__PURE__ */ __name((pipe) => pipe && ((0, shared_utils_1.isFunction)(pipe) || (0, shared_utils_1.isFunction)(pipe.transform)), "isPipeValid"); + if (descriptor) { + (0, validate_each_util_1.validateEach)(target.constructor, pipes, isPipeValid, "@UsePipes", "pipe"); + (0, extend_metadata_util_1.extendArrayMetadata)(constants_1.PIPES_METADATA, pipes, descriptor.value); + return descriptor; + } + (0, validate_each_util_1.validateEach)(target, pipes, isPipeValid, "@UsePipes", "pipe"); + (0, extend_metadata_util_1.extendArrayMetadata)(constants_1.PIPES_METADATA, pipes, target); + return target; + }; + } + __name(UsePipes, "UsePipes"); + } +}); + +// node_modules/@nestjs/common/decorators/core/apply-decorators.js +var require_apply_decorators = __commonJS({ + "node_modules/@nestjs/common/decorators/core/apply-decorators.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.applyDecorators = applyDecorators; + function applyDecorators(...decorators) { + return (target, propertyKey, descriptor) => { + for (const decorator of decorators) { + if (target instanceof Function && !descriptor) { + decorator(target); + continue; + } + decorator(target, propertyKey, descriptor); + } + }; + } + __name(applyDecorators, "applyDecorators"); + } +}); + +// node_modules/@nestjs/common/decorators/core/version.decorator.js +var require_version_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/core/version.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Version = Version; + var constants_1 = require_constants2(); + function Version(version) { + if (Array.isArray(version)) { + version = Array.from(new Set(version)); + } + return (target, key, descriptor) => { + Reflect.defineMetadata(constants_1.VERSION_METADATA, version, descriptor.value); + return descriptor; + }; + } + __name(Version, "Version"); + } +}); + +// node_modules/@nestjs/common/decorators/core/index.js +var require_core = __commonJS({ + "node_modules/@nestjs/common/decorators/core/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_bind_decorator(), exports2); + tslib_1.__exportStar(require_catch_decorator(), exports2); + tslib_1.__exportStar(require_controller_decorator(), exports2); + tslib_1.__exportStar(require_dependencies_decorator(), exports2); + tslib_1.__exportStar(require_exception_filters_decorator(), exports2); + tslib_1.__exportStar(require_inject_decorator(), exports2); + tslib_1.__exportStar(require_injectable_decorator(), exports2); + tslib_1.__exportStar(require_optional_decorator(), exports2); + tslib_1.__exportStar(require_set_metadata_decorator(), exports2); + tslib_1.__exportStar(require_use_guards_decorator(), exports2); + tslib_1.__exportStar(require_use_interceptors_decorator(), exports2); + tslib_1.__exportStar(require_use_pipes_decorator(), exports2); + tslib_1.__exportStar(require_apply_decorators(), exports2); + tslib_1.__exportStar(require_version_decorator(), exports2); + } +}); + +// node_modules/@nestjs/common/decorators/modules/global.decorator.js +var require_global_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/modules/global.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Global = Global; + var constants_1 = require_constants2(); + function Global() { + return (target) => { + Reflect.defineMetadata(constants_1.GLOBAL_MODULE_METADATA, true, target); + }; + } + __name(Global, "Global"); + } +}); + +// node_modules/@nestjs/common/utils/validate-module-keys.util.js +var require_validate_module_keys_util = __commonJS({ + "node_modules/@nestjs/common/utils/validate-module-keys.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.INVALID_MODULE_CONFIG_MESSAGE = void 0; + exports2.validateModuleKeys = validateModuleKeys; + var constants_1 = require_constants2(); + var INVALID_MODULE_CONFIG_MESSAGE = /* @__PURE__ */ __name((text, property) => `Invalid property '${property}' passed into the @Module() decorator.`, "INVALID_MODULE_CONFIG_MESSAGE"); + exports2.INVALID_MODULE_CONFIG_MESSAGE = INVALID_MODULE_CONFIG_MESSAGE; + var metadataKeys = [ + constants_1.MODULE_METADATA.IMPORTS, + constants_1.MODULE_METADATA.EXPORTS, + constants_1.MODULE_METADATA.CONTROLLERS, + constants_1.MODULE_METADATA.PROVIDERS + ]; + function validateModuleKeys(keys) { + const validateKey = /* @__PURE__ */ __name((key) => { + if (metadataKeys.includes(key)) { + return; + } + throw new Error((0, exports2.INVALID_MODULE_CONFIG_MESSAGE)`${key}`); + }, "validateKey"); + keys.forEach(validateKey); + } + __name(validateModuleKeys, "validateModuleKeys"); + } +}); + +// node_modules/@nestjs/common/decorators/modules/module.decorator.js +var require_module_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/modules/module.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Module = Module; + var validate_module_keys_util_1 = require_validate_module_keys_util(); + function Module(metadata) { + const propsKeys = Object.keys(metadata); + (0, validate_module_keys_util_1.validateModuleKeys)(propsKeys); + return (target) => { + for (const property in metadata) { + if (Object.hasOwnProperty.call(metadata, property)) { + Reflect.defineMetadata(property, metadata[property], target); + } + } + }; + } + __name(Module, "Module"); + } +}); + +// node_modules/@nestjs/common/decorators/modules/index.js +var require_modules = __commonJS({ + "node_modules/@nestjs/common/decorators/modules/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_global_decorator(), exports2); + tslib_1.__exportStar(require_module_decorator(), exports2); + } +}); + +// node_modules/@nestjs/common/enums/request-method.enum.js +var require_request_method_enum = __commonJS({ + "node_modules/@nestjs/common/enums/request-method.enum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RequestMethod = void 0; + var RequestMethod; + (function(RequestMethod2) { + RequestMethod2[RequestMethod2["GET"] = 0] = "GET"; + RequestMethod2[RequestMethod2["POST"] = 1] = "POST"; + RequestMethod2[RequestMethod2["PUT"] = 2] = "PUT"; + RequestMethod2[RequestMethod2["DELETE"] = 3] = "DELETE"; + RequestMethod2[RequestMethod2["PATCH"] = 4] = "PATCH"; + RequestMethod2[RequestMethod2["ALL"] = 5] = "ALL"; + RequestMethod2[RequestMethod2["OPTIONS"] = 6] = "OPTIONS"; + RequestMethod2[RequestMethod2["HEAD"] = 7] = "HEAD"; + RequestMethod2[RequestMethod2["SEARCH"] = 8] = "SEARCH"; + RequestMethod2[RequestMethod2["PROPFIND"] = 9] = "PROPFIND"; + RequestMethod2[RequestMethod2["PROPPATCH"] = 10] = "PROPPATCH"; + RequestMethod2[RequestMethod2["MKCOL"] = 11] = "MKCOL"; + RequestMethod2[RequestMethod2["COPY"] = 12] = "COPY"; + RequestMethod2[RequestMethod2["MOVE"] = 13] = "MOVE"; + RequestMethod2[RequestMethod2["LOCK"] = 14] = "LOCK"; + RequestMethod2[RequestMethod2["UNLOCK"] = 15] = "UNLOCK"; + })(RequestMethod || (exports2.RequestMethod = RequestMethod = {})); + } +}); + +// node_modules/@nestjs/common/decorators/http/request-mapping.decorator.js +var require_request_mapping_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/http/request-mapping.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Unlock = exports2.Lock = exports2.Move = exports2.Copy = exports2.Mkcol = exports2.Proppatch = exports2.Propfind = exports2.Search = exports2.All = exports2.Head = exports2.Options = exports2.Patch = exports2.Put = exports2.Delete = exports2.Get = exports2.Post = exports2.RequestMapping = void 0; + var constants_1 = require_constants2(); + var request_method_enum_1 = require_request_method_enum(); + var defaultMetadata = { + [constants_1.PATH_METADATA]: "/", + [constants_1.METHOD_METADATA]: request_method_enum_1.RequestMethod.GET + }; + var RequestMapping = /* @__PURE__ */ __name((metadata = defaultMetadata) => { + const pathMetadata = metadata[constants_1.PATH_METADATA]; + const path = pathMetadata && pathMetadata.length ? pathMetadata : "/"; + const requestMethod = metadata[constants_1.METHOD_METADATA] || request_method_enum_1.RequestMethod.GET; + return (target, key, descriptor) => { + Reflect.defineMetadata(constants_1.PATH_METADATA, path, descriptor.value); + Reflect.defineMetadata(constants_1.METHOD_METADATA, requestMethod, descriptor.value); + return descriptor; + }; + }, "RequestMapping"); + exports2.RequestMapping = RequestMapping; + var createMappingDecorator = /* @__PURE__ */ __name((method) => (path) => { + return (0, exports2.RequestMapping)({ + [constants_1.PATH_METADATA]: path, + [constants_1.METHOD_METADATA]: method + }); + }, "createMappingDecorator"); + exports2.Post = createMappingDecorator(request_method_enum_1.RequestMethod.POST); + exports2.Get = createMappingDecorator(request_method_enum_1.RequestMethod.GET); + exports2.Delete = createMappingDecorator(request_method_enum_1.RequestMethod.DELETE); + exports2.Put = createMappingDecorator(request_method_enum_1.RequestMethod.PUT); + exports2.Patch = createMappingDecorator(request_method_enum_1.RequestMethod.PATCH); + exports2.Options = createMappingDecorator(request_method_enum_1.RequestMethod.OPTIONS); + exports2.Head = createMappingDecorator(request_method_enum_1.RequestMethod.HEAD); + exports2.All = createMappingDecorator(request_method_enum_1.RequestMethod.ALL); + exports2.Search = createMappingDecorator(request_method_enum_1.RequestMethod.SEARCH); + exports2.Propfind = createMappingDecorator(request_method_enum_1.RequestMethod.PROPFIND); + exports2.Proppatch = createMappingDecorator(request_method_enum_1.RequestMethod.PROPPATCH); + exports2.Mkcol = createMappingDecorator(request_method_enum_1.RequestMethod.MKCOL); + exports2.Copy = createMappingDecorator(request_method_enum_1.RequestMethod.COPY); + exports2.Move = createMappingDecorator(request_method_enum_1.RequestMethod.MOVE); + exports2.Lock = createMappingDecorator(request_method_enum_1.RequestMethod.LOCK); + exports2.Unlock = createMappingDecorator(request_method_enum_1.RequestMethod.UNLOCK); + } +}); + +// node_modules/@nestjs/common/enums/route-paramtypes.enum.js +var require_route_paramtypes_enum = __commonJS({ + "node_modules/@nestjs/common/enums/route-paramtypes.enum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouteParamtypes = void 0; + var RouteParamtypes; + (function(RouteParamtypes2) { + RouteParamtypes2[RouteParamtypes2["REQUEST"] = 0] = "REQUEST"; + RouteParamtypes2[RouteParamtypes2["RESPONSE"] = 1] = "RESPONSE"; + RouteParamtypes2[RouteParamtypes2["NEXT"] = 2] = "NEXT"; + RouteParamtypes2[RouteParamtypes2["BODY"] = 3] = "BODY"; + RouteParamtypes2[RouteParamtypes2["QUERY"] = 4] = "QUERY"; + RouteParamtypes2[RouteParamtypes2["PARAM"] = 5] = "PARAM"; + RouteParamtypes2[RouteParamtypes2["HEADERS"] = 6] = "HEADERS"; + RouteParamtypes2[RouteParamtypes2["SESSION"] = 7] = "SESSION"; + RouteParamtypes2[RouteParamtypes2["FILE"] = 8] = "FILE"; + RouteParamtypes2[RouteParamtypes2["FILES"] = 9] = "FILES"; + RouteParamtypes2[RouteParamtypes2["HOST"] = 10] = "HOST"; + RouteParamtypes2[RouteParamtypes2["IP"] = 11] = "IP"; + RouteParamtypes2[RouteParamtypes2["RAW_BODY"] = 12] = "RAW_BODY"; + RouteParamtypes2[RouteParamtypes2["ACK"] = 13] = "ACK"; + })(RouteParamtypes || (exports2.RouteParamtypes = RouteParamtypes = {})); + } +}); + +// node_modules/@nestjs/common/decorators/http/route-params.decorator.js +var require_route_params_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/http/route-params.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Res = exports2.Req = exports2.Headers = exports2.Session = exports2.Ip = exports2.Next = exports2.Response = exports2.Request = void 0; + exports2.assignMetadata = assignMetadata; + exports2.UploadedFile = UploadedFile; + exports2.UploadedFiles = UploadedFiles; + exports2.Query = Query; + exports2.Body = Body; + exports2.RawBody = RawBody; + exports2.Param = Param; + exports2.HostParam = HostParam; + var constants_1 = require_constants2(); + var route_paramtypes_enum_1 = require_route_paramtypes_enum(); + var shared_utils_1 = require_shared_utils(); + function assignMetadata(args, paramtype, index, data, ...pipes) { + return { + ...args, + [`${paramtype}:${index}`]: { + index, + data, + pipes + } + }; + } + __name(assignMetadata, "assignMetadata"); + function createRouteParamDecorator(paramtype) { + return (data) => (target, key, index) => { + const args = Reflect.getMetadata(constants_1.ROUTE_ARGS_METADATA, target.constructor, key) || {}; + Reflect.defineMetadata(constants_1.ROUTE_ARGS_METADATA, assignMetadata(args, paramtype, index, data), target.constructor, key); + }; + } + __name(createRouteParamDecorator, "createRouteParamDecorator"); + var createPipesRouteParamDecorator = /* @__PURE__ */ __name((paramtype) => (data, ...pipes) => (target, key, index) => { + const args = Reflect.getMetadata(constants_1.ROUTE_ARGS_METADATA, target.constructor, key) || {}; + const hasParamData = (0, shared_utils_1.isNil)(data) || (0, shared_utils_1.isString)(data); + const paramData = hasParamData ? data : void 0; + const paramPipes = hasParamData ? pipes : [data, ...pipes]; + Reflect.defineMetadata(constants_1.ROUTE_ARGS_METADATA, assignMetadata(args, paramtype, index, paramData, ...paramPipes), target.constructor, key); + }, "createPipesRouteParamDecorator"); + exports2.Request = createRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.REQUEST); + var Response = /* @__PURE__ */ __name((options) => (target, key, index) => { + if (options?.passthrough) { + Reflect.defineMetadata(constants_1.RESPONSE_PASSTHROUGH_METADATA, options?.passthrough, target.constructor, key); + } + return createRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.RESPONSE)()(target, key, index); + }, "Response"); + exports2.Response = Response; + exports2.Next = createRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.NEXT); + exports2.Ip = createRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.IP); + exports2.Session = createRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.SESSION); + function UploadedFile(fileKey, ...pipes) { + return createPipesRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.FILE)(fileKey, ...pipes); + } + __name(UploadedFile, "UploadedFile"); + function UploadedFiles(...pipes) { + return createPipesRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.FILES)(void 0, ...pipes); + } + __name(UploadedFiles, "UploadedFiles"); + exports2.Headers = createRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.HEADERS); + function Query(property, ...pipes) { + return createPipesRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.QUERY)(property, ...pipes); + } + __name(Query, "Query"); + function Body(property, ...pipes) { + return createPipesRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.BODY)(property, ...pipes); + } + __name(Body, "Body"); + function RawBody(...pipes) { + return createPipesRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.RAW_BODY)(void 0, ...pipes); + } + __name(RawBody, "RawBody"); + function Param(property, ...pipes) { + return createPipesRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.PARAM)(property, ...pipes); + } + __name(Param, "Param"); + function HostParam(property) { + return createRouteParamDecorator(route_paramtypes_enum_1.RouteParamtypes.HOST)(property); + } + __name(HostParam, "HostParam"); + exports2.Req = exports2.Request; + exports2.Res = exports2.Response; + } +}); + +// node_modules/@nestjs/common/decorators/http/http-code.decorator.js +var require_http_code_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/http/http-code.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HttpCode = HttpCode; + var constants_1 = require_constants2(); + function HttpCode(statusCode) { + return (target, key, descriptor) => { + Reflect.defineMetadata(constants_1.HTTP_CODE_METADATA, statusCode, descriptor.value); + return descriptor; + }; + } + __name(HttpCode, "HttpCode"); + } +}); + +// node_modules/@nestjs/common/utils/assign-custom-metadata.util.js +var require_assign_custom_metadata_util = __commonJS({ + "node_modules/@nestjs/common/utils/assign-custom-metadata.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.assignCustomParameterMetadata = assignCustomParameterMetadata; + var constants_1 = require_constants2(); + function assignCustomParameterMetadata(args, paramtype, index, factory, data, ...pipes) { + return { + ...args, + [`${paramtype}${constants_1.CUSTOM_ROUTE_ARGS_METADATA}:${index}`]: { + index, + factory, + data, + pipes + } + }; + } + __name(assignCustomParameterMetadata, "assignCustomParameterMetadata"); + } +}); + +// node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.js +var require_create_route_param_metadata_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createParamDecorator = createParamDecorator; + var uid_1 = require_dist(); + var constants_1 = require_constants2(); + var assign_custom_metadata_util_1 = require_assign_custom_metadata_util(); + var shared_utils_1 = require_shared_utils(); + function createParamDecorator(factory, enhancers = []) { + const paramtype = (0, uid_1.uid)(21); + return (data, ...pipes) => (target, key, index) => { + const args = Reflect.getMetadata(constants_1.ROUTE_ARGS_METADATA, target.constructor, key) || {}; + const isPipe = /* @__PURE__ */ __name((pipe) => pipe && ((0, shared_utils_1.isFunction)(pipe) && pipe.prototype && (0, shared_utils_1.isFunction)(pipe.prototype.transform) || (0, shared_utils_1.isFunction)(pipe.transform)), "isPipe"); + const hasParamData = (0, shared_utils_1.isNil)(data) || !isPipe(data); + const paramData = hasParamData ? data : void 0; + const paramPipes = hasParamData ? pipes : [data, ...pipes]; + Reflect.defineMetadata(constants_1.ROUTE_ARGS_METADATA, (0, assign_custom_metadata_util_1.assignCustomParameterMetadata)(args, paramtype, index, factory, paramData, ...paramPipes), target.constructor, key); + enhancers.forEach((fn) => fn(target, key, index)); + }; + } + __name(createParamDecorator, "createParamDecorator"); + } +}); + +// node_modules/@nestjs/common/decorators/http/render.decorator.js +var require_render_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/http/render.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Render = Render; + var constants_1 = require_constants2(); + function Render(template) { + return (target, key, descriptor) => { + Reflect.defineMetadata(constants_1.RENDER_METADATA, template, descriptor.value); + return descriptor; + }; + } + __name(Render, "Render"); + } +}); + +// node_modules/@nestjs/common/decorators/http/header.decorator.js +var require_header_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/http/header.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Header = Header; + var constants_1 = require_constants2(); + var extend_metadata_util_1 = require_extend_metadata_util(); + function Header(name, value) { + return (target, key, descriptor) => { + (0, extend_metadata_util_1.extendArrayMetadata)(constants_1.HEADERS_METADATA, [{ name, value }], descriptor.value); + return descriptor; + }; + } + __name(Header, "Header"); + } +}); + +// node_modules/@nestjs/common/decorators/http/redirect.decorator.js +var require_redirect_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/http/redirect.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Redirect = Redirect; + var constants_1 = require_constants2(); + function Redirect(url = "", statusCode) { + return (target, key, descriptor) => { + Reflect.defineMetadata(constants_1.REDIRECT_METADATA, { statusCode, url }, descriptor.value); + return descriptor; + }; + } + __name(Redirect, "Redirect"); + } +}); + +// node_modules/@nestjs/common/decorators/http/sse.decorator.js +var require_sse_decorator = __commonJS({ + "node_modules/@nestjs/common/decorators/http/sse.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Sse = Sse; + var constants_1 = require_constants2(); + var request_method_enum_1 = require_request_method_enum(); + function Sse(path, options = { + [constants_1.METHOD_METADATA]: request_method_enum_1.RequestMethod.GET + }) { + return (target, key, descriptor) => { + path = path && path.length ? path : "/"; + Reflect.defineMetadata(constants_1.PATH_METADATA, path, descriptor.value); + Reflect.defineMetadata(constants_1.METHOD_METADATA, options[constants_1.METHOD_METADATA], descriptor.value); + Reflect.defineMetadata(constants_1.SSE_METADATA, true, descriptor.value); + return descriptor; + }; + } + __name(Sse, "Sse"); + } +}); + +// node_modules/@nestjs/common/decorators/http/index.js +var require_http = __commonJS({ + "node_modules/@nestjs/common/decorators/http/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_request_mapping_decorator(), exports2); + tslib_1.__exportStar(require_route_params_decorator(), exports2); + tslib_1.__exportStar(require_http_code_decorator(), exports2); + tslib_1.__exportStar(require_create_route_param_metadata_decorator(), exports2); + tslib_1.__exportStar(require_render_decorator(), exports2); + tslib_1.__exportStar(require_header_decorator(), exports2); + tslib_1.__exportStar(require_redirect_decorator(), exports2); + tslib_1.__exportStar(require_sse_decorator(), exports2); + } +}); + +// node_modules/@nestjs/common/decorators/index.js +var require_decorators = __commonJS({ + "node_modules/@nestjs/common/decorators/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_core(), exports2); + tslib_1.__exportStar(require_modules(), exports2); + tslib_1.__exportStar(require_http(), exports2); + } +}); + +// node_modules/@nestjs/common/enums/http-status.enum.js +var require_http_status_enum = __commonJS({ + "node_modules/@nestjs/common/enums/http-status.enum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HttpStatus = void 0; + var HttpStatus; + (function(HttpStatus2) { + HttpStatus2[HttpStatus2["CONTINUE"] = 100] = "CONTINUE"; + HttpStatus2[HttpStatus2["SWITCHING_PROTOCOLS"] = 101] = "SWITCHING_PROTOCOLS"; + HttpStatus2[HttpStatus2["PROCESSING"] = 102] = "PROCESSING"; + HttpStatus2[HttpStatus2["EARLYHINTS"] = 103] = "EARLYHINTS"; + HttpStatus2[HttpStatus2["OK"] = 200] = "OK"; + HttpStatus2[HttpStatus2["CREATED"] = 201] = "CREATED"; + HttpStatus2[HttpStatus2["ACCEPTED"] = 202] = "ACCEPTED"; + HttpStatus2[HttpStatus2["NON_AUTHORITATIVE_INFORMATION"] = 203] = "NON_AUTHORITATIVE_INFORMATION"; + HttpStatus2[HttpStatus2["NO_CONTENT"] = 204] = "NO_CONTENT"; + HttpStatus2[HttpStatus2["RESET_CONTENT"] = 205] = "RESET_CONTENT"; + HttpStatus2[HttpStatus2["PARTIAL_CONTENT"] = 206] = "PARTIAL_CONTENT"; + HttpStatus2[HttpStatus2["MULTI_STATUS"] = 207] = "MULTI_STATUS"; + HttpStatus2[HttpStatus2["ALREADY_REPORTED"] = 208] = "ALREADY_REPORTED"; + HttpStatus2[HttpStatus2["CONTENT_DIFFERENT"] = 210] = "CONTENT_DIFFERENT"; + HttpStatus2[HttpStatus2["AMBIGUOUS"] = 300] = "AMBIGUOUS"; + HttpStatus2[HttpStatus2["MOVED_PERMANENTLY"] = 301] = "MOVED_PERMANENTLY"; + HttpStatus2[HttpStatus2["FOUND"] = 302] = "FOUND"; + HttpStatus2[HttpStatus2["SEE_OTHER"] = 303] = "SEE_OTHER"; + HttpStatus2[HttpStatus2["NOT_MODIFIED"] = 304] = "NOT_MODIFIED"; + HttpStatus2[HttpStatus2["TEMPORARY_REDIRECT"] = 307] = "TEMPORARY_REDIRECT"; + HttpStatus2[HttpStatus2["PERMANENT_REDIRECT"] = 308] = "PERMANENT_REDIRECT"; + HttpStatus2[HttpStatus2["BAD_REQUEST"] = 400] = "BAD_REQUEST"; + HttpStatus2[HttpStatus2["UNAUTHORIZED"] = 401] = "UNAUTHORIZED"; + HttpStatus2[HttpStatus2["PAYMENT_REQUIRED"] = 402] = "PAYMENT_REQUIRED"; + HttpStatus2[HttpStatus2["FORBIDDEN"] = 403] = "FORBIDDEN"; + HttpStatus2[HttpStatus2["NOT_FOUND"] = 404] = "NOT_FOUND"; + HttpStatus2[HttpStatus2["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED"; + HttpStatus2[HttpStatus2["NOT_ACCEPTABLE"] = 406] = "NOT_ACCEPTABLE"; + HttpStatus2[HttpStatus2["PROXY_AUTHENTICATION_REQUIRED"] = 407] = "PROXY_AUTHENTICATION_REQUIRED"; + HttpStatus2[HttpStatus2["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT"; + HttpStatus2[HttpStatus2["CONFLICT"] = 409] = "CONFLICT"; + HttpStatus2[HttpStatus2["GONE"] = 410] = "GONE"; + HttpStatus2[HttpStatus2["LENGTH_REQUIRED"] = 411] = "LENGTH_REQUIRED"; + HttpStatus2[HttpStatus2["PRECONDITION_FAILED"] = 412] = "PRECONDITION_FAILED"; + HttpStatus2[HttpStatus2["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE"; + HttpStatus2[HttpStatus2["URI_TOO_LONG"] = 414] = "URI_TOO_LONG"; + HttpStatus2[HttpStatus2["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE"; + HttpStatus2[HttpStatus2["REQUESTED_RANGE_NOT_SATISFIABLE"] = 416] = "REQUESTED_RANGE_NOT_SATISFIABLE"; + HttpStatus2[HttpStatus2["EXPECTATION_FAILED"] = 417] = "EXPECTATION_FAILED"; + HttpStatus2[HttpStatus2["I_AM_A_TEAPOT"] = 418] = "I_AM_A_TEAPOT"; + HttpStatus2[HttpStatus2["MISDIRECTED"] = 421] = "MISDIRECTED"; + HttpStatus2[HttpStatus2["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY"; + HttpStatus2[HttpStatus2["LOCKED"] = 423] = "LOCKED"; + HttpStatus2[HttpStatus2["FAILED_DEPENDENCY"] = 424] = "FAILED_DEPENDENCY"; + HttpStatus2[HttpStatus2["PRECONDITION_REQUIRED"] = 428] = "PRECONDITION_REQUIRED"; + HttpStatus2[HttpStatus2["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS"; + HttpStatus2[HttpStatus2["UNRECOVERABLE_ERROR"] = 456] = "UNRECOVERABLE_ERROR"; + HttpStatus2[HttpStatus2["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR"; + HttpStatus2[HttpStatus2["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED"; + HttpStatus2[HttpStatus2["BAD_GATEWAY"] = 502] = "BAD_GATEWAY"; + HttpStatus2[HttpStatus2["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE"; + HttpStatus2[HttpStatus2["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT"; + HttpStatus2[HttpStatus2["HTTP_VERSION_NOT_SUPPORTED"] = 505] = "HTTP_VERSION_NOT_SUPPORTED"; + HttpStatus2[HttpStatus2["INSUFFICIENT_STORAGE"] = 507] = "INSUFFICIENT_STORAGE"; + HttpStatus2[HttpStatus2["LOOP_DETECTED"] = 508] = "LOOP_DETECTED"; + })(HttpStatus || (exports2.HttpStatus = HttpStatus = {})); + } +}); + +// node_modules/@nestjs/common/enums/shutdown-signal.enum.js +var require_shutdown_signal_enum = __commonJS({ + "node_modules/@nestjs/common/enums/shutdown-signal.enum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ShutdownSignal = void 0; + var ShutdownSignal; + (function(ShutdownSignal2) { + ShutdownSignal2["SIGHUP"] = "SIGHUP"; + ShutdownSignal2["SIGINT"] = "SIGINT"; + ShutdownSignal2["SIGQUIT"] = "SIGQUIT"; + ShutdownSignal2["SIGILL"] = "SIGILL"; + ShutdownSignal2["SIGTRAP"] = "SIGTRAP"; + ShutdownSignal2["SIGABRT"] = "SIGABRT"; + ShutdownSignal2["SIGBUS"] = "SIGBUS"; + ShutdownSignal2["SIGFPE"] = "SIGFPE"; + ShutdownSignal2["SIGSEGV"] = "SIGSEGV"; + ShutdownSignal2["SIGUSR2"] = "SIGUSR2"; + ShutdownSignal2["SIGTERM"] = "SIGTERM"; + })(ShutdownSignal || (exports2.ShutdownSignal = ShutdownSignal = {})); + } +}); + +// node_modules/@nestjs/common/enums/version-type.enum.js +var require_version_type_enum = __commonJS({ + "node_modules/@nestjs/common/enums/version-type.enum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.VersioningType = void 0; + var VersioningType; + (function(VersioningType2) { + VersioningType2[VersioningType2["URI"] = 0] = "URI"; + VersioningType2[VersioningType2["HEADER"] = 1] = "HEADER"; + VersioningType2[VersioningType2["MEDIA_TYPE"] = 2] = "MEDIA_TYPE"; + VersioningType2[VersioningType2["CUSTOM"] = 3] = "CUSTOM"; + })(VersioningType || (exports2.VersioningType = VersioningType = {})); + } +}); + +// node_modules/@nestjs/common/enums/index.js +var require_enums = __commonJS({ + "node_modules/@nestjs/common/enums/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_request_method_enum(), exports2); + tslib_1.__exportStar(require_http_status_enum(), exports2); + tslib_1.__exportStar(require_shutdown_signal_enum(), exports2); + tslib_1.__exportStar(require_version_type_enum(), exports2); + } +}); + +// node_modules/@nestjs/common/exceptions/intrinsic.exception.js +var require_intrinsic_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/intrinsic.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IntrinsicException = void 0; + var IntrinsicException = class extends Error { + static { + __name(this, "IntrinsicException"); + } + }; + exports2.IntrinsicException = IntrinsicException; + } +}); + +// node_modules/@nestjs/common/exceptions/http.exception.js +var require_http_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/http.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HttpException = void 0; + var shared_utils_1 = require_shared_utils(); + var intrinsic_exception_1 = require_intrinsic_exception(); + var HttpException = class extends intrinsic_exception_1.IntrinsicException { + static { + __name(this, "HttpException"); + } + /** + * Instantiate a plain HTTP Exception. + * + * @example + * throw new HttpException('message', HttpStatus.BAD_REQUEST) + * throw new HttpException('custom message', HttpStatus.BAD_REQUEST, { + * cause: new Error('Cause Error'), + * }) + * + * + * @usageNotes + * The constructor arguments define the response and the HTTP response status code. + * - The `response` argument (required) defines the JSON response body. alternatively, it can also be + * an error object that is used to define an error [cause](https://nodejs.org/en/blog/release/v16.9.0/#error-cause). + * - The `status` argument (required) defines the HTTP Status Code. + * - The `options` argument (optional) defines additional error options. Currently, it supports the `cause` attribute, + * and can be used as an alternative way to specify the error cause: `const error = new HttpException('description', 400, { cause: new Error() });` + * + * By default, the JSON response body contains two properties: + * - `statusCode`: the Http Status Code. + * - `message`: a short description of the HTTP error by default; override this + * by supplying a string in the `response` parameter. + * + * To override the entire JSON response body, pass an object to the `createBody` + * method. Nest will serialize the object and return it as the JSON response body. + * + * The `status` argument is required, and should be a valid HTTP status code. + * Best practice is to use the `HttpStatus` enum imported from `nestjs/common`. + * + * @param response string, object describing the error condition or the error cause. + * @param status HTTP response status code. + * @param options An object used to add an error cause. + */ + constructor(response, status, options) { + super(); + this.response = response; + this.status = status; + this.options = options; + this.initMessage(); + this.initName(); + this.initCause(); + } + /** + * Configures error chaining support + * + * @see https://nodejs.org/en/blog/release/v16.9.0/#error-cause + * @see https://github.com/microsoft/TypeScript/issues/45167 + */ + initCause() { + if (this.options?.cause) { + this.cause = this.options.cause; + return; + } + } + initMessage() { + if ((0, shared_utils_1.isString)(this.response)) { + this.message = this.response; + } else if ((0, shared_utils_1.isObject)(this.response) && (0, shared_utils_1.isString)(this.response.message)) { + this.message = this.response.message; + } else if (this.constructor) { + this.message = this.constructor.name.match(/[A-Z][a-z]+|[0-9]+/g)?.join(" ") ?? "Error"; + } + } + initName() { + this.name = this.constructor.name; + } + getResponse() { + return this.response; + } + getStatus() { + return this.status; + } + static createBody(arg0, arg1, statusCode) { + if (!arg0) { + return { + message: arg1, + statusCode + }; + } + if ((0, shared_utils_1.isString)(arg0) || Array.isArray(arg0) || (0, shared_utils_1.isNumber)(arg0)) { + return { + message: arg0, + error: arg1, + statusCode + }; + } + return arg0; + } + static getDescriptionFrom(descriptionOrOptions) { + return (0, shared_utils_1.isString)(descriptionOrOptions) ? descriptionOrOptions : descriptionOrOptions?.description; + } + static getHttpExceptionOptionsFrom(descriptionOrOptions) { + return (0, shared_utils_1.isString)(descriptionOrOptions) ? {} : descriptionOrOptions; + } + /** + * Utility method used to extract the error description and httpExceptionOptions from the given argument. + * This is used by inheriting classes to correctly parse both options. + * @returns the error description and the httpExceptionOptions as an object. + */ + static extractDescriptionAndOptionsFrom(descriptionOrOptions) { + const description = (0, shared_utils_1.isString)(descriptionOrOptions) ? descriptionOrOptions : descriptionOrOptions?.description; + const httpExceptionOptions = (0, shared_utils_1.isString)(descriptionOrOptions) ? {} : descriptionOrOptions; + return { + description, + httpExceptionOptions + }; + } + }; + exports2.HttpException = HttpException; + } +}); + +// node_modules/@nestjs/common/exceptions/bad-gateway.exception.js +var require_bad_gateway_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/bad-gateway.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BadGatewayException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var BadGatewayException = class extends http_exception_1.HttpException { + static { + __name(this, "BadGatewayException"); + } + /** + * Instantiate a `BadGatewayException` Exception. + * + * @example + * `throw new BadGatewayException()` + * + * @usageNotes + * The HTTP response status code will be 502. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 502. + * - `message`: the string `'Bad Gateway'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Bad Gateway") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.BAD_GATEWAY), http_status_enum_1.HttpStatus.BAD_GATEWAY, httpExceptionOptions); + } + }; + exports2.BadGatewayException = BadGatewayException; + } +}); + +// node_modules/@nestjs/common/exceptions/bad-request.exception.js +var require_bad_request_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/bad-request.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BadRequestException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var BadRequestException = class extends http_exception_1.HttpException { + static { + __name(this, "BadRequestException"); + } + /** + * Instantiate a `BadRequestException` Exception. + * + * @example + * `throw new BadRequestException()` + * + * @usageNotes + * The HTTP response status code will be 400. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 400. + * - `message`: the string `'Bad Request'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Bad Request") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.BAD_REQUEST), http_status_enum_1.HttpStatus.BAD_REQUEST, httpExceptionOptions); + } + }; + exports2.BadRequestException = BadRequestException; + } +}); + +// node_modules/@nestjs/common/exceptions/conflict.exception.js +var require_conflict_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/conflict.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConflictException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var ConflictException = class extends http_exception_1.HttpException { + static { + __name(this, "ConflictException"); + } + /** + * Instantiate a `ConflictException` Exception. + * + * @example + * `throw new ConflictException()` + * + * @usageNotes + * The HTTP response status code will be 409. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 409. + * - `message`: the string `'Conflict'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Conflict") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.CONFLICT), http_status_enum_1.HttpStatus.CONFLICT, httpExceptionOptions); + } + }; + exports2.ConflictException = ConflictException; + } +}); + +// node_modules/@nestjs/common/exceptions/forbidden.exception.js +var require_forbidden_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/forbidden.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ForbiddenException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var ForbiddenException = class extends http_exception_1.HttpException { + static { + __name(this, "ForbiddenException"); + } + /** + * Instantiate a `ForbiddenException` Exception. + * + * @example + * `throw new ForbiddenException()` + * + * @usageNotes + * The HTTP response status code will be 403. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 403. + * - `message`: the string `'Forbidden'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Forbidden") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.FORBIDDEN), http_status_enum_1.HttpStatus.FORBIDDEN, httpExceptionOptions); + } + }; + exports2.ForbiddenException = ForbiddenException; + } +}); + +// node_modules/@nestjs/common/exceptions/gateway-timeout.exception.js +var require_gateway_timeout_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/gateway-timeout.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.GatewayTimeoutException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var GatewayTimeoutException = class extends http_exception_1.HttpException { + static { + __name(this, "GatewayTimeoutException"); + } + /** + * Instantiate a `GatewayTimeoutException` Exception. + * + * @example + * `throw new GatewayTimeoutException()` + * + * @usageNotes + * The HTTP response status code will be 504. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 504. + * - `message`: the string `'Gateway Timeout'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Gateway Timeout") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.GATEWAY_TIMEOUT), http_status_enum_1.HttpStatus.GATEWAY_TIMEOUT, httpExceptionOptions); + } + }; + exports2.GatewayTimeoutException = GatewayTimeoutException; + } +}); + +// node_modules/@nestjs/common/exceptions/gone.exception.js +var require_gone_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/gone.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.GoneException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var GoneException = class extends http_exception_1.HttpException { + static { + __name(this, "GoneException"); + } + /** + * Instantiate a `GoneException` Exception. + * + * @example + * `throw new GoneException()` + * + * @usageNotes + * The HTTP response status code will be 410. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 410. + * - `message`: the string `'Gone'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Gone") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.GONE), http_status_enum_1.HttpStatus.GONE, httpExceptionOptions); + } + }; + exports2.GoneException = GoneException; + } +}); + +// node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.js +var require_http_version_not_supported_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HttpVersionNotSupportedException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var HttpVersionNotSupportedException = class extends http_exception_1.HttpException { + static { + __name(this, "HttpVersionNotSupportedException"); + } + /** + * Instantiate a `HttpVersionNotSupportedException` Exception. + * + * @example + * `throw new HttpVersionNotSupportedException()` + * + * @usageNotes + * The HTTP response status code will be 505. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 505. + * - `message`: the string `'HTTP Version Not Supported'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "HTTP Version Not Supported") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.HTTP_VERSION_NOT_SUPPORTED), http_status_enum_1.HttpStatus.HTTP_VERSION_NOT_SUPPORTED, httpExceptionOptions); + } + }; + exports2.HttpVersionNotSupportedException = HttpVersionNotSupportedException; + } +}); + +// node_modules/@nestjs/common/exceptions/im-a-teapot.exception.js +var require_im_a_teapot_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/im-a-teapot.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ImATeapotException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var ImATeapotException = class extends http_exception_1.HttpException { + static { + __name(this, "ImATeapotException"); + } + /** + * Instantiate an `ImATeapotException` Exception. + * + * @example + * `throw new ImATeapotException()` + * + * @usageNotes + * The HTTP response status code will be 418. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 418. + * - `message`: the string `"I'm a Teapot"` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = `I'm a teapot`) { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.I_AM_A_TEAPOT), http_status_enum_1.HttpStatus.I_AM_A_TEAPOT, httpExceptionOptions); + } + }; + exports2.ImATeapotException = ImATeapotException; + } +}); + +// node_modules/@nestjs/common/exceptions/internal-server-error.exception.js +var require_internal_server_error_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/internal-server-error.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InternalServerErrorException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var InternalServerErrorException = class extends http_exception_1.HttpException { + static { + __name(this, "InternalServerErrorException"); + } + /** + * Instantiate an `InternalServerErrorException` Exception. + * + * @example + * `throw new InternalServerErrorException()` + * + * @usageNotes + * The HTTP response status code will be 500. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 500. + * - `message`: the string `'Internal Server Error'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Internal Server Error") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.INTERNAL_SERVER_ERROR), http_status_enum_1.HttpStatus.INTERNAL_SERVER_ERROR, httpExceptionOptions); + } + }; + exports2.InternalServerErrorException = InternalServerErrorException; + } +}); + +// node_modules/@nestjs/common/exceptions/method-not-allowed.exception.js +var require_method_not_allowed_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/method-not-allowed.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MethodNotAllowedException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var MethodNotAllowedException = class extends http_exception_1.HttpException { + static { + __name(this, "MethodNotAllowedException"); + } + /** + * Instantiate a `MethodNotAllowedException` Exception. + * + * @example + * `throw new MethodNotAllowedException()` + * + * @usageNotes + * The HTTP response status code will be 405. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 405. + * - `message`: the string `'Method Not Allowed'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Method Not Allowed") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.METHOD_NOT_ALLOWED), http_status_enum_1.HttpStatus.METHOD_NOT_ALLOWED, httpExceptionOptions); + } + }; + exports2.MethodNotAllowedException = MethodNotAllowedException; + } +}); + +// node_modules/@nestjs/common/exceptions/misdirected.exception.js +var require_misdirected_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/misdirected.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MisdirectedException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var MisdirectedException = class extends http_exception_1.HttpException { + static { + __name(this, "MisdirectedException"); + } + /** + * Instantiate a `MisdirectedException` Exception. + * + * @example + * `throw new MisdirectedException()` + * + * @usageNotes + * The HTTP response status code will be 421. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 421. + * - `message`: the string `'Bad Gateway'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Misdirected") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.MISDIRECTED), http_status_enum_1.HttpStatus.MISDIRECTED, httpExceptionOptions); + } + }; + exports2.MisdirectedException = MisdirectedException; + } +}); + +// node_modules/@nestjs/common/exceptions/not-acceptable.exception.js +var require_not_acceptable_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/not-acceptable.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NotAcceptableException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var NotAcceptableException = class extends http_exception_1.HttpException { + static { + __name(this, "NotAcceptableException"); + } + /** + * Instantiate a `NotAcceptableException` Exception. + * + * @example + * `throw new NotAcceptableException()` + * + * @usageNotes + * The HTTP response status code will be 406. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 406. + * - `error`: the string `'Not Acceptable'` by default; override this by supplying + * a string in the `error` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Not Acceptable") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.NOT_ACCEPTABLE), http_status_enum_1.HttpStatus.NOT_ACCEPTABLE, httpExceptionOptions); + } + }; + exports2.NotAcceptableException = NotAcceptableException; + } +}); + +// node_modules/@nestjs/common/exceptions/not-found.exception.js +var require_not_found_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/not-found.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NotFoundException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var NotFoundException = class extends http_exception_1.HttpException { + static { + __name(this, "NotFoundException"); + } + /** + * Instantiate a `NotFoundException` Exception. + * + * @example + * `throw new NotFoundException()` + * + * @usageNotes + * The HTTP response status code will be 404. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 404. + * - `message`: the string `'Not Found'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Not Found") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.NOT_FOUND), http_status_enum_1.HttpStatus.NOT_FOUND, httpExceptionOptions); + } + }; + exports2.NotFoundException = NotFoundException; + } +}); + +// node_modules/@nestjs/common/exceptions/not-implemented.exception.js +var require_not_implemented_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/not-implemented.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NotImplementedException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var NotImplementedException = class extends http_exception_1.HttpException { + static { + __name(this, "NotImplementedException"); + } + /** + * Instantiate a `NotImplementedException` Exception. + * + * @example + * `throw new NotImplementedException()` + * + * @usageNotes + * The HTTP response status code will be 501. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 501. + * - `message`: the string `'Not Implemented'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + * @param error a short description of the HTTP error. + */ + constructor(objectOrError, descriptionOrOptions = "Not Implemented") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.NOT_IMPLEMENTED), http_status_enum_1.HttpStatus.NOT_IMPLEMENTED, httpExceptionOptions); + } + }; + exports2.NotImplementedException = NotImplementedException; + } +}); + +// node_modules/@nestjs/common/exceptions/payload-too-large.exception.js +var require_payload_too_large_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/payload-too-large.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PayloadTooLargeException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var PayloadTooLargeException = class extends http_exception_1.HttpException { + static { + __name(this, "PayloadTooLargeException"); + } + /** + * Instantiate a `PayloadTooLargeException` Exception. + * + * @example + * `throw new PayloadTooLargeException()` + * + * @usageNotes + * The HTTP response status code will be 413. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 413. + * - `message`: the string `'Payload Too Large'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Payload Too Large") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.PAYLOAD_TOO_LARGE), http_status_enum_1.HttpStatus.PAYLOAD_TOO_LARGE, httpExceptionOptions); + } + }; + exports2.PayloadTooLargeException = PayloadTooLargeException; + } +}); + +// node_modules/@nestjs/common/exceptions/precondition-failed.exception.js +var require_precondition_failed_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/precondition-failed.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PreconditionFailedException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var PreconditionFailedException = class extends http_exception_1.HttpException { + static { + __name(this, "PreconditionFailedException"); + } + /** + * Instantiate a `PreconditionFailedException` Exception. + * + * @example + * `throw new PreconditionFailedException()` + * + * @usageNotes + * The HTTP response status code will be 412. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 412. + * - `message`: the string `'Precondition Failed'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Precondition Failed") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.PRECONDITION_FAILED), http_status_enum_1.HttpStatus.PRECONDITION_FAILED, httpExceptionOptions); + } + }; + exports2.PreconditionFailedException = PreconditionFailedException; + } +}); + +// node_modules/@nestjs/common/exceptions/request-timeout.exception.js +var require_request_timeout_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/request-timeout.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RequestTimeoutException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var RequestTimeoutException = class extends http_exception_1.HttpException { + static { + __name(this, "RequestTimeoutException"); + } + /** + * Instantiate a `RequestTimeoutException` Exception. + * + * @example + * `throw new RequestTimeoutException()` + * + * @usageNotes + * The HTTP response status code will be 408. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 408. + * - `message`: the string `'Request Timeout'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Request Timeout") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.REQUEST_TIMEOUT), http_status_enum_1.HttpStatus.REQUEST_TIMEOUT, httpExceptionOptions); + } + }; + exports2.RequestTimeoutException = RequestTimeoutException; + } +}); + +// node_modules/@nestjs/common/exceptions/service-unavailable.exception.js +var require_service_unavailable_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/service-unavailable.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ServiceUnavailableException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var ServiceUnavailableException = class extends http_exception_1.HttpException { + static { + __name(this, "ServiceUnavailableException"); + } + /** + * Instantiate a `ServiceUnavailableException` Exception. + * + * @example + * `throw new ServiceUnavailableException()` + * + * @usageNotes + * The HTTP response status code will be 503. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 503. + * - `message`: the string `'Service Unavailable'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Service Unavailable") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.SERVICE_UNAVAILABLE), http_status_enum_1.HttpStatus.SERVICE_UNAVAILABLE, httpExceptionOptions); + } + }; + exports2.ServiceUnavailableException = ServiceUnavailableException; + } +}); + +// node_modules/@nestjs/common/exceptions/unauthorized.exception.js +var require_unauthorized_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/unauthorized.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnauthorizedException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var UnauthorizedException = class extends http_exception_1.HttpException { + static { + __name(this, "UnauthorizedException"); + } + /** + * Instantiate an `UnauthorizedException` Exception. + * + * @example + * `throw new UnauthorizedException()` + * + * @usageNotes + * The HTTP response status code will be 401. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 401. + * - `message`: the string `'Unauthorized'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Unauthorized") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.UNAUTHORIZED), http_status_enum_1.HttpStatus.UNAUTHORIZED, httpExceptionOptions); + } + }; + exports2.UnauthorizedException = UnauthorizedException; + } +}); + +// node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.js +var require_unprocessable_entity_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnprocessableEntityException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var UnprocessableEntityException = class extends http_exception_1.HttpException { + static { + __name(this, "UnprocessableEntityException"); + } + /** + * Instantiate an `UnprocessableEntityException` Exception. + * + * @example + * `throw new UnprocessableEntityException()` + * + * @usageNotes + * The HTTP response status code will be 422. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 422. + * - `message`: the string `'Unprocessable Entity'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Unprocessable Entity") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.UNPROCESSABLE_ENTITY), http_status_enum_1.HttpStatus.UNPROCESSABLE_ENTITY, httpExceptionOptions); + } + }; + exports2.UnprocessableEntityException = UnprocessableEntityException; + } +}); + +// node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.js +var require_unsupported_media_type_exception = __commonJS({ + "node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnsupportedMediaTypeException = void 0; + var http_status_enum_1 = require_http_status_enum(); + var http_exception_1 = require_http_exception(); + var UnsupportedMediaTypeException = class extends http_exception_1.HttpException { + static { + __name(this, "UnsupportedMediaTypeException"); + } + /** + * Instantiate an `UnsupportedMediaTypeException` Exception. + * + * @example + * `throw new UnsupportedMediaTypeException()` + * + * @usageNotes + * The HTTP response status code will be 415. + * - The `objectOrError` argument defines the JSON response body or the message string. + * - The `descriptionOrOptions` argument contains either a short description of the HTTP error or an options object used to provide an underlying error cause. + * + * By default, the JSON response body contains two properties: + * - `statusCode`: this will be the value 415. + * - `message`: the string `'Unsupported Media Type'` by default; override this by supplying + * a string in the `objectOrError` parameter. + * + * If the parameter `objectOrError` is a string, the response body will contain an + * additional property, `error`, with a short description of the HTTP error. To override the + * entire JSON response body, pass an object instead. Nest will serialize the object + * and return it as the JSON response body. + * + * @param objectOrError string or object describing the error condition. + * @param descriptionOrOptions either a short description of the HTTP error or an options object used to provide an underlying error cause + */ + constructor(objectOrError, descriptionOrOptions = "Unsupported Media Type") { + const { description, httpExceptionOptions } = http_exception_1.HttpException.extractDescriptionAndOptionsFrom(descriptionOrOptions); + super(http_exception_1.HttpException.createBody(objectOrError, description, http_status_enum_1.HttpStatus.UNSUPPORTED_MEDIA_TYPE), http_status_enum_1.HttpStatus.UNSUPPORTED_MEDIA_TYPE, httpExceptionOptions); + } + }; + exports2.UnsupportedMediaTypeException = UnsupportedMediaTypeException; + } +}); + +// node_modules/@nestjs/common/exceptions/index.js +var require_exceptions = __commonJS({ + "node_modules/@nestjs/common/exceptions/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_bad_gateway_exception(), exports2); + tslib_1.__exportStar(require_bad_request_exception(), exports2); + tslib_1.__exportStar(require_conflict_exception(), exports2); + tslib_1.__exportStar(require_forbidden_exception(), exports2); + tslib_1.__exportStar(require_gateway_timeout_exception(), exports2); + tslib_1.__exportStar(require_gone_exception(), exports2); + tslib_1.__exportStar(require_http_version_not_supported_exception(), exports2); + tslib_1.__exportStar(require_http_exception(), exports2); + tslib_1.__exportStar(require_im_a_teapot_exception(), exports2); + tslib_1.__exportStar(require_internal_server_error_exception(), exports2); + tslib_1.__exportStar(require_intrinsic_exception(), exports2); + tslib_1.__exportStar(require_method_not_allowed_exception(), exports2); + tslib_1.__exportStar(require_misdirected_exception(), exports2); + tslib_1.__exportStar(require_not_acceptable_exception(), exports2); + tslib_1.__exportStar(require_not_found_exception(), exports2); + tslib_1.__exportStar(require_not_implemented_exception(), exports2); + tslib_1.__exportStar(require_payload_too_large_exception(), exports2); + tslib_1.__exportStar(require_precondition_failed_exception(), exports2); + tslib_1.__exportStar(require_request_timeout_exception(), exports2); + tslib_1.__exportStar(require_service_unavailable_exception(), exports2); + tslib_1.__exportStar(require_unauthorized_exception(), exports2); + tslib_1.__exportStar(require_unprocessable_entity_exception(), exports2); + tslib_1.__exportStar(require_unsupported_media_type_exception(), exports2); + } +}); + +// node_modules/@nestjs/common/utils/cli-colors.util.js +var require_cli_colors_util = __commonJS({ + "node_modules/@nestjs/common/utils/cli-colors.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.yellow = exports2.clc = exports2.isColorAllowed = void 0; + var isColorAllowed = /* @__PURE__ */ __name(() => !process.env.NO_COLOR, "isColorAllowed"); + exports2.isColorAllowed = isColorAllowed; + var colorIfAllowed = /* @__PURE__ */ __name((colorFn) => (text) => (0, exports2.isColorAllowed)() ? colorFn(text) : text, "colorIfAllowed"); + exports2.clc = { + bold: colorIfAllowed((text) => `\x1B[1m${text}\x1B[0m`), + green: colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`), + yellow: colorIfAllowed((text) => `\x1B[33m${text}\x1B[39m`), + red: colorIfAllowed((text) => `\x1B[31m${text}\x1B[39m`), + magentaBright: colorIfAllowed((text) => `\x1B[95m${text}\x1B[39m`), + cyanBright: colorIfAllowed((text) => `\x1B[96m${text}\x1B[39m`) + }; + exports2.yellow = colorIfAllowed((text) => `\x1B[38;5;3m${text}\x1B[39m`); + } +}); + +// node_modules/@nestjs/common/services/utils/is-log-level-enabled.util.js +var require_is_log_level_enabled_util = __commonJS({ + "node_modules/@nestjs/common/services/utils/is-log-level-enabled.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isLogLevelEnabled = isLogLevelEnabled; + var LOG_LEVEL_VALUES = { + verbose: 0, + debug: 1, + log: 2, + warn: 3, + error: 4, + fatal: 5 + }; + function isLogLevelEnabled(targetLevel, logLevels) { + if (!logLevels || Array.isArray(logLevels) && logLevels?.length === 0) { + return false; + } + if (logLevels.includes(targetLevel)) { + return true; + } + let highestLogLevelValue = -Infinity; + for (const level of logLevels) { + const v = LOG_LEVEL_VALUES[level]; + if (v > highestLogLevelValue) + highestLogLevelValue = v; + } + const targetLevelValue = LOG_LEVEL_VALUES[targetLevel]; + return targetLevelValue >= highestLogLevelValue; + } + __name(isLogLevelEnabled, "isLogLevelEnabled"); + } +}); + +// node_modules/@nestjs/common/services/console-logger.service.js +var require_console_logger_service = __commonJS({ + "node_modules/@nestjs/common/services/console-logger.service.js"(exports2) { + "use strict"; + var ConsoleLogger_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConsoleLogger = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var util_1 = require("util"); + var core_12 = require_core(); + var cli_colors_util_1 = require_cli_colors_util(); + var shared_utils_1 = require_shared_utils(); + var is_log_level_enabled_util_1 = require_is_log_level_enabled_util(); + var DEFAULT_DEPTH = 5; + var DEFAULT_LOG_LEVELS = [ + "log", + "error", + "warn", + "debug", + "verbose", + "fatal" + ]; + var dateTimeFormatter = new Intl.DateTimeFormat(void 0, { + year: "numeric", + hour: "numeric", + minute: "numeric", + second: "numeric", + day: "2-digit", + month: "2-digit" + }); + var ConsoleLogger = ConsoleLogger_1 = class ConsoleLogger { + static { + __name(this, "ConsoleLogger"); + } + constructor(contextOrOptions, options) { + let [context, opts] = (0, shared_utils_1.isString)(contextOrOptions) ? [contextOrOptions, options] : options ? [void 0, options] : [contextOrOptions?.context, contextOrOptions]; + opts = opts ?? {}; + opts.logLevels ??= DEFAULT_LOG_LEVELS; + opts.colors ??= opts.colors ?? (opts.json ? false : (0, cli_colors_util_1.isColorAllowed)()); + opts.prefix ??= "Nest"; + this.options = opts; + this.inspectOptions = this.getInspectOptions(); + if (context) { + this.context = context; + this.originalContext = context; + } + } + log(message, ...optionalParams) { + if (!this.isLevelEnabled("log")) { + return; + } + const { messages, context } = this.getContextAndMessagesToPrint([ + message, + ...optionalParams + ]); + this.printMessages(messages, context, "log"); + } + error(message, ...optionalParams) { + if (!this.isLevelEnabled("error")) { + return; + } + const { messages, context, stack } = this.getContextAndStackAndMessagesToPrint([message, ...optionalParams]); + this.printMessages(messages, context, "error", "stderr", stack); + this.printStackTrace(stack); + } + warn(message, ...optionalParams) { + if (!this.isLevelEnabled("warn")) { + return; + } + const { messages, context } = this.getContextAndMessagesToPrint([ + message, + ...optionalParams + ]); + this.printMessages(messages, context, "warn"); + } + debug(message, ...optionalParams) { + if (!this.isLevelEnabled("debug")) { + return; + } + const { messages, context } = this.getContextAndMessagesToPrint([ + message, + ...optionalParams + ]); + this.printMessages(messages, context, "debug"); + } + verbose(message, ...optionalParams) { + if (!this.isLevelEnabled("verbose")) { + return; + } + const { messages, context } = this.getContextAndMessagesToPrint([ + message, + ...optionalParams + ]); + this.printMessages(messages, context, "verbose"); + } + fatal(message, ...optionalParams) { + if (!this.isLevelEnabled("fatal")) { + return; + } + const { messages, context } = this.getContextAndMessagesToPrint([ + message, + ...optionalParams + ]); + this.printMessages(messages, context, "fatal"); + } + /** + * Set log levels + * @param levels log levels + */ + setLogLevels(levels) { + if (!this.options) { + this.options = {}; + } + this.options.logLevels = levels; + } + /** + * Set logger context + * @param context context + */ + setContext(context) { + this.context = context; + } + /** + * Resets the logger context to the value that was passed in the constructor. + */ + resetContext() { + this.context = this.originalContext; + } + isLevelEnabled(level) { + const logLevels = this.options?.logLevels; + return (0, is_log_level_enabled_util_1.isLogLevelEnabled)(level, logLevels); + } + getTimestamp() { + return dateTimeFormatter.format(Date.now()); + } + printMessages(messages, context = "", logLevel = "log", writeStreamType, errorStack) { + messages.forEach((message) => { + if (this.options.json) { + this.printAsJson(message, { + context, + logLevel, + writeStreamType, + errorStack + }); + return; + } + const pidMessage = this.formatPid(process.pid); + const contextMessage = this.formatContext(context); + const timestampDiff = this.updateAndGetTimestampDiff(); + const formattedLogLevel = logLevel.toUpperCase().padStart(7, " "); + const formattedMessage = this.formatMessage(logLevel, message, pidMessage, formattedLogLevel, contextMessage, timestampDiff); + if (this.options.forceConsole) { + if (writeStreamType === "stderr") { + console.error(formattedMessage.trim()); + } else { + console.log(formattedMessage.trim()); + } + } else { + process[writeStreamType ?? "stdout"].write(formattedMessage); + } + }); + } + printAsJson(message, options) { + const logObject = this.getJsonLogObject(message, options); + const formattedMessage = !this.options.colors && this.inspectOptions.compact === true ? JSON.stringify(logObject, this.stringifyReplacer) : (0, util_1.inspect)(logObject, this.inspectOptions); + if (this.options.forceConsole) { + if (options.writeStreamType === "stderr") { + console.error(formattedMessage); + } else { + console.log(formattedMessage); + } + } else { + process[options.writeStreamType ?? "stdout"].write(`${formattedMessage} +`); + } + } + getJsonLogObject(message, options) { + const logObject = { + level: options.logLevel, + pid: process.pid, + timestamp: Date.now(), + message + }; + if (options.context) { + logObject.context = options.context; + } + if (options.errorStack) { + logObject.stack = options.errorStack; + } + return logObject; + } + formatPid(pid) { + return `[${this.options.prefix}] ${pid} - `; + } + formatContext(context) { + if (!context) { + return ""; + } + context = `[${context}] `; + return this.options.colors ? (0, cli_colors_util_1.yellow)(context) : context; + } + formatMessage(logLevel, message, pidMessage, formattedLogLevel, contextMessage, timestampDiff) { + const output = this.stringifyMessage(message, logLevel); + pidMessage = this.colorize(pidMessage, logLevel); + formattedLogLevel = this.colorize(formattedLogLevel, logLevel); + return `${pidMessage}${this.getTimestamp()} ${formattedLogLevel} ${contextMessage}${output}${timestampDiff} +`; + } + stringifyMessage(message, logLevel) { + if ((0, shared_utils_1.isFunction)(message)) { + const messageAsStr = Function.prototype.toString.call(message); + const isClass = messageAsStr.startsWith("class "); + if (isClass) { + return this.stringifyMessage(message.name, logLevel); + } + return this.stringifyMessage(message(), logLevel); + } + if (typeof message === "string") { + return this.colorize(message, logLevel); + } + const outputText = (0, util_1.inspect)(message, this.inspectOptions); + if ((0, shared_utils_1.isPlainObject)(message)) { + return `Object(${Object.keys(message).length}) ${outputText}`; + } + if (Array.isArray(message)) { + return `Array(${message.length}) ${outputText}`; + } + return outputText; + } + colorize(message, logLevel) { + if (!this.options.colors || this.options.json) { + return message; + } + const color = this.getColorByLogLevel(logLevel); + return color(message); + } + printStackTrace(stack) { + if (!stack || this.options.json) { + return; + } + if (this.options.forceConsole) { + console.error(stack); + } else { + process.stderr.write(`${stack} +`); + } + } + updateAndGetTimestampDiff() { + const includeTimestamp = ConsoleLogger_1.lastTimestampAt && this.options?.timestamp; + const result = includeTimestamp ? this.formatTimestampDiff(Date.now() - ConsoleLogger_1.lastTimestampAt) : ""; + ConsoleLogger_1.lastTimestampAt = Date.now(); + return result; + } + formatTimestampDiff(timestampDiff) { + const formattedDiff = ` +${timestampDiff}ms`; + return this.options.colors ? (0, cli_colors_util_1.yellow)(formattedDiff) : formattedDiff; + } + getInspectOptions() { + let breakLength = this.options.breakLength; + if (typeof breakLength === "undefined") { + breakLength = this.options.colors ? this.options.compact ? Infinity : void 0 : this.options.compact === false ? void 0 : Infinity; + } + const inspectOptions = { + depth: this.options.depth ?? DEFAULT_DEPTH, + sorted: this.options.sorted, + showHidden: this.options.showHidden, + compact: this.options.compact ?? (this.options.json ? true : false), + colors: this.options.colors, + breakLength + }; + if (typeof this.options.maxArrayLength !== "undefined") { + inspectOptions.maxArrayLength = this.options.maxArrayLength; + } + if (typeof this.options.maxStringLength !== "undefined") { + inspectOptions.maxStringLength = this.options.maxStringLength; + } + return inspectOptions; + } + stringifyReplacer(key, value) { + if (typeof value === "bigint") { + return value.toString(); + } + if (typeof value === "symbol") { + return value.toString(); + } + if (value instanceof Map || value instanceof Set || value instanceof Error) { + return `${(0, util_1.inspect)(value, this.inspectOptions)}`; + } + return value; + } + getContextAndMessagesToPrint(args) { + if (args?.length <= 1) { + return { messages: args, context: this.context }; + } + const lastElement = args[args.length - 1]; + const isContext = (0, shared_utils_1.isString)(lastElement); + if (!isContext) { + return { messages: args, context: this.context }; + } + return { + context: lastElement, + messages: args.slice(0, args.length - 1) + }; + } + getContextAndStackAndMessagesToPrint(args) { + if (args.length === 2) { + return this.isStackFormat(args[1]) ? { + messages: [args[0]], + stack: args[1], + context: this.context + } : { ...this.getContextAndMessagesToPrint(args) }; + } + const { messages, context } = this.getContextAndMessagesToPrint(args); + if (messages?.length <= 1) { + return { messages, context }; + } + const lastElement = messages[messages.length - 1]; + const isStack = (0, shared_utils_1.isString)(lastElement); + if (!isStack && !(0, shared_utils_1.isUndefined)(lastElement)) { + return { messages, context }; + } + return { + stack: lastElement, + messages: messages.slice(0, messages.length - 1), + context + }; + } + isStackFormat(stack) { + if (!(0, shared_utils_1.isString)(stack) && !(0, shared_utils_1.isUndefined)(stack)) { + return false; + } + return /^(.)+\n\s+at .+:\d+:\d+/.test(stack); + } + getColorByLogLevel(level) { + switch (level) { + case "debug": + return cli_colors_util_1.clc.magentaBright; + case "warn": + return cli_colors_util_1.clc.yellow; + case "error": + return cli_colors_util_1.clc.red; + case "verbose": + return cli_colors_util_1.clc.cyanBright; + case "fatal": + return cli_colors_util_1.clc.bold; + default: + return cli_colors_util_1.clc.green; + } + } + }; + exports2.ConsoleLogger = ConsoleLogger; + exports2.ConsoleLogger = ConsoleLogger = ConsoleLogger_1 = tslib_1.__decorate([ + (0, core_12.Injectable)(), + tslib_1.__param(0, (0, core_12.Optional)()), + tslib_1.__param(1, (0, core_12.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object, Object]) + ], ConsoleLogger); + } +}); + +// node_modules/@nestjs/common/services/utils/is-log-level.util.js +var require_is_log_level_util = __commonJS({ + "node_modules/@nestjs/common/services/utils/is-log-level.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isLogLevel = isLogLevel; + var logger_service_1 = require_logger_service(); + function isLogLevel(maybeLogLevel) { + return logger_service_1.LOG_LEVELS.includes(maybeLogLevel); + } + __name(isLogLevel, "isLogLevel"); + } +}); + +// node_modules/@nestjs/common/services/utils/filter-log-levels.util.js +var require_filter_log_levels_util = __commonJS({ + "node_modules/@nestjs/common/services/utils/filter-log-levels.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.filterLogLevels = filterLogLevels; + var logger_service_1 = require_logger_service(); + var is_log_level_util_1 = require_is_log_level_util(); + function filterLogLevels(parseableString = "") { + const sanitizedString = parseableString.replaceAll(" ", "").toLowerCase(); + if (sanitizedString[0] === ">") { + const orEqual = sanitizedString[1] === "="; + const logLevelIndex = logger_service_1.LOG_LEVELS.indexOf(sanitizedString.substring(orEqual ? 2 : 1)); + if (logLevelIndex === -1) { + throw new Error(`parse error (unknown log level): ${sanitizedString}`); + } + return logger_service_1.LOG_LEVELS.slice(orEqual ? logLevelIndex : logLevelIndex + 1); + } else if (sanitizedString.includes(",")) { + return sanitizedString.split(",").filter(is_log_level_util_1.isLogLevel); + } + return (0, is_log_level_util_1.isLogLevel)(sanitizedString) ? [sanitizedString] : logger_service_1.LOG_LEVELS; + } + __name(filterLogLevels, "filterLogLevels"); + } +}); + +// node_modules/@nestjs/common/services/utils/index.js +var require_utils = __commonJS({ + "node_modules/@nestjs/common/services/utils/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_filter_log_levels_util(), exports2); + tslib_1.__exportStar(require_is_log_level_enabled_util(), exports2); + tslib_1.__exportStar(require_is_log_level_util(), exports2); + } +}); + +// node_modules/@nestjs/common/services/logger.service.js +var require_logger_service = __commonJS({ + "node_modules/@nestjs/common/services/logger.service.js"(exports2) { + "use strict"; + var Logger_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Logger = exports2.LOG_LEVELS = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var core_12 = require_core(); + var shared_utils_1 = require_shared_utils(); + var console_logger_service_1 = require_console_logger_service(); + var utils_1 = require_utils(); + exports2.LOG_LEVELS = [ + "verbose", + "debug", + "log", + "warn", + "error", + "fatal" + ]; + var DEFAULT_LOGGER = new console_logger_service_1.ConsoleLogger(); + var dateTimeFormatter = new Intl.DateTimeFormat(void 0, { + year: "numeric", + hour: "numeric", + minute: "numeric", + second: "numeric", + day: "2-digit", + month: "2-digit" + }); + var Logger = Logger_1 = class Logger { + static { + __name(this, "Logger"); + } + constructor(context, options = {}) { + this.context = context; + this.options = options; + } + get localInstance() { + if (Logger_1.staticInstanceRef === DEFAULT_LOGGER) { + return this.registerLocalInstanceRef(); + } else if (Logger_1.staticInstanceRef instanceof Logger_1) { + const prototype = Object.getPrototypeOf(Logger_1.staticInstanceRef); + if (prototype.constructor === Logger_1) { + return this.registerLocalInstanceRef(); + } + } + return Logger_1.staticInstanceRef; + } + error(message, ...optionalParams) { + optionalParams = this.context ? (optionalParams.length ? optionalParams : [void 0]).concat(this.context) : optionalParams; + this.localInstance?.error(message, ...optionalParams); + } + log(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.log(message, ...optionalParams); + } + warn(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.warn(message, ...optionalParams); + } + debug(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.debug?.(message, ...optionalParams); + } + verbose(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.verbose?.(message, ...optionalParams); + } + fatal(message, ...optionalParams) { + optionalParams = this.context ? optionalParams.concat(this.context) : optionalParams; + this.localInstance?.fatal?.(message, ...optionalParams); + } + static error(message, ...optionalParams) { + this.staticInstanceRef?.error(message, ...optionalParams); + } + static log(message, ...optionalParams) { + this.staticInstanceRef?.log(message, ...optionalParams); + } + static warn(message, ...optionalParams) { + this.staticInstanceRef?.warn(message, ...optionalParams); + } + static debug(message, ...optionalParams) { + this.staticInstanceRef?.debug?.(message, ...optionalParams); + } + static verbose(message, ...optionalParams) { + this.staticInstanceRef?.verbose?.(message, ...optionalParams); + } + static fatal(message, ...optionalParams) { + this.staticInstanceRef?.fatal?.(message, ...optionalParams); + } + /** + * Print buffered logs and detach buffer. + */ + static flush() { + this.isBufferAttached = false; + this.logBuffer.forEach((item) => item.methodRef(...item.arguments)); + this.logBuffer = []; + } + /** + * Attach buffer. + * Turns on initialization logs buffering. + */ + static attachBuffer() { + this.isBufferAttached = true; + } + /** + * Detach buffer. + * Turns off initialization logs buffering. + */ + static detachBuffer() { + this.isBufferAttached = false; + } + static getTimestamp() { + return dateTimeFormatter.format(Date.now()); + } + static overrideLogger(logger) { + if (Array.isArray(logger)) { + Logger_1.logLevels = logger; + return this.staticInstanceRef?.setLogLevels?.(logger); + } + if ((0, shared_utils_1.isObject)(logger)) { + if (logger instanceof Logger_1 && logger.constructor !== Logger_1) { + const errorMessage = `Using the "extends Logger" instruction is not allowed in Nest v9. Please, use "extends ConsoleLogger" instead.`; + this.staticInstanceRef?.error(errorMessage); + throw new Error(errorMessage); + } + this.staticInstanceRef = logger; + } else { + this.staticInstanceRef = void 0; + } + } + static isLevelEnabled(level) { + const logLevels = Logger_1.logLevels; + return (0, utils_1.isLogLevelEnabled)(level, logLevels); + } + registerLocalInstanceRef() { + if (this.localInstanceRef) { + return this.localInstanceRef; + } + this.localInstanceRef = new console_logger_service_1.ConsoleLogger(this.context, { + timestamp: this.options?.timestamp, + logLevels: Logger_1.logLevels + }); + return this.localInstanceRef; + } + }; + exports2.Logger = Logger; + Logger.logBuffer = new Array(); + Logger.staticInstanceRef = DEFAULT_LOGGER; + Logger.WrapBuffer = (target, propertyKey, descriptor) => { + const originalFn = descriptor.value; + descriptor.value = function(...args) { + if (Logger_1.isBufferAttached) { + Logger_1.logBuffer.push({ + methodRef: originalFn.bind(this), + arguments: args + }); + return; + } + return originalFn.call(this, ...args); + }; + }; + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger.prototype, "error", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger.prototype, "log", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger.prototype, "warn", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger.prototype, "debug", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger.prototype, "verbose", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger.prototype, "fatal", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger, "error", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger, "log", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger, "warn", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger, "debug", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger, "verbose", null); + tslib_1.__decorate([ + Logger.WrapBuffer, + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Object, Object]), + tslib_1.__metadata("design:returntype", void 0) + ], Logger, "fatal", null); + exports2.Logger = Logger = Logger_1 = tslib_1.__decorate([ + (0, core_12.Injectable)(), + tslib_1.__param(0, (0, core_12.Optional)()), + tslib_1.__param(1, (0, core_12.Optional)()), + tslib_1.__metadata("design:paramtypes", [String, Object]) + ], Logger); + } +}); + +// node_modules/@nestjs/common/services/index.js +var require_services = __commonJS({ + "node_modules/@nestjs/common/services/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_console_logger_service(), exports2); + tslib_1.__exportStar(require_logger_service(), exports2); + tslib_1.__exportStar(require_filter_log_levels_util(), exports2); + } +}); + +// node_modules/@nestjs/common/file-stream/streamable-file.js +var require_streamable_file = __commonJS({ + "node_modules/@nestjs/common/file-stream/streamable-file.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.StreamableFile = void 0; + var stream_1 = require("stream"); + var util_1 = require("util"); + var enums_1 = require_enums(); + var services_1 = require_services(); + var shared_utils_1 = require_shared_utils(); + var StreamableFile = class { + static { + __name(this, "StreamableFile"); + } + constructor(bufferOrReadStream, options = {}) { + this.options = options; + this.logger = new services_1.Logger("StreamableFile"); + this.handleError = (err, res) => { + if (res.destroyed) { + return; + } + if (res.headersSent) { + res.end(); + return; + } + res.statusCode = enums_1.HttpStatus.BAD_REQUEST; + res.send(err.message); + }; + this.logError = (err) => { + this.logger.error(err); + }; + if (util_1.types.isUint8Array(bufferOrReadStream)) { + this.stream = new stream_1.Readable(); + this.stream.push(bufferOrReadStream); + this.stream.push(null); + this.options.length ??= bufferOrReadStream.length; + } else if (bufferOrReadStream.pipe && (0, shared_utils_1.isFunction)(bufferOrReadStream.pipe)) { + this.stream = bufferOrReadStream; + } + } + getStream() { + return this.stream; + } + getHeaders() { + const { type = "application/octet-stream", disposition = void 0, length = void 0 } = this.options; + return { + type, + disposition, + length + }; + } + get errorHandler() { + return this.handleError; + } + setErrorHandler(handler) { + this.handleError = handler; + return this; + } + get errorLogger() { + return this.logError; + } + setErrorLogger(handler) { + this.logError = handler; + return this; + } + }; + exports2.StreamableFile = StreamableFile; + } +}); + +// node_modules/@nestjs/common/file-stream/index.js +var require_file_stream = __commonJS({ + "node_modules/@nestjs/common/file-stream/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_streamable_file(), exports2); + } +}); + +// node_modules/@nestjs/common/interfaces/abstract.interface.js +var require_abstract_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/abstract.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.js +var require_controller_metadata_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/controllers/controller.interface.js +var require_controller_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/controllers/controller.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.js +var require_exception_filter_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.js +var require_rpc_exception_filter_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.js +var require_ws_exception_filter_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/external/validation-error.interface.js +var require_validation_error_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/external/validation-error.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/features/arguments-host.interface.js +var require_arguments_host_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/features/arguments-host.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/features/can-activate.interface.js +var require_can_activate_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/features/can-activate.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.js +var require_custom_route_param_factory_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/features/execution-context.interface.js +var require_execution_context_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/features/execution-context.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.js +var require_nest_interceptor_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/features/paramtype.interface.js +var require_paramtype_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/features/paramtype.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.js +var require_pipe_transform_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/global-prefix-options.interface.js +var require_global_prefix_options_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/global-prefix-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.js +var require_before_application_shutdown_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.js +var require_on_application_bootstrap_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.js +var require_on_application_shutdown_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.js +var require_on_destroy_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/hooks/on-init.interface.js +var require_on_init_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/hooks/on-init.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/hooks/index.js +var require_hooks = __commonJS({ + "node_modules/@nestjs/common/interfaces/hooks/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_before_application_shutdown_interface(), exports2); + tslib_1.__exportStar(require_on_application_bootstrap_interface(), exports2); + tslib_1.__exportStar(require_on_application_shutdown_interface(), exports2); + tslib_1.__exportStar(require_on_destroy_interface(), exports2); + tslib_1.__exportStar(require_on_init_interface(), exports2); + } +}); + +// node_modules/@nestjs/common/interfaces/http/http-exception-body.interface.js +var require_http_exception_body_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/http/http-exception-body.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/http/http-redirect-response.interface.js +var require_http_redirect_response_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/http/http-redirect-response.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/http/http-server.interface.js +var require_http_server_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/http/http-server.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/http/message-event.interface.js +var require_message_event_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/http/message-event.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/http/raw-body-request.interface.js +var require_raw_body_request_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/http/raw-body-request.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/http/index.js +var require_http2 = __commonJS({ + "node_modules/@nestjs/common/interfaces/http/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_http_exception_body_interface(), exports2); + tslib_1.__exportStar(require_http_redirect_response_interface(), exports2); + tslib_1.__exportStar(require_http_server_interface(), exports2); + tslib_1.__exportStar(require_message_event_interface(), exports2); + tslib_1.__exportStar(require_raw_body_request_interface(), exports2); + } +}); + +// node_modules/@nestjs/common/interfaces/injectable.interface.js +var require_injectable_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/injectable.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.js +var require_nest_hybrid_application_options_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.js +var require_middleware_config_proxy_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.js +var require_middleware_configuration_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.js +var require_middleware_consumer_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.js +var require_nest_middleware_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/middleware/index.js +var require_middleware = __commonJS({ + "node_modules/@nestjs/common/interfaces/middleware/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_middleware_config_proxy_interface(), exports2); + tslib_1.__exportStar(require_middleware_configuration_interface(), exports2); + tslib_1.__exportStar(require_middleware_consumer_interface(), exports2); + tslib_1.__exportStar(require_nest_middleware_interface(), exports2); + } +}); + +// node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.js +var require_dynamic_module_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.js +var require_forward_reference_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/modules/injection-token.interface.js +var require_injection_token_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/modules/injection-token.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.js +var require_introspection_result_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.js +var require_module_metadata_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/modules/nest-module.interface.js +var require_nest_module_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/modules/nest-module.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/modules/optional-factory-dependency.interface.js +var require_optional_factory_dependency_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/modules/optional-factory-dependency.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/modules/provider.interface.js +var require_provider_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/modules/provider.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/modules/index.js +var require_modules2 = __commonJS({ + "node_modules/@nestjs/common/interfaces/modules/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_dynamic_module_interface(), exports2); + tslib_1.__exportStar(require_forward_reference_interface(), exports2); + tslib_1.__exportStar(require_injection_token_interface(), exports2); + tslib_1.__exportStar(require_introspection_result_interface(), exports2); + tslib_1.__exportStar(require_module_metadata_interface(), exports2); + tslib_1.__exportStar(require_nest_module_interface(), exports2); + tslib_1.__exportStar(require_optional_factory_dependency_interface(), exports2); + tslib_1.__exportStar(require_provider_interface(), exports2); + } +}); + +// node_modules/@nestjs/common/interfaces/nest-application-context.interface.js +var require_nest_application_context_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/nest-application-context.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/nest-application-options.interface.js +var require_nest_application_options_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/nest-application-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/nest-application.interface.js +var require_nest_application_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/nest-application.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/nest-microservice.interface.js +var require_nest_microservice_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/nest-microservice.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/scope-options.interface.js +var require_scope_options_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/scope-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Scope = void 0; + var Scope; + (function(Scope2) { + Scope2[Scope2["DEFAULT"] = 0] = "DEFAULT"; + Scope2[Scope2["TRANSIENT"] = 1] = "TRANSIENT"; + Scope2[Scope2["REQUEST"] = 2] = "REQUEST"; + })(Scope || (exports2.Scope = Scope = {})); + } +}); + +// node_modules/@nestjs/common/interfaces/shutdown-hooks-options.interface.js +var require_shutdown_hooks_options_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/shutdown-hooks-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/type.interface.js +var require_type_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/type.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/version-options.interface.js +var require_version_options_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/version-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.VERSION_NEUTRAL = void 0; + exports2.VERSION_NEUTRAL = /* @__PURE__ */ Symbol("VERSION_NEUTRAL"); + } +}); + +// node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.js +var require_web_socket_adapter_interface = __commonJS({ + "node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/interfaces/index.js +var require_interfaces = __commonJS({ + "node_modules/@nestjs/common/interfaces/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_abstract_interface(), exports2); + tslib_1.__exportStar(require_controller_metadata_interface(), exports2); + tslib_1.__exportStar(require_controller_interface(), exports2); + tslib_1.__exportStar(require_exception_filter_interface(), exports2); + tslib_1.__exportStar(require_rpc_exception_filter_interface(), exports2); + tslib_1.__exportStar(require_ws_exception_filter_interface(), exports2); + tslib_1.__exportStar(require_validation_error_interface(), exports2); + tslib_1.__exportStar(require_arguments_host_interface(), exports2); + tslib_1.__exportStar(require_can_activate_interface(), exports2); + tslib_1.__exportStar(require_custom_route_param_factory_interface(), exports2); + tslib_1.__exportStar(require_execution_context_interface(), exports2); + tslib_1.__exportStar(require_nest_interceptor_interface(), exports2); + tslib_1.__exportStar(require_paramtype_interface(), exports2); + tslib_1.__exportStar(require_pipe_transform_interface(), exports2); + tslib_1.__exportStar(require_global_prefix_options_interface(), exports2); + tslib_1.__exportStar(require_hooks(), exports2); + tslib_1.__exportStar(require_http2(), exports2); + tslib_1.__exportStar(require_injectable_interface(), exports2); + tslib_1.__exportStar(require_nest_hybrid_application_options_interface(), exports2); + tslib_1.__exportStar(require_middleware(), exports2); + tslib_1.__exportStar(require_modules2(), exports2); + tslib_1.__exportStar(require_nest_application_context_interface(), exports2); + tslib_1.__exportStar(require_nest_application_options_interface(), exports2); + tslib_1.__exportStar(require_nest_application_interface(), exports2); + tslib_1.__exportStar(require_nest_microservice_interface(), exports2); + tslib_1.__exportStar(require_scope_options_interface(), exports2); + tslib_1.__exportStar(require_shutdown_hooks_options_interface(), exports2); + tslib_1.__exportStar(require_type_interface(), exports2); + tslib_1.__exportStar(require_version_options_interface(), exports2); + tslib_1.__exportStar(require_web_socket_adapter_interface(), exports2); + } +}); + +// node_modules/@nestjs/common/utils/random-string-generator.util.js +var require_random_string_generator_util = __commonJS({ + "node_modules/@nestjs/common/utils/random-string-generator.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.randomStringGenerator = void 0; + var uid_1 = require_dist(); + var randomStringGenerator = /* @__PURE__ */ __name(() => (0, uid_1.uid)(21), "randomStringGenerator"); + exports2.randomStringGenerator = randomStringGenerator; + } +}); + +// node_modules/@nestjs/common/module-utils/constants.js +var require_constants3 = __commonJS({ + "node_modules/@nestjs/common/module-utils/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ASYNC_OPTIONS_METADATA_KEYS = exports2.CONFIGURABLE_MODULE_ID = exports2.ASYNC_METHOD_SUFFIX = exports2.DEFAULT_FACTORY_CLASS_METHOD_KEY = exports2.DEFAULT_METHOD_KEY = void 0; + exports2.DEFAULT_METHOD_KEY = "register"; + exports2.DEFAULT_FACTORY_CLASS_METHOD_KEY = "create"; + exports2.ASYNC_METHOD_SUFFIX = "Async"; + exports2.CONFIGURABLE_MODULE_ID = "CONFIGURABLE_MODULE_ID"; + exports2.ASYNC_OPTIONS_METADATA_KEYS = [ + "useFactory", + "useClass", + "useExisting", + "inject", + "imports", + "provideInjectionTokensFrom" + ]; + } +}); + +// node_modules/@nestjs/common/module-utils/utils/generate-options-injection-token.util.js +var require_generate_options_injection_token_util = __commonJS({ + "node_modules/@nestjs/common/module-utils/utils/generate-options-injection-token.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.generateOptionsInjectionToken = generateOptionsInjectionToken; + var random_string_generator_util_1 = require_random_string_generator_util(); + function generateOptionsInjectionToken() { + const hash = (0, random_string_generator_util_1.randomStringGenerator)(); + return `CONFIGURABLE_MODULE_OPTIONS[${hash}]`; + } + __name(generateOptionsInjectionToken, "generateOptionsInjectionToken"); + } +}); + +// node_modules/@nestjs/common/module-utils/utils/get-injection-providers.util.js +var require_get_injection_providers_util = __commonJS({ + "node_modules/@nestjs/common/module-utils/utils/get-injection-providers.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getInjectionProviders = getInjectionProviders; + var shared_utils_1 = require_shared_utils(); + function isOptionalFactoryDependency(value) { + return !(0, shared_utils_1.isUndefined)(value.token) && !(0, shared_utils_1.isUndefined)(value.optional) && !value.prototype; + } + __name(isOptionalFactoryDependency, "isOptionalFactoryDependency"); + var mapInjectToTokens = /* @__PURE__ */ __name((t) => isOptionalFactoryDependency(t) ? t.token : t, "mapInjectToTokens"); + function getInjectionProviders(providers, tokens) { + const result = []; + let search = tokens.map(mapInjectToTokens); + while (search.length > 0) { + const match = (providers ?? []).filter((p) => !result.includes(p) && // this prevents circular loops and duplication + (search.includes(p) || search.includes(p?.provide))); + result.push(...match); + search = match.filter((p) => p?.inject).flatMap((p) => p.inject).map(mapInjectToTokens); + } + return result; + } + __name(getInjectionProviders, "getInjectionProviders"); + } +}); + +// node_modules/@nestjs/common/module-utils/utils/index.js +var require_utils2 = __commonJS({ + "node_modules/@nestjs/common/module-utils/utils/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_generate_options_injection_token_util(), exports2); + tslib_1.__exportStar(require_get_injection_providers_util(), exports2); + } +}); + +// node_modules/@nestjs/common/module-utils/configurable-module.builder.js +var require_configurable_module_builder = __commonJS({ + "node_modules/@nestjs/common/module-utils/configurable-module.builder.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConfigurableModuleBuilder = void 0; + var logger_service_1 = require_logger_service(); + var random_string_generator_util_1 = require_random_string_generator_util(); + var constants_1 = require_constants3(); + var utils_1 = require_utils2(); + var ConfigurableModuleBuilder = class _ConfigurableModuleBuilder { + static { + __name(this, "ConfigurableModuleBuilder"); + } + constructor(options = {}, parentBuilder) { + this.options = options; + this.logger = new logger_service_1.Logger(_ConfigurableModuleBuilder.name); + if (parentBuilder) { + this.staticMethodKey = parentBuilder.staticMethodKey; + this.factoryClassMethodKey = parentBuilder.factoryClassMethodKey; + this.transformModuleDefinition = parentBuilder.transformModuleDefinition; + this.extras = parentBuilder.extras; + } + } + /** + * Registers the "extras" object (a set of extra options that can be used to modify the dynamic module definition). + * Values you specify within the "extras" object will be used as default values (that can be overridden by module consumers). + * + * This method also applies the so-called "module definition transform function" that takes the auto-generated + * dynamic module object ("DynamicModule") and the actual consumer "extras" object as input parameters. + * The "extras" object consists of values explicitly specified by module consumers and default values. + * + * @example + * ```typescript + * .setExtras<{ isGlobal?: boolean }>({ isGlobal: false }, (definition, extras) => + * ({ ...definition, global: extras.isGlobal }) + * ) + * ``` + */ + setExtras(extras, transformDefinition = (def) => def) { + const builder = new _ConfigurableModuleBuilder(this.options, this); + builder.extras = extras; + builder.transformModuleDefinition = transformDefinition; + return builder; + } + /** + * Dynamic modules must expose public static methods that let you pass in + * configuration parameters (control the module's behavior from the outside). + * Some frequently used names that you may have seen in other modules are: + * "forRoot", "forFeature", "register", "configure". + * + * This method "setClassMethodName" lets you specify the name of the + * method that will be auto-generated. + * + * @param key name of the method + */ + setClassMethodName(key) { + const builder = new _ConfigurableModuleBuilder(this.options, this); + builder.staticMethodKey = key; + return builder; + } + /** + * Asynchronously configured modules (that rely on other modules, i.e. "ConfigModule") + * let you pass the configuration factory class that will be registered and instantiated as a provider. + * This provider then will be used to retrieve the module's configuration. To provide the configuration, + * the corresponding factory method must be implemented. + * + * This method ("setFactoryMethodName") lets you control what method name will have to be + * implemented by the config factory (default is "create"). + * + * @param key name of the method + */ + setFactoryMethodName(key) { + const builder = new _ConfigurableModuleBuilder(this.options, this); + builder.factoryClassMethodKey = key; + return builder; + } + /** + * Returns an object consisting of multiple properties that lets you + * easily construct dynamic configurable modules. See "ConfigurableModuleHost" interface for more details. + */ + build() { + this.staticMethodKey ??= constants_1.DEFAULT_METHOD_KEY; + this.factoryClassMethodKey ??= constants_1.DEFAULT_FACTORY_CLASS_METHOD_KEY; + this.options.optionsInjectionToken ??= this.options.moduleName ? this.constructInjectionTokenString() : (0, utils_1.generateOptionsInjectionToken)(); + this.transformModuleDefinition ??= (definition) => definition; + return { + ConfigurableModuleClass: this.createConfigurableModuleCls(), + MODULE_OPTIONS_TOKEN: this.options.optionsInjectionToken, + ASYNC_OPTIONS_TYPE: this.createTypeProxy("ASYNC_OPTIONS_TYPE"), + OPTIONS_TYPE: this.createTypeProxy("OPTIONS_TYPE") + }; + } + constructInjectionTokenString() { + const moduleNameInSnakeCase = this.options.moduleName.trim().split(/(?=[A-Z])/).join("_").toUpperCase(); + return `${moduleNameInSnakeCase}_MODULE_OPTIONS`; + } + createConfigurableModuleCls() { + const self2 = this; + const asyncMethodKey = this.staticMethodKey + constants_1.ASYNC_METHOD_SUFFIX; + class InternalModuleClass { + static { + __name(this, "InternalModuleClass"); + } + static [self2.staticMethodKey](options) { + const providers = [ + { + provide: self2.options.optionsInjectionToken, + useValue: this.omitExtras(options, self2.extras) + } + ]; + if (self2.options.alwaysTransient) { + providers.push({ + provide: constants_1.CONFIGURABLE_MODULE_ID, + useValue: (0, random_string_generator_util_1.randomStringGenerator)() + }); + } + return self2.transformModuleDefinition({ + module: this, + providers + }, { + ...self2.extras, + ...options + }); + } + static [asyncMethodKey](options) { + const providers = this.createAsyncProviders(options); + if (self2.options.alwaysTransient) { + providers.push({ + provide: constants_1.CONFIGURABLE_MODULE_ID, + useValue: (0, random_string_generator_util_1.randomStringGenerator)() + }); + } + return self2.transformModuleDefinition({ + module: this, + imports: options.imports || [], + providers + }, { + ...self2.extras, + ...this.extractExtrasFromAsyncOptions(options, self2.extras) + }); + } + static omitExtras(input, extras) { + if (!extras) { + return input; + } + const moduleOptions = {}; + const extrasKeys = Object.keys(extras); + Object.keys(input).filter((key) => !extrasKeys.includes(key)).forEach((key) => { + moduleOptions[key] = input[key]; + }); + return moduleOptions; + } + static extractExtrasFromAsyncOptions(input, extras) { + if (!extras) { + return {}; + } + const extrasOptions = {}; + Object.keys(input).filter((key) => !constants_1.ASYNC_OPTIONS_METADATA_KEYS.includes(key)).forEach((key) => { + extrasOptions[key] = input[key]; + }); + return extrasOptions; + } + static createAsyncProviders(options) { + if (options.useExisting || options.useFactory) { + if (options.inject && options.provideInjectionTokensFrom) { + return [ + this.createAsyncOptionsProvider(options), + ...(0, utils_1.getInjectionProviders)(options.provideInjectionTokensFrom, options.inject) + ]; + } + return [this.createAsyncOptionsProvider(options)]; + } + return [ + this.createAsyncOptionsProvider(options), + { + provide: options.useClass, + useClass: options.useClass + } + ]; + } + static createAsyncOptionsProvider(options) { + if (options.useFactory) { + return { + provide: self2.options.optionsInjectionToken, + useFactory: options.useFactory, + inject: options.inject || [] + }; + } + return { + provide: self2.options.optionsInjectionToken, + useFactory: /* @__PURE__ */ __name(async (optionsFactory) => await optionsFactory[self2.factoryClassMethodKey](), "useFactory"), + inject: [options.useExisting || options.useClass] + }; + } + } + return InternalModuleClass; + } + createTypeProxy(typeName) { + const proxy = new Proxy({}, { + get: /* @__PURE__ */ __name(() => { + throw new Error(`"${typeName}" is not supposed to be used as a value.`); + }, "get") + }); + return proxy; + } + }; + exports2.ConfigurableModuleBuilder = ConfigurableModuleBuilder; + } +}); + +// node_modules/@nestjs/common/module-utils/interfaces/configurable-module-async-options.interface.js +var require_configurable_module_async_options_interface = __commonJS({ + "node_modules/@nestjs/common/module-utils/interfaces/configurable-module-async-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/module-utils/interfaces/configurable-module-cls.interface.js +var require_configurable_module_cls_interface = __commonJS({ + "node_modules/@nestjs/common/module-utils/interfaces/configurable-module-cls.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/module-utils/interfaces/configurable-module-host.interface.js +var require_configurable_module_host_interface = __commonJS({ + "node_modules/@nestjs/common/module-utils/interfaces/configurable-module-host.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/module-utils/interfaces/index.js +var require_interfaces2 = __commonJS({ + "node_modules/@nestjs/common/module-utils/interfaces/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_configurable_module_async_options_interface(), exports2); + tslib_1.__exportStar(require_configurable_module_cls_interface(), exports2); + tslib_1.__exportStar(require_configurable_module_host_interface(), exports2); + } +}); + +// node_modules/@nestjs/common/module-utils/index.js +var require_module_utils = __commonJS({ + "node_modules/@nestjs/common/module-utils/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_configurable_module_builder(), exports2); + tslib_1.__exportStar(require_interfaces2(), exports2); + } +}); + +// node_modules/@nestjs/common/pipes/default-value.pipe.js +var require_default_value_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/default-value.pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DefaultValuePipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var injectable_decorator_1 = require_injectable_decorator(); + var shared_utils_1 = require_shared_utils(); + var DefaultValuePipe = class DefaultValuePipe { + static { + __name(this, "DefaultValuePipe"); + } + constructor(defaultValue) { + this.defaultValue = defaultValue; + } + transform(value, _metadata) { + if ((0, shared_utils_1.isNil)(value) || (0, shared_utils_1.isNumber)(value) && isNaN(value)) { + return this.defaultValue; + } + return value; + } + }; + exports2.DefaultValuePipe = DefaultValuePipe; + exports2.DefaultValuePipe = DefaultValuePipe = tslib_1.__decorate([ + (0, injectable_decorator_1.Injectable)(), + tslib_1.__metadata("design:paramtypes", [Object]) + ], DefaultValuePipe); + } +}); + +// node_modules/@nestjs/common/pipes/file/file-validator.interface.js +var require_file_validator_interface = __commonJS({ + "node_modules/@nestjs/common/pipes/file/file-validator.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.FileValidator = void 0; + var FileValidator = class { + static { + __name(this, "FileValidator"); + } + constructor(validationOptions) { + this.validationOptions = validationOptions; + } + }; + exports2.FileValidator = FileValidator; + } +}); + +// node_modules/load-esm/index.js +var require_load_esm = __commonJS({ + "node_modules/load-esm/index.js"(exports2, module2) { + module2.exports = { + loadEsm: /* @__PURE__ */ __name((module3) => import(module3), "loadEsm") + }; + } +}); + +// node_modules/@nestjs/common/pipes/file/file-type.validator.js +var require_file_type_validator = __commonJS({ + "node_modules/@nestjs/common/pipes/file/file-type.validator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.FileTypeValidator = void 0; + var url_1 = require("url"); + var logger_service_1 = require_logger_service(); + var file_validator_interface_1 = require_file_validator_interface(); + var load_esm_1 = require_load_esm(); + var logger = new logger_service_1.Logger("FileTypeValidator"); + var FileTypeValidator = class extends file_validator_interface_1.FileValidator { + static { + __name(this, "FileTypeValidator"); + } + buildErrorMessage(file) { + const { errorMessage, ...config } = this.validationOptions; + if (errorMessage) { + return typeof errorMessage === "function" ? errorMessage({ file, config }) : errorMessage; + } + if (file?.mimetype && !file.buffer && !this.validationOptions?.fallbackToMimetype && !this.validationOptions?.skipMagicNumbersValidation) { + return `Validation failed (file buffer is not available; file type validation could not be performed; expected type is ${this.validationOptions.fileType})`; + } + if (file?.mimetype) { + const baseMessage = `Validation failed (current file type is ${file.mimetype}, expected type is ${this.validationOptions.fileType})`; + if (this.validationOptions.fallbackToMimetype) { + return `${baseMessage} - magic number detection failed, used mimetype fallback`; + } + return baseMessage; + } + return `Validation failed (expected type is ${this.validationOptions.fileType})`; + } + async isValid(file) { + if (!this.validationOptions) { + return true; + } + const isFileValid = !!file && "mimetype" in file; + if (this.validationOptions.skipMagicNumbersValidation) { + return isFileValid && !!file.mimetype.match(this.validationOptions.fileType); + } + if (!isFileValid) + return false; + if (!file.buffer) { + if (this.validationOptions.fallbackToMimetype) { + return !!file.mimetype.match(this.validationOptions.fileType); + } + return false; + } + try { + let fileTypeModule; + try { + const resolvedPath = require.resolve("file-type"); + fileTypeModule = (0, url_1.pathToFileURL)(resolvedPath).href; + } catch { + fileTypeModule = "file-type"; + } + const { fileTypeFromBuffer } = await (0, load_esm_1.loadEsm)(fileTypeModule); + const fileType = await fileTypeFromBuffer(file.buffer); + if (fileType) { + return !!fileType.mime.match(this.validationOptions.fileType); + } + if (this.validationOptions.fallbackToMimetype) { + return !!file.mimetype.match(this.validationOptions.fileType); + } + return false; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error); + if (errorMessage.includes("ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING") || errorMessage.includes("Cannot find module") || errorMessage.includes("ERR_MODULE_NOT_FOUND")) { + logger.warn(`Failed to load the "file-type" package for magic number validation. If you are using Jest, run it with NODE_OPTIONS="--experimental-vm-modules". Error: ${errorMessage}`); + } + if (this.validationOptions.fallbackToMimetype) { + return !!file.mimetype.match(this.validationOptions.fileType); + } + return false; + } + } + }; + exports2.FileTypeValidator = FileTypeValidator; + } +}); + +// node_modules/@nestjs/common/pipes/file/max-file-size.validator.js +var require_max_file_size_validator = __commonJS({ + "node_modules/@nestjs/common/pipes/file/max-file-size.validator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MaxFileSizeValidator = void 0; + var file_validator_interface_1 = require_file_validator_interface(); + var MaxFileSizeValidator = class extends file_validator_interface_1.FileValidator { + static { + __name(this, "MaxFileSizeValidator"); + } + buildErrorMessage(file) { + const { errorMessage, message, ...config } = this.validationOptions; + if (errorMessage) { + return typeof errorMessage === "function" ? errorMessage({ file, config }) : errorMessage; + } + if (message) { + return typeof message === "function" ? message(this.validationOptions.maxSize) : message; + } + if (file?.size) { + return `Validation failed (current file size is ${file.size}, expected size is less than ${this.validationOptions.maxSize})`; + } + return `Validation failed (expected size is less than ${this.validationOptions.maxSize})`; + } + isValid(file) { + if (!this.validationOptions || !file) { + return true; + } + return "size" in file && file.size < this.validationOptions.maxSize; + } + }; + exports2.MaxFileSizeValidator = MaxFileSizeValidator; + } +}); + +// node_modules/@nestjs/common/pipes/file/parse-file-options.interface.js +var require_parse_file_options_interface = __commonJS({ + "node_modules/@nestjs/common/pipes/file/parse-file-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/utils/http-error-by-code.util.js +var require_http_error_by_code_util = __commonJS({ + "node_modules/@nestjs/common/utils/http-error-by-code.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HttpErrorByCode = void 0; + var enums_1 = require_enums(); + var exceptions_1 = require_exceptions(); + exports2.HttpErrorByCode = { + [enums_1.HttpStatus.BAD_GATEWAY]: exceptions_1.BadGatewayException, + [enums_1.HttpStatus.BAD_REQUEST]: exceptions_1.BadRequestException, + [enums_1.HttpStatus.CONFLICT]: exceptions_1.ConflictException, + [enums_1.HttpStatus.FORBIDDEN]: exceptions_1.ForbiddenException, + [enums_1.HttpStatus.GATEWAY_TIMEOUT]: exceptions_1.GatewayTimeoutException, + [enums_1.HttpStatus.GONE]: exceptions_1.GoneException, + [enums_1.HttpStatus.HTTP_VERSION_NOT_SUPPORTED]: exceptions_1.HttpVersionNotSupportedException, + [enums_1.HttpStatus.I_AM_A_TEAPOT]: exceptions_1.ImATeapotException, + [enums_1.HttpStatus.INTERNAL_SERVER_ERROR]: exceptions_1.InternalServerErrorException, + [enums_1.HttpStatus.METHOD_NOT_ALLOWED]: exceptions_1.MethodNotAllowedException, + [enums_1.HttpStatus.MISDIRECTED]: exceptions_1.MisdirectedException, + [enums_1.HttpStatus.NOT_ACCEPTABLE]: exceptions_1.NotAcceptableException, + [enums_1.HttpStatus.NOT_FOUND]: exceptions_1.NotFoundException, + [enums_1.HttpStatus.NOT_IMPLEMENTED]: exceptions_1.NotImplementedException, + [enums_1.HttpStatus.PAYLOAD_TOO_LARGE]: exceptions_1.PayloadTooLargeException, + [enums_1.HttpStatus.PRECONDITION_FAILED]: exceptions_1.PreconditionFailedException, + [enums_1.HttpStatus.REQUEST_TIMEOUT]: exceptions_1.RequestTimeoutException, + [enums_1.HttpStatus.SERVICE_UNAVAILABLE]: exceptions_1.ServiceUnavailableException, + [enums_1.HttpStatus.UNAUTHORIZED]: exceptions_1.UnauthorizedException, + [enums_1.HttpStatus.UNPROCESSABLE_ENTITY]: exceptions_1.UnprocessableEntityException, + [enums_1.HttpStatus.UNSUPPORTED_MEDIA_TYPE]: exceptions_1.UnsupportedMediaTypeException + }; + } +}); + +// node_modules/@nestjs/common/pipes/file/parse-file.pipe.js +var require_parse_file_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/file/parse-file.pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParseFilePipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var core_12 = require_core(); + var enums_1 = require_enums(); + var http_error_by_code_util_1 = require_http_error_by_code_util(); + var shared_utils_1 = require_shared_utils(); + var ParseFilePipe = class ParseFilePipe { + static { + __name(this, "ParseFilePipe"); + } + constructor(options = {}) { + const { exceptionFactory, errorHttpStatusCode = enums_1.HttpStatus.BAD_REQUEST, validators = [], fileIsRequired } = options; + this.exceptionFactory = exceptionFactory || ((error) => new http_error_by_code_util_1.HttpErrorByCode[errorHttpStatusCode](error)); + this.validators = validators; + this.fileIsRequired = fileIsRequired ?? true; + } + async transform(value) { + const areThereAnyFilesIn = this.thereAreNoFilesIn(value); + if (areThereAnyFilesIn && this.fileIsRequired) { + throw this.exceptionFactory("File is required"); + } + if (!areThereAnyFilesIn && this.validators.length) { + await this.validateFilesOrFile(value); + } + return value; + } + async validateFilesOrFile(value) { + if (Array.isArray(value)) { + await Promise.all(value.map((f) => this.validate(f))); + } else { + await this.validate(value); + } + } + thereAreNoFilesIn(value) { + const isEmptyArray = Array.isArray(value) && (0, shared_utils_1.isEmpty)(value); + const isEmptyObject = (0, shared_utils_1.isObject)(value) && (0, shared_utils_1.isEmpty)(Object.keys(value)); + return (0, shared_utils_1.isUndefined)(value) || isEmptyArray || isEmptyObject; + } + async validate(file) { + for (const validator of this.validators) { + await this.validateOrThrow(file, validator); + } + return file; + } + async validateOrThrow(file, validator) { + const isValid = await validator.isValid(file); + if (!isValid) { + const errorMessage = validator.buildErrorMessage(file); + throw this.exceptionFactory(errorMessage); + } + } + /** + * @returns list of validators used in this pipe. + */ + getValidators() { + return this.validators; + } + }; + exports2.ParseFilePipe = ParseFilePipe; + exports2.ParseFilePipe = ParseFilePipe = tslib_1.__decorate([ + (0, core_12.Injectable)(), + tslib_1.__param(0, (0, core_12.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object]) + ], ParseFilePipe); + } +}); + +// node_modules/@nestjs/common/pipes/file/parse-file-pipe.builder.js +var require_parse_file_pipe_builder = __commonJS({ + "node_modules/@nestjs/common/pipes/file/parse-file-pipe.builder.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParseFilePipeBuilder = void 0; + var file_type_validator_1 = require_file_type_validator(); + var max_file_size_validator_1 = require_max_file_size_validator(); + var parse_file_pipe_1 = require_parse_file_pipe(); + var ParseFilePipeBuilder = class { + static { + __name(this, "ParseFilePipeBuilder"); + } + constructor() { + this.validators = []; + } + addMaxSizeValidator(options) { + return this.addValidator(new max_file_size_validator_1.MaxFileSizeValidator(options)); + } + addFileTypeValidator(options) { + return this.addValidator(new file_type_validator_1.FileTypeValidator(options)); + } + addValidator(validator) { + this.validators.push(validator); + return this; + } + build(additionalOptions) { + const parseFilePipe = new parse_file_pipe_1.ParseFilePipe({ + ...additionalOptions, + validators: this.validators + }); + this.validators = []; + return parseFilePipe; + } + }; + exports2.ParseFilePipeBuilder = ParseFilePipeBuilder; + } +}); + +// node_modules/@nestjs/common/pipes/file/index.js +var require_file = __commonJS({ + "node_modules/@nestjs/common/pipes/file/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_file_type_validator(), exports2); + tslib_1.__exportStar(require_file_validator_interface(), exports2); + tslib_1.__exportStar(require_max_file_size_validator(), exports2); + tslib_1.__exportStar(require_parse_file_options_interface(), exports2); + tslib_1.__exportStar(require_parse_file_pipe(), exports2); + tslib_1.__exportStar(require_parse_file_pipe_builder(), exports2); + } +}); + +// node_modules/iterare/lib/concat.js +var require_concat = __commonJS({ + "node_modules/iterare/lib/concat.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var ConcatIterator = class { + static { + __name(this, "ConcatIterator"); + } + constructor(toConcat) { + this.toConcat = toConcat; + } + next() { + if (this.toConcat.length === 0) { + return { done: true }; + } + const result = this.toConcat[0].next(); + if (!result.done) { + return result; + } + this.toConcat.shift(); + return this.next(); + } + }; + exports2.ConcatIterator = ConcatIterator; + } +}); + +// node_modules/iterare/lib/filter.js +var require_filter = __commonJS({ + "node_modules/iterare/lib/filter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var FilterIterator = class { + static { + __name(this, "FilterIterator"); + } + constructor(source, predicate) { + this.source = source; + this.predicate = predicate; + } + next() { + let result; + do { + result = this.source.next(); + } while (!result.done && !this.predicate(result.value)); + return result; + } + }; + exports2.FilterIterator = FilterIterator; + } +}); + +// node_modules/iterare/lib/utils.js +var require_utils3 = __commonJS({ + "node_modules/iterare/lib/utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + function isIterator(candidate) { + return typeof candidate === "object" && candidate !== null && typeof candidate.next === "function"; + } + __name(isIterator, "isIterator"); + exports2.isIterator = isIterator; + function isIterable(candidate) { + return typeof candidate === "object" && candidate !== null && typeof candidate[Symbol.iterator] === "function"; + } + __name(isIterable, "isIterable"); + exports2.isIterable = isIterable; + function toIterator(collection) { + if (isIterator(collection)) { + return collection; + } + if (isIterable(collection)) { + return collection[Symbol.iterator](); + } + throw new Error("Passed collection is neither an Iterator nor an Iterable"); + } + __name(toIterator, "toIterator"); + exports2.toIterator = toIterator; + } +}); + +// node_modules/iterare/lib/flatten.js +var require_flatten = __commonJS({ + "node_modules/iterare/lib/flatten.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var utils_1 = require_utils3(); + var FlattenIterator = class { + static { + __name(this, "FlattenIterator"); + } + constructor(outer) { + this.outer = outer; + } + next() { + if (this.inner) { + const result = this.inner.next(); + if (!result.done) { + return result; + } + this.inner = void 0; + } + const { value, done } = this.outer.next(); + if (utils_1.isIterable(value)) { + this.inner = value[Symbol.iterator](); + return this.next(); + } + return { value, done }; + } + }; + exports2.FlattenIterator = FlattenIterator; + } +}); + +// node_modules/iterare/lib/map.js +var require_map = __commonJS({ + "node_modules/iterare/lib/map.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var MapIterator = class { + static { + __name(this, "MapIterator"); + } + constructor(source, iteratee) { + this.source = source; + this.iteratee = iteratee; + } + next() { + const { value, done } = this.source.next(); + return { value: !done && this.iteratee(value), done }; + } + }; + exports2.MapIterator = MapIterator; + } +}); + +// node_modules/iterare/lib/slice.js +var require_slice = __commonJS({ + "node_modules/iterare/lib/slice.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var SliceIterator = class { + static { + __name(this, "SliceIterator"); + } + /** + * @param {Iterator} source Source Iterator + * @param {number} start Zero-based positive start index, inclusive + * @param {number} end Zero-based positive end index, exclusive, defaults to end of iterator + */ + constructor(source, start, end = Infinity) { + this.source = source; + this.start = start; + this.end = end; + this.i = 0; + } + next() { + while (this.i < this.start) { + const result = this.source.next(); + if (result.done) { + return result; + } + this.i++; + } + this.i++; + if (this.i >= this.end) { + return { done: true }; + } + return this.source.next(); + } + }; + exports2.SliceIterator = SliceIterator; + } +}); + +// node_modules/iterare/lib/zip.js +var require_zip = __commonJS({ + "node_modules/iterare/lib/zip.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var ZipIterator = class { + static { + __name(this, "ZipIterator"); + } + constructor(a, b) { + this.a = a; + this.b = b; + } + next() { + const a = this.a.next(); + if (a.done) { + return { done: true }; + } + const b = this.b.next(); + if (b.done) { + return { done: true }; + } + return { value: [a.value, b.value], done: false }; + } + }; + exports2.ZipIterator = ZipIterator; + } +}); + +// node_modules/iterare/lib/iterate.js +var require_iterate = __commonJS({ + "node_modules/iterare/lib/iterate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var concat_1 = require_concat(); + var filter_1 = require_filter(); + var flatten_1 = require_flatten(); + var map_1 = require_map(); + var slice_1 = require_slice(); + var utils_1 = require_utils3(); + var zip_1 = require_zip(); + var IteratorWithOperators = class _IteratorWithOperators { + static { + __name(this, "IteratorWithOperators"); + } + /** + * @param source Iterator to wrap + */ + constructor(source) { + this.source = source; + } + /** + * Returns a `{ value, done }` object that adheres to the Iterator protocol + */ + next() { + return this.source.next(); + } + /** + * The presence of this method makes the Iterator itself Iterable. + * This makes it possible to pass it to `for of` and Iterable-accepting functions like `Array.from()` + */ + [Symbol.iterator]() { + return this; + } + /** + * Returns a new Iterator by running each element thru iteratee + */ + map(iteratee) { + return new _IteratorWithOperators(new map_1.MapIterator(this.source, iteratee)); + } + filter(predicate) { + return new _IteratorWithOperators(new filter_1.FilterIterator(this.source, predicate)); + } + /** + * Returns a new Iterator concatenating the Iterator with an additional Iterator or Iterable + */ + concat(collection) { + return new _IteratorWithOperators(new concat_1.ConcatIterator([this.source, utils_1.toIterator(collection)])); + } + /** + * Returns a new Iterator that emits slice of the source with n elements taken from the beginning + * + * @param limit The number of elements to take. + */ + take(limit) { + return new _IteratorWithOperators(new slice_1.SliceIterator(this.source, 0, limit + 1)); + } + /** + * Returns a new Iterator that emits slice of the source with n elements dropped from the beginning + * + * @param n The number of elements to drop. + */ + drop(n) { + return new _IteratorWithOperators(new slice_1.SliceIterator(this.source, n, Infinity)); + } + /** + * Returns a new Iterator that emits a slice of the source + * + * @param {number} start Zero-based positive start index, inclusive + * @param {number} end Zero-based positive end index, exclusive, defaults to end of iterator + */ + slice(start, end = Infinity) { + return new _IteratorWithOperators(new slice_1.SliceIterator(this.source, start, end)); + } + /** + * Returns a new Iterator that flattens items emitted by the Iterator a single level deep + */ + flatten() { + return new _IteratorWithOperators(new flatten_1.FlattenIterator(this.source)); + } + reduce(iteratee, accumulator) { + let result; + if (accumulator === void 0) { + result = this.source.next(); + if (result.done) { + throw new TypeError("Reduce of empty Iterator with no initial value"); + } + accumulator = result.value; + } + while (true) { + result = this.source.next(); + if (result.done) { + break; + } + accumulator = iteratee(accumulator, result.value); + } + return accumulator; + } + find(predicate) { + let result; + while (true) { + result = this.source.next(); + if (result.done) { + return void 0; + } + if (predicate(result.value)) { + return result.value; + } + } + } + /** + * Iterates and checks if `value` is emitted by the Iterator + * + * @param value The value to search + */ + includes(value) { + let result; + do { + result = this.source.next(); + if (!result.done && result.value === value) { + return true; + } + } while (!result.done); + return false; + } + /** + * Iterates and checks if `predicate` returns truthy for any element emitted by the Iterator + */ + some(predicate) { + let result; + do { + result = this.source.next(); + if (!result.done && predicate(result.value)) { + return true; + } + } while (!result.done); + return false; + } + /** + * Iterates and checks if `predicate` returns truthy for all elements emitted by the Iterator + */ + every(predicate) { + let result; + do { + result = this.source.next(); + if (!result.done && !predicate(result.value)) { + return false; + } + } while (!result.done); + return true; + } + /** + * Iterates and invokes `iteratee` for every element emitted by the Iterator + */ + forEach(iteratee) { + let result; + while (true) { + result = this.source.next(); + if (result.done) { + break; + } + iteratee(result.value); + } + } + /** + * Iterates and joins all elements emitted by the Iterator together as a string separated by an optional separator + */ + join(separator = ",") { + let joined = ""; + let result; + while (true) { + result = this.source.next(); + if (result.done) { + break; + } + joined += separator + result.value; + } + return joined.substr(separator.length); + } + /** + * Iterates and returns all items emitted by the Iterator as an array. + * Equivalent to passing the Iterator to `Array.from()` + */ + toArray() { + return Array.from(this); + } + /** + * Iterates and returns all items emitted by the Iterator as an ES6 Set. + * Equivalent to passing the Iterator to `new Set()` + */ + toSet() { + const set = /* @__PURE__ */ new Set(); + while (true) { + const { value, done } = this.next(); + if (done) { + return set; + } + set.add(value); + } + } + /** + * Iterates and returns all `[key, value]` paris emitted by the Iterator as an ES6 Map. + * Equivalent to passing the Iterator to `new Map()` + */ + toMap() { + return new Map(this); + } + }; + exports2.IteratorWithOperators = IteratorWithOperators; + function iterate(collection) { + return new IteratorWithOperators(utils_1.toIterator(collection)); + } + __name(iterate, "iterate"); + exports2.iterate = iterate; + function zip(a, b) { + return new IteratorWithOperators(new zip_1.ZipIterator(utils_1.toIterator(a), utils_1.toIterator(b))); + } + __name(zip, "zip"); + exports2.zip = zip; + exports2.default = iterate; + } +}); + +// node_modules/iterare/lib/index.js +var require_lib = __commonJS({ + "node_modules/iterare/lib/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var iterate_1 = require_iterate(); + exports2.iterate = iterate_1.iterate; + exports2.zip = iterate_1.zip; + exports2.default = iterate_1.iterate; + } +}); + +// node_modules/@nestjs/common/utils/load-package.util.js +var require_load_package_util = __commonJS({ + "node_modules/@nestjs/common/utils/load-package.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.loadPackage = loadPackage; + var logger_service_1 = require_logger_service(); + var MISSING_REQUIRED_DEPENDENCY = /* @__PURE__ */ __name((name, reason) => `The "${name}" package is missing. Please, make sure to install it to take advantage of ${reason}.`, "MISSING_REQUIRED_DEPENDENCY"); + var logger = new logger_service_1.Logger("PackageLoader"); + function loadPackage(packageName, context, loaderFn) { + try { + return loaderFn ? loaderFn() : require(packageName); + } catch (e) { + logger.error(MISSING_REQUIRED_DEPENDENCY(packageName, context)); + logger_service_1.Logger.flush(); + process.exit(1); + } + } + __name(loadPackage, "loadPackage"); + } +}); + +// node_modules/class-validator/cjs/metadata/ValidationMetadata.js +var require_ValidationMetadata = __commonJS({ + "node_modules/class-validator/cjs/metadata/ValidationMetadata.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidationMetadata = void 0; + var ValidationMetadata = class { + static { + __name(this, "ValidationMetadata"); + } + // ------------------------------------------------------------------------- + // Constructor + // ------------------------------------------------------------------------- + constructor(args) { + this.groups = []; + this.each = false; + this.context = void 0; + this.type = args.type; + this.name = args.name; + this.target = args.target; + this.propertyName = args.propertyName; + this.constraints = args === null || args === void 0 ? void 0 : args.constraints; + this.constraintCls = args.constraintCls; + this.validationTypeOptions = args.validationTypeOptions; + if (args.validationOptions) { + this.message = args.validationOptions.message; + this.groups = args.validationOptions.groups; + this.always = args.validationOptions.always; + this.each = args.validationOptions.each; + this.context = args.validationOptions.context; + this.validateIf = args.validationOptions.validateIf; + } + } + }; + exports2.ValidationMetadata = ValidationMetadata; + } +}); + +// node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js +var require_ValidationSchemaToMetadataTransformer = __commonJS({ + "node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidationSchemaToMetadataTransformer = void 0; + var ValidationMetadata_1 = require_ValidationMetadata(); + var ValidationSchemaToMetadataTransformer = class { + static { + __name(this, "ValidationSchemaToMetadataTransformer"); + } + transform(schema) { + const metadatas = []; + Object.keys(schema.properties).forEach((property) => { + schema.properties[property].forEach((validation) => { + const validationOptions = { + message: validation.message, + groups: validation.groups, + always: validation.always, + each: validation.each + }; + const args = { + type: validation.type, + name: validation.name, + target: schema.name, + propertyName: property, + constraints: validation.constraints, + validationTypeOptions: validation.options, + validationOptions + }; + metadatas.push(new ValidationMetadata_1.ValidationMetadata(args)); + }); + }); + return metadatas; + } + }; + exports2.ValidationSchemaToMetadataTransformer = ValidationSchemaToMetadataTransformer; + } +}); + +// node_modules/class-validator/cjs/utils/convert-to-array.util.js +var require_convert_to_array_util = __commonJS({ + "node_modules/class-validator/cjs/utils/convert-to-array.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.convertToArray = void 0; + function convertToArray(val) { + if (val instanceof Map) { + return Array.from(val.values()); + } + return Array.isArray(val) ? val : Array.from(val); + } + __name(convertToArray, "convertToArray"); + exports2.convertToArray = convertToArray; + } +}); + +// node_modules/class-validator/cjs/utils/get-global.util.js +var require_get_global_util = __commonJS({ + "node_modules/class-validator/cjs/utils/get-global.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getGlobal = void 0; + function getGlobal() { + if (typeof globalThis !== "undefined") { + return globalThis; + } + if (typeof global !== "undefined") { + return global; + } + if (typeof window !== "undefined") { + return window; + } + if (typeof self !== "undefined") { + return self; + } + } + __name(getGlobal, "getGlobal"); + exports2.getGlobal = getGlobal; + } +}); + +// node_modules/class-validator/cjs/utils/is-promise.util.js +var require_is_promise_util = __commonJS({ + "node_modules/class-validator/cjs/utils/is-promise.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isPromise = void 0; + function isPromise(p) { + return p !== null && typeof p === "object" && typeof p.then === "function"; + } + __name(isPromise, "isPromise"); + exports2.isPromise = isPromise; + } +}); + +// node_modules/class-validator/cjs/utils/index.js +var require_utils4 = __commonJS({ + "node_modules/class-validator/cjs/utils/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_convert_to_array_util(), exports2); + __exportStar2(require_get_global_util(), exports2); + __exportStar2(require_is_promise_util(), exports2); + } +}); + +// node_modules/class-validator/cjs/metadata/MetadataStorage.js +var require_MetadataStorage = __commonJS({ + "node_modules/class-validator/cjs/metadata/MetadataStorage.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getMetadataStorage = exports2.MetadataStorage = void 0; + var ValidationSchemaToMetadataTransformer_1 = require_ValidationSchemaToMetadataTransformer(); + var utils_1 = require_utils4(); + var MetadataStorage = class { + static { + __name(this, "MetadataStorage"); + } + constructor() { + this.validationMetadatas = /* @__PURE__ */ new Map(); + this.constraintMetadatas = /* @__PURE__ */ new Map(); + } + get hasValidationMetaData() { + return !!this.validationMetadatas.size; + } + // ------------------------------------------------------------------------- + // Public Methods + // ------------------------------------------------------------------------- + /** + * Adds a new validation metadata. + */ + addValidationSchema(schema) { + const validationMetadatas = new ValidationSchemaToMetadataTransformer_1.ValidationSchemaToMetadataTransformer().transform(schema); + validationMetadatas.forEach((validationMetadata) => this.addValidationMetadata(validationMetadata)); + } + /** + * Adds a new validation metadata. + */ + addValidationMetadata(metadata) { + const existingMetadata = this.validationMetadatas.get(metadata.target); + if (existingMetadata) { + existingMetadata.push(metadata); + } else { + this.validationMetadatas.set(metadata.target, [metadata]); + } + } + /** + * Adds a new constraint metadata. + */ + addConstraintMetadata(metadata) { + const existingMetadata = this.constraintMetadatas.get(metadata.target); + if (existingMetadata) { + existingMetadata.push(metadata); + } else { + this.constraintMetadatas.set(metadata.target, [metadata]); + } + } + /** + * Groups metadata by their property names. + */ + groupByPropertyName(metadata) { + const grouped = {}; + metadata.forEach((metadata2) => { + if (!grouped[metadata2.propertyName]) + grouped[metadata2.propertyName] = []; + grouped[metadata2.propertyName].push(metadata2); + }); + return grouped; + } + /** + * Gets all validation metadatas for the given object with the given groups. + */ + getTargetValidationMetadatas(targetConstructor, targetSchema, always, strictGroups, groups) { + const includeMetadataBecauseOfAlwaysOption = /* @__PURE__ */ __name((metadata) => { + if (typeof metadata.always !== "undefined") + return metadata.always; + if (metadata.groups && metadata.groups.length) + return false; + return always; + }, "includeMetadataBecauseOfAlwaysOption"); + const excludeMetadataBecauseOfStrictGroupsOption = /* @__PURE__ */ __name((metadata) => { + if (strictGroups) { + if (!groups || !groups.length) { + if (metadata.groups && metadata.groups.length) + return true; + } + } + return false; + }, "excludeMetadataBecauseOfStrictGroupsOption"); + const filteredForOriginalMetadatasSearch = this.validationMetadatas.get(targetConstructor) || []; + const originalMetadatas = filteredForOriginalMetadatasSearch.filter((metadata) => { + if (metadata.target !== targetConstructor && metadata.target !== targetSchema) + return false; + if (includeMetadataBecauseOfAlwaysOption(metadata)) + return true; + if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) + return false; + if (groups && groups.length > 0) + return metadata.groups && !!metadata.groups.find((group) => groups.indexOf(group) !== -1); + return true; + }); + const filteredForInheritedMetadatasSearch = []; + for (const [key, value] of this.validationMetadatas.entries()) { + if (targetConstructor.prototype instanceof key) { + filteredForInheritedMetadatasSearch.push(...value); + } + } + const inheritedMetadatas = filteredForInheritedMetadatasSearch.filter((metadata) => { + if (typeof metadata.target === "string") + return false; + if (metadata.target === targetConstructor) + return false; + if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target)) + return false; + if (includeMetadataBecauseOfAlwaysOption(metadata)) + return true; + if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) + return false; + if (groups && groups.length > 0) + return metadata.groups && !!metadata.groups.find((group) => groups.indexOf(group) !== -1); + return true; + }); + const uniqueInheritedMetadatas = inheritedMetadatas.filter((inheritedMetadata) => { + return !originalMetadatas.find((originalMetadata) => { + return originalMetadata.propertyName === inheritedMetadata.propertyName && originalMetadata.type === inheritedMetadata.type; + }); + }); + return originalMetadatas.concat(uniqueInheritedMetadatas); + } + /** + * Gets all validator constraints for the given object. + */ + getTargetValidatorConstraints(target) { + return this.constraintMetadatas.get(target) || []; + } + }; + exports2.MetadataStorage = MetadataStorage; + function getMetadataStorage() { + const global2 = (0, utils_1.getGlobal)(); + if (!global2.classValidatorMetadataStorage) { + global2.classValidatorMetadataStorage = new MetadataStorage(); + } + return global2.classValidatorMetadataStorage; + } + __name(getMetadataStorage, "getMetadataStorage"); + exports2.getMetadataStorage = getMetadataStorage; + } +}); + +// node_modules/class-validator/cjs/validation/ValidationError.js +var require_ValidationError = __commonJS({ + "node_modules/class-validator/cjs/validation/ValidationError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidationError = void 0; + var ValidationError = class { + static { + __name(this, "ValidationError"); + } + /** + * + * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability + * @param hasParent true when the error is a child of an another one + * @param parentPath path as string to the parent of this property + * @param showConstraintMessages show constraint messages instead of constraint names + */ + toString(shouldDecorate = false, hasParent = false, parentPath = ``, showConstraintMessages = false) { + const boldStart = shouldDecorate ? `\x1B[1m` : ``; + const boldEnd = shouldDecorate ? `\x1B[22m` : ``; + const constraintsToString = /* @__PURE__ */ __name(() => { + var _a; + return (showConstraintMessages ? Object.values : Object.keys)((_a = this.constraints) !== null && _a !== void 0 ? _a : {}).join(`, `); + }, "constraintsToString"); + const propConstraintFailed = /* @__PURE__ */ __name((propertyName) => ` - property ${boldStart}${parentPath}${propertyName}${boldEnd} has failed the following constraints: ${boldStart}${constraintsToString()}${boldEnd} +`, "propConstraintFailed"); + if (!hasParent) { + return `An instance of ${boldStart}${this.target ? this.target.constructor.name : "an object"}${boldEnd} has failed the validation: +` + (this.constraints ? propConstraintFailed(this.property) : ``) + (this.children ? this.children.map((childError) => childError.toString(shouldDecorate, true, this.property, showConstraintMessages)).join(``) : ``); + } else { + const formattedProperty = Number.isInteger(+this.property) ? `[${this.property}]` : `${parentPath ? `.` : ``}${this.property}`; + if (this.constraints) { + return propConstraintFailed(formattedProperty); + } else { + return this.children ? this.children.map((childError) => childError.toString(shouldDecorate, true, `${parentPath}${formattedProperty}`, showConstraintMessages)).join(``) : ``; + } + } + } + }; + exports2.ValidationError = ValidationError; + } +}); + +// node_modules/class-validator/cjs/validation/ValidationTypes.js +var require_ValidationTypes = __commonJS({ + "node_modules/class-validator/cjs/validation/ValidationTypes.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidationTypes = void 0; + var ValidationTypes = class { + static { + __name(this, "ValidationTypes"); + } + /** + * Checks if validation type is valid. + */ + static isValid(type) { + return type !== "isValid" && type !== "getMessage" && Object.keys(this).map((key) => this[key]).indexOf(type) !== -1; + } + }; + exports2.ValidationTypes = ValidationTypes; + ValidationTypes.CUSTOM_VALIDATION = "customValidation"; + ValidationTypes.NESTED_VALIDATION = "nestedValidation"; + ValidationTypes.PROMISE_VALIDATION = "promiseValidation"; + ValidationTypes.CONDITIONAL_VALIDATION = "conditionalValidation"; + ValidationTypes.WHITELIST = "whitelistValidation"; + ValidationTypes.IS_DEFINED = "isDefined"; + } +}); + +// node_modules/class-validator/cjs/validation/ValidationUtils.js +var require_ValidationUtils = __commonJS({ + "node_modules/class-validator/cjs/validation/ValidationUtils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidationUtils = exports2.constraintToString = void 0; + function constraintToString(constraint) { + if (Array.isArray(constraint)) { + return constraint.join(", "); + } + if (typeof constraint === "symbol") { + constraint = constraint.description; + } + return `${constraint}`; + } + __name(constraintToString, "constraintToString"); + exports2.constraintToString = constraintToString; + var ValidationUtils = class { + static { + __name(this, "ValidationUtils"); + } + static replaceMessageSpecialTokens(message, validationArguments) { + let messageString; + if (message instanceof Function) { + messageString = message(validationArguments); + } else if (typeof message === "string") { + messageString = message; + } + if (messageString && Array.isArray(validationArguments.constraints)) { + validationArguments.constraints.forEach((constraint, index) => { + messageString = messageString.replace(new RegExp(`\\$constraint${index + 1}`, "g"), constraintToString(constraint)); + }); + } + if (messageString && validationArguments.value !== void 0 && validationArguments.value !== null && ["string", "boolean", "number"].includes(typeof validationArguments.value)) + messageString = messageString.replace(/\$value/g, validationArguments.value); + if (messageString) + messageString = messageString.replace(/\$property/g, validationArguments.property); + if (messageString) + messageString = messageString.replace(/\$target/g, validationArguments.targetName); + return messageString; + } + }; + exports2.ValidationUtils = ValidationUtils; + } +}); + +// node_modules/class-validator/cjs/validation/ValidationExecutor.js +var require_ValidationExecutor = __commonJS({ + "node_modules/class-validator/cjs/validation/ValidationExecutor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidationExecutor = void 0; + var ValidationError_1 = require_ValidationError(); + var ValidationTypes_1 = require_ValidationTypes(); + var ValidationUtils_1 = require_ValidationUtils(); + var utils_1 = require_utils4(); + var MetadataStorage_1 = require_MetadataStorage(); + var ValidationExecutor = class { + static { + __name(this, "ValidationExecutor"); + } + // ------------------------------------------------------------------------- + // Constructor + // ------------------------------------------------------------------------- + constructor(validator, validatorOptions) { + this.validator = validator; + this.validatorOptions = validatorOptions; + this.awaitingPromises = []; + this.ignoreAsyncValidations = false; + this.metadataStorage = (0, MetadataStorage_1.getMetadataStorage)(); + } + // ------------------------------------------------------------------------- + // Public Methods + // ------------------------------------------------------------------------- + execute(object, targetSchema, validationErrors) { + var _a, _b; + if (!this.metadataStorage.hasValidationMetaData && ((_a = this.validatorOptions) === null || _a === void 0 ? void 0 : _a.enableDebugMessages) === true) { + console.warn(`No validation metadata found. No validation will be performed. There are multiple possible reasons: + - There may be multiple class-validator versions installed. You will need to flatten your dependencies to fix the issue. + - This validation runs before any file with validation decorator was parsed by NodeJS.`); + } + const groups = this.validatorOptions ? this.validatorOptions.groups : void 0; + const strictGroups = this.validatorOptions && this.validatorOptions.strictGroups || false; + const always = this.validatorOptions && this.validatorOptions.always || false; + const forbidUnknownValues = ((_b = this.validatorOptions) === null || _b === void 0 ? void 0 : _b.forbidUnknownValues) === void 0 || this.validatorOptions.forbidUnknownValues !== false; + const targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(object.constructor, targetSchema, always, strictGroups, groups); + const groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas); + if (forbidUnknownValues && !targetMetadatas.length) { + const validationError = new ValidationError_1.ValidationError(); + if (!this.validatorOptions || !this.validatorOptions.validationError || this.validatorOptions.validationError.target === void 0 || this.validatorOptions.validationError.target === true) + validationError.target = object; + validationError.value = void 0; + validationError.property = void 0; + validationError.children = []; + validationError.constraints = { unknownValue: "an unknown value was passed to the validate function" }; + validationErrors.push(validationError); + return; + } + if (this.validatorOptions && this.validatorOptions.whitelist) + this.whitelist(object, groupedMetadatas, validationErrors); + Object.keys(groupedMetadatas).forEach((propertyName) => { + const value = object[propertyName]; + const definedMetadatas = groupedMetadatas[propertyName].filter((metadata) => metadata.type === ValidationTypes_1.ValidationTypes.IS_DEFINED); + const metadatas = groupedMetadatas[propertyName].filter((metadata) => metadata.type !== ValidationTypes_1.ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes_1.ValidationTypes.WHITELIST); + if (value instanceof Promise && metadatas.find((metadata) => metadata.type === ValidationTypes_1.ValidationTypes.PROMISE_VALIDATION)) { + this.awaitingPromises.push(value.then((resolvedValue) => { + this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors); + })); + } else { + this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors); + } + }); + } + whitelist(object, groupedMetadatas, validationErrors) { + const notAllowedProperties = []; + Object.keys(object).forEach((propertyName) => { + if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0) + notAllowedProperties.push(propertyName); + }); + if (notAllowedProperties.length > 0) { + if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) { + notAllowedProperties.forEach((property) => { + const validationError = this.generateValidationError(object, object[property], property); + validationError.constraints = { [ValidationTypes_1.ValidationTypes.WHITELIST]: `property ${property} should not exist` }; + validationError.children = void 0; + validationErrors.push(validationError); + }); + } else { + notAllowedProperties.forEach((property) => delete object[property]); + } + } + } + stripEmptyErrors(errors) { + return errors.filter((error) => { + if (error.children) { + error.children = this.stripEmptyErrors(error.children); + } + if (Object.keys(error.constraints).length === 0) { + if (error.children.length === 0) { + return false; + } else { + delete error.constraints; + } + } + return true; + }); + } + // ------------------------------------------------------------------------- + // Private Methods + // ------------------------------------------------------------------------- + performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors) { + const customValidationMetadatas = metadatas.filter((metadata) => metadata.type === ValidationTypes_1.ValidationTypes.CUSTOM_VALIDATION); + const nestedValidationMetadatas = metadatas.filter((metadata) => metadata.type === ValidationTypes_1.ValidationTypes.NESTED_VALIDATION); + const conditionalValidationMetadatas = metadatas.filter((metadata) => metadata.type === ValidationTypes_1.ValidationTypes.CONDITIONAL_VALIDATION); + const validationError = this.generateValidationError(object, value, propertyName); + validationErrors.push(validationError); + const canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas); + if (!canValidate) { + return; + } + this.customValidations(object, value, definedMetadatas, validationError); + this.mapContexts(object, value, definedMetadatas, validationError); + if (value === void 0 && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) { + return; + } + if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) { + return; + } + if ((value === null || value === void 0) && this.validatorOptions && this.validatorOptions.skipMissingProperties === true) { + return; + } + this.customValidations(object, value, customValidationMetadatas, validationError); + this.nestedValidations(value, nestedValidationMetadatas, validationError); + this.mapContexts(object, value, metadatas, validationError); + this.mapContexts(object, value, customValidationMetadatas, validationError); + } + generateValidationError(object, value, propertyName) { + const validationError = new ValidationError_1.ValidationError(); + if (!this.validatorOptions || !this.validatorOptions.validationError || this.validatorOptions.validationError.target === void 0 || this.validatorOptions.validationError.target === true) + validationError.target = object; + if (!this.validatorOptions || !this.validatorOptions.validationError || this.validatorOptions.validationError.value === void 0 || this.validatorOptions.validationError.value === true) + validationError.value = value; + validationError.property = propertyName; + validationError.children = []; + validationError.constraints = {}; + return validationError; + } + conditionalValidations(object, value, metadatas) { + return metadatas.map((metadata) => metadata.constraints[0](object, value)).reduce((resultA, resultB) => resultA && resultB, true); + } + customValidations(object, value, metadatas, error) { + metadatas.forEach((metadata) => { + const getValidationArguments = /* @__PURE__ */ __name(() => { + const validationArguments = { + targetName: object.constructor ? object.constructor.name : void 0, + property: metadata.propertyName, + object, + value, + constraints: metadata.constraints + }; + return validationArguments; + }, "getValidationArguments"); + if (metadata.validateIf) { + const shouldValidate = metadata.validateIf(object, value); + if (!shouldValidate) + return; + } + this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach((customConstraintMetadata) => { + if (customConstraintMetadata.async && this.ignoreAsyncValidations) + return; + if (this.validatorOptions && this.validatorOptions.stopAtFirstError && Object.keys(error.constraints || {}).length > 0) + return; + const validationArguments = getValidationArguments(); + if (!metadata.each || !(Array.isArray(value) || value instanceof Set || value instanceof Map)) { + const validatedValue = customConstraintMetadata.instance.validate(value, validationArguments); + if ((0, utils_1.isPromise)(validatedValue)) { + const promise = validatedValue.then((isValid) => { + if (!isValid) { + const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); + error.constraints[type] = message; + if (metadata.context) { + if (!error.contexts) { + error.contexts = {}; + } + error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); + } + } + }); + this.awaitingPromises.push(promise); + } else { + if (!validatedValue) { + const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); + error.constraints[type] = message; + } + } + return; + } + const arrayValue = (0, utils_1.convertToArray)(value); + const validatedSubValues = arrayValue.map((subValue) => customConstraintMetadata.instance.validate(subValue, validationArguments)); + const validationIsAsync = validatedSubValues.some((validatedSubValue) => (0, utils_1.isPromise)(validatedSubValue)); + if (validationIsAsync) { + const asyncValidatedSubValues = validatedSubValues.map((validatedSubValue) => (0, utils_1.isPromise)(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue)); + const asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then((flatValidatedValues) => { + const validationResult2 = flatValidatedValues.every((isValid) => isValid); + if (!validationResult2) { + const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); + error.constraints[type] = message; + if (metadata.context) { + if (!error.contexts) { + error.contexts = {}; + } + error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); + } + } + }); + this.awaitingPromises.push(asyncValidationIsFinishedPromise); + return; + } + const validationResult = validatedSubValues.every((isValid) => isValid); + if (!validationResult) { + const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); + error.constraints[type] = message; + } + }); + }); + } + nestedValidations(value, metadatas, error) { + if (value === void 0) { + return; + } + metadatas.forEach((metadata) => { + if (metadata.type !== ValidationTypes_1.ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes_1.ValidationTypes.PROMISE_VALIDATION) { + return; + } else if (this.validatorOptions && this.validatorOptions.stopAtFirstError && Object.keys(error.constraints || {}).length > 0) { + return; + } + if (Array.isArray(value) || value instanceof Set || value instanceof Map) { + const arrayLikeValue = value instanceof Set ? Array.from(value) : value; + arrayLikeValue.forEach((subValue, index) => { + this.performValidations(value, subValue, index.toString(), [], metadatas, error.children); + }); + } else if (value instanceof Object) { + const targetSchema = typeof metadata.target === "string" ? metadata.target : metadata.target.name; + this.execute(value, targetSchema, error.children); + } else { + const [type, message] = this.createValidationError(metadata.target, value, metadata); + error.constraints[type] = message; + } + }); + } + mapContexts(object, value, metadatas, error) { + return metadatas.forEach((metadata) => { + if (metadata.context) { + let customConstraint; + if (metadata.type === ValidationTypes_1.ValidationTypes.CUSTOM_VALIDATION) { + const customConstraints = this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls); + customConstraint = customConstraints[0]; + } + const type = this.getConstraintType(metadata, customConstraint); + if (error.constraints[type]) { + if (!error.contexts) { + error.contexts = {}; + } + error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); + } + } + }); + } + createValidationError(object, value, metadata, customValidatorMetadata) { + const targetName = object.constructor ? object.constructor.name : void 0; + const type = this.getConstraintType(metadata, customValidatorMetadata); + const validationArguments = { + targetName, + property: metadata.propertyName, + object, + value, + constraints: metadata.constraints + }; + let message = metadata.message || ""; + if (!metadata.message && (!this.validatorOptions || this.validatorOptions && !this.validatorOptions.dismissDefaultMessages)) { + if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) { + message = customValidatorMetadata.instance.defaultMessage(validationArguments); + } + } + const messageString = ValidationUtils_1.ValidationUtils.replaceMessageSpecialTokens(message, validationArguments); + return [type, messageString]; + } + getConstraintType(metadata, customValidatorMetadata) { + const type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type; + return type; + } + }; + exports2.ValidationExecutor = ValidationExecutor; + } +}); + +// node_modules/class-validator/cjs/validation/Validator.js +var require_Validator = __commonJS({ + "node_modules/class-validator/cjs/validation/Validator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Validator = void 0; + var ValidationExecutor_1 = require_ValidationExecutor(); + var Validator = class { + static { + __name(this, "Validator"); + } + /** + * Performs validation of the given object based on decorators or validation schema. + */ + validate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { + return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions); + } + /** + * Performs validation of the given object based on decorators or validation schema and reject on error. + */ + async validateOrReject(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { + const errors = await this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions); + if (errors.length) + return Promise.reject(errors); + } + /** + * Performs validation of the given object based on decorators or validation schema. + */ + validateSync(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { + const object = typeof objectOrSchemaName === "string" ? objectOrValidationOptions : objectOrSchemaName; + const options = typeof objectOrSchemaName === "string" ? maybeValidatorOptions : objectOrValidationOptions; + const schema = typeof objectOrSchemaName === "string" ? objectOrSchemaName : void 0; + const executor = new ValidationExecutor_1.ValidationExecutor(this, options); + executor.ignoreAsyncValidations = true; + const validationErrors = []; + executor.execute(object, schema, validationErrors); + return executor.stripEmptyErrors(validationErrors); + } + // ------------------------------------------------------------------------- + // Private Properties + // ------------------------------------------------------------------------- + /** + * Performs validation of the given object based on decorators or validation schema. + * Common method for `validateOrReject` and `validate` methods. + */ + coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { + const object = typeof objectOrSchemaName === "string" ? objectOrValidationOptions : objectOrSchemaName; + const options = typeof objectOrSchemaName === "string" ? maybeValidatorOptions : objectOrValidationOptions; + const schema = typeof objectOrSchemaName === "string" ? objectOrSchemaName : void 0; + const executor = new ValidationExecutor_1.ValidationExecutor(this, options); + const validationErrors = []; + executor.execute(object, schema, validationErrors); + return Promise.all(executor.awaitingPromises).then(() => { + return executor.stripEmptyErrors(validationErrors); + }); + } + }; + exports2.Validator = Validator; + } +}); + +// node_modules/class-validator/cjs/container.js +var require_container = __commonJS({ + "node_modules/class-validator/cjs/container.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getFromContainer = exports2.useContainer = void 0; + var defaultContainer = new class { + constructor() { + this.instances = []; + } + get(someClass) { + let instance = this.instances.find((instance2) => instance2.type === someClass); + if (!instance) { + instance = { type: someClass, object: new someClass() }; + this.instances.push(instance); + } + return instance.object; + } + }(); + var userContainer; + var userContainerOptions; + function useContainer(iocContainer, options) { + userContainer = iocContainer; + userContainerOptions = options; + } + __name(useContainer, "useContainer"); + exports2.useContainer = useContainer; + function getFromContainer(someClass) { + if (userContainer) { + try { + const instance = userContainer.get(someClass); + if (instance) + return instance; + if (!userContainerOptions || !userContainerOptions.fallback) + return instance; + } catch (error) { + if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) + throw error; + } + } + return defaultContainer.get(someClass); + } + __name(getFromContainer, "getFromContainer"); + exports2.getFromContainer = getFromContainer; + } +}); + +// node_modules/class-validator/cjs/decorator/common/Allow.js +var require_Allow = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/Allow.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Allow = void 0; + var ValidationTypes_1 = require_ValidationTypes(); + var ValidationMetadata_1 = require_ValidationMetadata(); + var MetadataStorage_1 = require_MetadataStorage(); + function Allow(validationOptions) { + return function(object, propertyName) { + const args = { + type: ValidationTypes_1.ValidationTypes.WHITELIST, + target: object.constructor, + propertyName, + validationOptions + }; + (0, MetadataStorage_1.getMetadataStorage)().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); + }; + } + __name(Allow, "Allow"); + exports2.Allow = Allow; + } +}); + +// node_modules/class-validator/cjs/metadata/ConstraintMetadata.js +var require_ConstraintMetadata = __commonJS({ + "node_modules/class-validator/cjs/metadata/ConstraintMetadata.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConstraintMetadata = void 0; + var container_1 = require_container(); + var ConstraintMetadata = class { + static { + __name(this, "ConstraintMetadata"); + } + // ------------------------------------------------------------------------- + // Constructor + // ------------------------------------------------------------------------- + constructor(target, name, async = false) { + this.target = target; + this.name = name; + this.async = async; + } + // ------------------------------------------------------------------------- + // Accessors + // ------------------------------------------------------------------------- + /** + * Instance of the target custom validation class which performs validation. + */ + get instance() { + return (0, container_1.getFromContainer)(this.target); + } + }; + exports2.ConstraintMetadata = ConstraintMetadata; + } +}); + +// node_modules/class-validator/cjs/register-decorator.js +var require_register_decorator = __commonJS({ + "node_modules/class-validator/cjs/register-decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.registerDecorator = void 0; + var ConstraintMetadata_1 = require_ConstraintMetadata(); + var ValidationMetadata_1 = require_ValidationMetadata(); + var ValidationTypes_1 = require_ValidationTypes(); + var container_1 = require_container(); + var MetadataStorage_1 = require_MetadataStorage(); + function registerDecorator(options) { + let constraintCls; + if (options.validator instanceof Function) { + constraintCls = options.validator; + const constraintClasses = (0, container_1.getFromContainer)(MetadataStorage_1.MetadataStorage).getTargetValidatorConstraints(options.validator); + if (constraintClasses.length > 1) { + throw `More than one implementation of ValidatorConstraintInterface found for validator on: ${options.target.name}:${options.propertyName}`; + } + } else { + const validator = options.validator; + constraintCls = class CustomConstraint { + static { + __name(this, "CustomConstraint"); + } + validate(value, validationArguments) { + return validator.validate(value, validationArguments); + } + defaultMessage(validationArguments) { + if (validator.defaultMessage) { + return validator.defaultMessage(validationArguments); + } + return ""; + } + }; + (0, MetadataStorage_1.getMetadataStorage)().addConstraintMetadata(new ConstraintMetadata_1.ConstraintMetadata(constraintCls, options.name, options.async)); + } + const validationMetadataArgs = { + type: options.name && ValidationTypes_1.ValidationTypes.isValid(options.name) ? options.name : ValidationTypes_1.ValidationTypes.CUSTOM_VALIDATION, + name: options.name, + target: options.target, + propertyName: options.propertyName, + validationOptions: options.options, + constraintCls, + constraints: options.constraints + }; + (0, MetadataStorage_1.getMetadataStorage)().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(validationMetadataArgs)); + } + __name(registerDecorator, "registerDecorator"); + exports2.registerDecorator = registerDecorator; + } +}); + +// node_modules/class-validator/cjs/decorator/common/ValidateBy.js +var require_ValidateBy = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/ValidateBy.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidateBy = exports2.buildMessage = void 0; + var register_decorator_1 = require_register_decorator(); + function buildMessage(impl, validationOptions) { + return (validationArguments) => { + const eachPrefix = validationOptions && validationOptions.each ? "each value in " : ""; + return impl(eachPrefix, validationArguments); + }; + } + __name(buildMessage, "buildMessage"); + exports2.buildMessage = buildMessage; + function ValidateBy(options, validationOptions) { + return function(object, propertyName) { + (0, register_decorator_1.registerDecorator)({ + name: options.name, + target: object.constructor, + propertyName, + options: validationOptions, + constraints: options.constraints, + validator: options.validator + }); + }; + } + __name(ValidateBy, "ValidateBy"); + exports2.ValidateBy = ValidateBy; + } +}); + +// node_modules/class-validator/cjs/decorator/common/IsDefined.js +var require_IsDefined = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/IsDefined.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsDefined = exports2.isDefined = exports2.IS_DEFINED = void 0; + var ValidateBy_1 = require_ValidateBy(); + var ValidationTypes_1 = require_ValidationTypes(); + exports2.IS_DEFINED = ValidationTypes_1.ValidationTypes.IS_DEFINED; + function isDefined(value) { + return value !== void 0 && value !== null; + } + __name(isDefined, "isDefined"); + exports2.isDefined = isDefined; + function IsDefined(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_DEFINED, + validator: { + validate: /* @__PURE__ */ __name((value) => isDefined(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property should not be null or undefined", validationOptions) + } + }, validationOptions); + } + __name(IsDefined, "IsDefined"); + exports2.IsDefined = IsDefined; + } +}); + +// node_modules/class-validator/cjs/decorator/common/IsOptional.js +var require_IsOptional = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/IsOptional.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsOptional = exports2.IS_OPTIONAL = void 0; + var ValidationTypes_1 = require_ValidationTypes(); + var ValidationMetadata_1 = require_ValidationMetadata(); + var MetadataStorage_1 = require_MetadataStorage(); + exports2.IS_OPTIONAL = "isOptional"; + function IsOptional(validationOptions) { + return function(object, propertyName) { + const args = { + type: ValidationTypes_1.ValidationTypes.CONDITIONAL_VALIDATION, + name: exports2.IS_OPTIONAL, + target: object.constructor, + propertyName, + constraints: [ + (object2, value) => { + return object2[propertyName] !== null && object2[propertyName] !== void 0; + } + ], + validationOptions + }; + (0, MetadataStorage_1.getMetadataStorage)().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); + }; + } + __name(IsOptional, "IsOptional"); + exports2.IsOptional = IsOptional; + } +}); + +// node_modules/class-validator/cjs/decorator/common/Validate.js +var require_Validate = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/Validate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Validate = exports2.ValidatorConstraint = void 0; + var ValidationMetadata_1 = require_ValidationMetadata(); + var MetadataStorage_1 = require_MetadataStorage(); + var ValidationTypes_1 = require_ValidationTypes(); + var ConstraintMetadata_1 = require_ConstraintMetadata(); + function ValidatorConstraint(options) { + return function(target) { + const isAsync = options && options.async; + let name = options && options.name ? options.name : ""; + if (!name) { + name = target.name; + if (!name) + name = name.replace(/\.?([A-Z]+)/g, (x, y) => "_" + y.toLowerCase()).replace(/^_/, ""); + } + const metadata = new ConstraintMetadata_1.ConstraintMetadata(target, name, isAsync); + (0, MetadataStorage_1.getMetadataStorage)().addConstraintMetadata(metadata); + }; + } + __name(ValidatorConstraint, "ValidatorConstraint"); + exports2.ValidatorConstraint = ValidatorConstraint; + function Validate(constraintClass, constraintsOrValidationOptions, maybeValidationOptions) { + return function(object, propertyName) { + const args = { + type: ValidationTypes_1.ValidationTypes.CUSTOM_VALIDATION, + target: object.constructor, + propertyName, + constraintCls: constraintClass, + constraints: Array.isArray(constraintsOrValidationOptions) ? constraintsOrValidationOptions : void 0, + validationOptions: !Array.isArray(constraintsOrValidationOptions) ? constraintsOrValidationOptions : maybeValidationOptions + }; + (0, MetadataStorage_1.getMetadataStorage)().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); + }; + } + __name(Validate, "Validate"); + exports2.Validate = Validate; + } +}); + +// node_modules/class-validator/cjs/decorator/common/ValidateIf.js +var require_ValidateIf = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/ValidateIf.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidateIf = void 0; + var ValidationTypes_1 = require_ValidationTypes(); + var ValidationMetadata_1 = require_ValidationMetadata(); + var MetadataStorage_1 = require_MetadataStorage(); + function ValidateIf(condition, validationOptions) { + return function(object, propertyName) { + const args = { + type: ValidationTypes_1.ValidationTypes.CONDITIONAL_VALIDATION, + target: object.constructor, + propertyName, + constraints: [condition], + validationOptions + }; + (0, MetadataStorage_1.getMetadataStorage)().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); + }; + } + __name(ValidateIf, "ValidateIf"); + exports2.ValidateIf = ValidateIf; + } +}); + +// node_modules/class-validator/cjs/decorator/common/ValidateNested.js +var require_ValidateNested = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/ValidateNested.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidateNested = void 0; + var ValidationTypes_1 = require_ValidationTypes(); + var ValidationMetadata_1 = require_ValidationMetadata(); + var MetadataStorage_1 = require_MetadataStorage(); + function ValidateNested(validationOptions) { + const opts = { ...validationOptions }; + const eachPrefix = opts.each ? "each value in " : ""; + opts.message = opts.message || eachPrefix + "nested property $property must be either object or array"; + return function(object, propertyName) { + const args = { + type: ValidationTypes_1.ValidationTypes.NESTED_VALIDATION, + target: object.constructor, + propertyName, + validationOptions: opts + }; + (0, MetadataStorage_1.getMetadataStorage)().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); + }; + } + __name(ValidateNested, "ValidateNested"); + exports2.ValidateNested = ValidateNested; + } +}); + +// node_modules/class-validator/cjs/decorator/common/ValidatePromise.js +var require_ValidatePromise = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/ValidatePromise.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidatePromise = void 0; + var ValidationTypes_1 = require_ValidationTypes(); + var ValidationMetadata_1 = require_ValidationMetadata(); + var MetadataStorage_1 = require_MetadataStorage(); + function ValidatePromise(validationOptions) { + return function(object, propertyName) { + const args = { + type: ValidationTypes_1.ValidationTypes.PROMISE_VALIDATION, + target: object.constructor, + propertyName, + validationOptions + }; + (0, MetadataStorage_1.getMetadataStorage)().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); + }; + } + __name(ValidatePromise, "ValidatePromise"); + exports2.ValidatePromise = ValidatePromise; + } +}); + +// node_modules/validator/lib/util/assertString.js +var require_assertString = __commonJS({ + "node_modules/validator/lib/util/assertString.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = assertString; + function assertString(input) { + if (input === void 0 || input === null) throw new TypeError("Expected a string but received a ".concat(input)); + if (input.constructor.name !== "String") throw new TypeError("Expected a string but received a ".concat(input.constructor.name)); + } + __name(assertString, "assertString"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/util/merge.js +var require_merge = __commonJS({ + "node_modules/validator/lib/util/merge.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = merge; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function merge() { + var obj = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + var defaults = arguments.length > 1 ? arguments[1] : void 0; + if (_typeof(obj) !== "object" || obj === null) { + obj = {}; + } + for (var key in defaults) { + if (typeof obj[key] === "undefined") { + obj[key] = defaults[key]; + } + } + return obj; + } + __name(merge, "merge"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/util/includesString.js +var require_includesString = __commonJS({ + "node_modules/validator/lib/util/includesString.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var includes = /* @__PURE__ */ __name(function includes2(str, val) { + return str.indexOf(val) !== -1; + }, "includes"); + var _default = exports2.default = includes; + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isLatLong.js +var require_isLatLong = __commonJS({ + "node_modules/validator/lib/isLatLong.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isLatLong; + var _assertString = _interopRequireDefault(require_assertString()); + var _merge = _interopRequireDefault(require_merge()); + var _includesString = _interopRequireDefault(require_includesString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var lat = /^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/; + var long = /^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/; + var latDMS = /^(([1-8]?\d)\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|90\D+0\D+0)\D+[NSns]?$/i; + var longDMS = /^\s*([1-7]?\d{1,2}\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|180\D+0\D+0)\D+[EWew]?$/i; + var defaultLatLongOptions = { + checkDMS: false + }; + function isLatLong(str, options) { + (0, _assertString.default)(str); + options = (0, _merge.default)(options, defaultLatLongOptions); + if (!(0, _includesString.default)(str, ",")) return false; + var pair = str.split(","); + if (pair[0].startsWith("(") && !pair[1].endsWith(")") || pair[1].endsWith(")") && !pair[0].startsWith("(")) return false; + if (options.checkDMS) { + return latDMS.test(pair[0]) && longDMS.test(pair[1]); + } + return lat.test(pair[0]) && long.test(pair[1]); + } + __name(isLatLong, "isLatLong"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/common/IsLatLong.js +var require_IsLatLong = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/IsLatLong.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsLatLong = exports2.isLatLong = exports2.IS_LATLONG = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isLatLong_1 = __importDefault2(require_isLatLong()); + exports2.IS_LATLONG = "isLatLong"; + function isLatLong(value) { + return typeof value === "string" && (0, isLatLong_1.default)(value); + } + __name(isLatLong, "isLatLong"); + exports2.isLatLong = isLatLong; + function IsLatLong(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_LATLONG, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isLatLong(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a latitude,longitude string", validationOptions) + } + }, validationOptions); + } + __name(IsLatLong, "IsLatLong"); + exports2.IsLatLong = IsLatLong; + } +}); + +// node_modules/class-validator/cjs/decorator/common/IsLatitude.js +var require_IsLatitude = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/IsLatitude.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsLatitude = exports2.isLatitude = exports2.IS_LATITUDE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var IsLatLong_1 = require_IsLatLong(); + exports2.IS_LATITUDE = "isLatitude"; + function isLatitude(value) { + return (typeof value === "number" || typeof value === "string") && (0, IsLatLong_1.isLatLong)(`${value},0`); + } + __name(isLatitude, "isLatitude"); + exports2.isLatitude = isLatitude; + function IsLatitude(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_LATITUDE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isLatitude(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a latitude string or number", validationOptions) + } + }, validationOptions); + } + __name(IsLatitude, "IsLatitude"); + exports2.IsLatitude = IsLatitude; + } +}); + +// node_modules/class-validator/cjs/decorator/common/IsLongitude.js +var require_IsLongitude = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/IsLongitude.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsLongitude = exports2.isLongitude = exports2.IS_LONGITUDE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var IsLatLong_1 = require_IsLatLong(); + exports2.IS_LONGITUDE = "isLongitude"; + function isLongitude(value) { + return (typeof value === "number" || typeof value === "string") && (0, IsLatLong_1.isLatLong)(`0,${value}`); + } + __name(isLongitude, "isLongitude"); + exports2.isLongitude = isLongitude; + function IsLongitude(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_LONGITUDE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isLongitude(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a longitude string or number", validationOptions) + } + }, validationOptions); + } + __name(IsLongitude, "IsLongitude"); + exports2.IsLongitude = IsLongitude; + } +}); + +// node_modules/class-validator/cjs/decorator/common/Equals.js +var require_Equals = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/Equals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Equals = exports2.equals = exports2.EQUALS = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.EQUALS = "equals"; + function equals(value, comparison) { + return value === comparison; + } + __name(equals, "equals"); + exports2.equals = equals; + function Equals(comparison, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.EQUALS, + constraints: [comparison], + validator: { + validate: /* @__PURE__ */ __name((value, args) => equals(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be equal to $constraint1", validationOptions) + } + }, validationOptions); + } + __name(Equals, "Equals"); + exports2.Equals = Equals; + } +}); + +// node_modules/class-validator/cjs/decorator/common/NotEquals.js +var require_NotEquals = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/NotEquals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NotEquals = exports2.notEquals = exports2.NOT_EQUALS = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.NOT_EQUALS = "notEquals"; + function notEquals(value, comparison) { + return value !== comparison; + } + __name(notEquals, "notEquals"); + exports2.notEquals = notEquals; + function NotEquals(comparison, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.NOT_EQUALS, + constraints: [comparison], + validator: { + validate: /* @__PURE__ */ __name((value, args) => notEquals(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property should not be equal to $constraint1", validationOptions) + } + }, validationOptions); + } + __name(NotEquals, "NotEquals"); + exports2.NotEquals = NotEquals; + } +}); + +// node_modules/class-validator/cjs/decorator/common/IsEmpty.js +var require_IsEmpty = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/IsEmpty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsEmpty = exports2.isEmpty = exports2.IS_EMPTY = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_EMPTY = "isEmpty"; + function isEmpty(value) { + return value === "" || value === null || value === void 0; + } + __name(isEmpty, "isEmpty"); + exports2.isEmpty = isEmpty; + function IsEmpty(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_EMPTY, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isEmpty(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be empty", validationOptions) + } + }, validationOptions); + } + __name(IsEmpty, "IsEmpty"); + exports2.IsEmpty = IsEmpty; + } +}); + +// node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js +var require_IsNotEmpty = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsNotEmpty = exports2.isNotEmpty = exports2.IS_NOT_EMPTY = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_NOT_EMPTY = "isNotEmpty"; + function isNotEmpty(value) { + return value !== "" && value !== null && value !== void 0; + } + __name(isNotEmpty, "isNotEmpty"); + exports2.isNotEmpty = isNotEmpty; + function IsNotEmpty(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_NOT_EMPTY, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isNotEmpty(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property should not be empty", validationOptions) + } + }, validationOptions); + } + __name(IsNotEmpty, "IsNotEmpty"); + exports2.IsNotEmpty = IsNotEmpty; + } +}); + +// node_modules/class-validator/cjs/decorator/common/IsIn.js +var require_IsIn = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/IsIn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsIn = exports2.isIn = exports2.IS_IN = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_IN = "isIn"; + function isIn(value, possibleValues) { + return Array.isArray(possibleValues) && possibleValues.some((possibleValue) => possibleValue === value); + } + __name(isIn, "isIn"); + exports2.isIn = isIn; + function IsIn(values, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_IN, + constraints: [values], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isIn(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be one of the following values: $constraint1", validationOptions) + } + }, validationOptions); + } + __name(IsIn, "IsIn"); + exports2.IsIn = IsIn; + } +}); + +// node_modules/class-validator/cjs/decorator/common/IsNotIn.js +var require_IsNotIn = __commonJS({ + "node_modules/class-validator/cjs/decorator/common/IsNotIn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsNotIn = exports2.isNotIn = exports2.IS_NOT_IN = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_NOT_IN = "isNotIn"; + function isNotIn(value, possibleValues) { + return !Array.isArray(possibleValues) || !possibleValues.some((possibleValue) => possibleValue === value); + } + __name(isNotIn, "isNotIn"); + exports2.isNotIn = isNotIn; + function IsNotIn(values, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_NOT_IN, + constraints: [values], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isNotIn(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property should not be one of the following values: $constraint1", validationOptions) + } + }, validationOptions); + } + __name(IsNotIn, "IsNotIn"); + exports2.IsNotIn = IsNotIn; + } +}); + +// node_modules/validator/lib/util/nullUndefinedCheck.js +var require_nullUndefinedCheck = __commonJS({ + "node_modules/validator/lib/util/nullUndefinedCheck.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isNullOrUndefined; + function isNullOrUndefined(value) { + return value === null || value === void 0; + } + __name(isNullOrUndefined, "isNullOrUndefined"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/alpha.js +var require_alpha = __commonJS({ + "node_modules/validator/lib/alpha.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.farsiLocales = exports2.englishLocales = exports2.dotDecimal = exports2.decimal = exports2.commaDecimal = exports2.bengaliLocales = exports2.arabicLocales = exports2.alphanumeric = exports2.alpha = void 0; + var alpha = exports2.alpha = { + "en-US": /^[A-Z]+$/i, + "az-AZ": /^[A-VXYZÇƏĞİıÖŞÜ]+$/i, + "bg-BG": /^[А-Я]+$/i, + "cs-CZ": /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i, + "da-DK": /^[A-ZÆØÅ]+$/i, + "de-DE": /^[A-ZÄÖÜß]+$/i, + "el-GR": /^[Α-ώ]+$/i, + "es-ES": /^[A-ZÁÉÍÑÓÚÜ]+$/i, + "fa-IR": /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i, + "fi-FI": /^[A-ZÅÄÖ]+$/i, + "fr-FR": /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i, + "it-IT": /^[A-ZÀÉÈÌÎÓÒÙ]+$/i, + "ja-JP": /^[ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i, + "nb-NO": /^[A-ZÆØÅ]+$/i, + "nl-NL": /^[A-ZÁÉËÏÓÖÜÚ]+$/i, + "nn-NO": /^[A-ZÆØÅ]+$/i, + "hu-HU": /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i, + "pl-PL": /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i, + "pt-PT": /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i, + "ru-RU": /^[А-ЯЁ]+$/i, + "kk-KZ": /^[А-ЯЁ\u04D8\u04B0\u0406\u04A2\u0492\u04AE\u049A\u04E8\u04BA]+$/i, + "sl-SI": /^[A-ZČĆĐŠŽ]+$/i, + "sk-SK": /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i, + "sr-RS@latin": /^[A-ZČĆŽŠĐ]+$/i, + "sr-RS": /^[А-ЯЂЈЉЊЋЏ]+$/i, + "sv-SE": /^[A-ZÅÄÖ]+$/i, + "th-TH": /^[ก-๐\s]+$/i, + "tr-TR": /^[A-ZÇĞİıÖŞÜ]+$/i, + "uk-UA": /^[А-ЩЬЮЯЄIЇҐі]+$/i, + "vi-VN": /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i, + "ko-KR": /^[ㄱ-ㅎㅏ-ㅣ가-힣]*$/, + "ku-IQ": /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i, + ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/, + he: /^[א-ת]+$/, + fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i, + bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣৰৱ৲৳৴৵৶৷৸৹৺৻']+$/, + eo: /^[ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i, + "hi-IN": /^[\u0900-\u0961]+[\u0972-\u097F]*$/i, + "si-LK": /^[\u0D80-\u0DFF]+$/, + "ta-IN": /^[\u0B80-\u0BFF]+$/i, + "te-IN": /^[\u0C00-\u0C7F]+$/i, + "kn-IN": /^[\u0C80-\u0CFF]+$/i, + "ml-IN": /^[\u0D00-\u0D7F]+$/i, + "gu-IN": /^[\u0A80-\u0AFF]+$/i, + "pa-IN": /^[\u0A00-\u0A7F]+$/i, + "or-IN": /^[\u0B00-\u0B7F]+$/i + }; + var alphanumeric = exports2.alphanumeric = { + "en-US": /^[0-9A-Z]+$/i, + "az-AZ": /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i, + "bg-BG": /^[0-9А-Я]+$/i, + "cs-CZ": /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i, + "da-DK": /^[0-9A-ZÆØÅ]+$/i, + "de-DE": /^[0-9A-ZÄÖÜß]+$/i, + "el-GR": /^[0-9Α-ω]+$/i, + "es-ES": /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i, + "fi-FI": /^[0-9A-ZÅÄÖ]+$/i, + "fr-FR": /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i, + "it-IT": /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i, + "ja-JP": /^[0-90-9ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i, + "hu-HU": /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i, + "nb-NO": /^[0-9A-ZÆØÅ]+$/i, + "nl-NL": /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i, + "nn-NO": /^[0-9A-ZÆØÅ]+$/i, + "pl-PL": /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i, + "pt-PT": /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i, + "ru-RU": /^[0-9А-ЯЁ]+$/i, + "kk-KZ": /^[0-9А-ЯЁ\u04D8\u04B0\u0406\u04A2\u0492\u04AE\u049A\u04E8\u04BA]+$/i, + "sl-SI": /^[0-9A-ZČĆĐŠŽ]+$/i, + "sk-SK": /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i, + "sr-RS@latin": /^[0-9A-ZČĆŽŠĐ]+$/i, + "sr-RS": /^[0-9А-ЯЂЈЉЊЋЏ]+$/i, + "sv-SE": /^[0-9A-ZÅÄÖ]+$/i, + "th-TH": /^[ก-๙\s]+$/i, + "tr-TR": /^[0-9A-ZÇĞİıÖŞÜ]+$/i, + "uk-UA": /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i, + "ko-KR": /^[0-9ㄱ-ㅎㅏ-ㅣ가-힣]*$/, + "ku-IQ": /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i, + "vi-VN": /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i, + ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/, + he: /^[0-9א-ת]+$/, + fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i, + bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸৹৺৻']+$/, + eo: /^[0-9ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i, + "hi-IN": /^[\u0900-\u0963]+[\u0966-\u097F]*$/i, + "si-LK": /^[0-9\u0D80-\u0DFF]+$/, + "ta-IN": /^[0-9\u0B80-\u0BFF.]+$/i, + "te-IN": /^[0-9\u0C00-\u0C7F.]+$/i, + "kn-IN": /^[0-9\u0C80-\u0CFF.]+$/i, + "ml-IN": /^[0-9\u0D00-\u0D7F.]+$/i, + "gu-IN": /^[0-9\u0A80-\u0AFF.]+$/i, + "pa-IN": /^[0-9\u0A00-\u0A7F.]+$/i, + "or-IN": /^[0-9\u0B00-\u0B7F.]+$/i + }; + var decimal = exports2.decimal = { + "en-US": ".", + ar: "\u066B" + }; + var englishLocales = exports2.englishLocales = ["AU", "GB", "HK", "IN", "NZ", "ZA", "ZM"]; + for (i = 0; i < englishLocales.length; i++) { + locale = "en-".concat(englishLocales[i]); + alpha[locale] = alpha["en-US"]; + alphanumeric[locale] = alphanumeric["en-US"]; + decimal[locale] = decimal["en-US"]; + } + var locale; + var i; + var arabicLocales = exports2.arabicLocales = ["AE", "BH", "DZ", "EG", "IQ", "JO", "KW", "LB", "LY", "MA", "QM", "QA", "SA", "SD", "SY", "TN", "YE"]; + for (_i = 0; _i < arabicLocales.length; _i++) { + _locale = "ar-".concat(arabicLocales[_i]); + alpha[_locale] = alpha.ar; + alphanumeric[_locale] = alphanumeric.ar; + decimal[_locale] = decimal.ar; + } + var _locale; + var _i; + var farsiLocales = exports2.farsiLocales = ["IR", "AF"]; + for (_i2 = 0; _i2 < farsiLocales.length; _i2++) { + _locale2 = "fa-".concat(farsiLocales[_i2]); + alphanumeric[_locale2] = alphanumeric.fa; + decimal[_locale2] = decimal.ar; + } + var _locale2; + var _i2; + var bengaliLocales = exports2.bengaliLocales = ["BD", "IN"]; + for (_i3 = 0; _i3 < bengaliLocales.length; _i3++) { + _locale3 = "bn-".concat(bengaliLocales[_i3]); + alpha[_locale3] = alpha.bn; + alphanumeric[_locale3] = alphanumeric.bn; + decimal[_locale3] = decimal["en-US"]; + } + var _locale3; + var _i3; + var dotDecimal = exports2.dotDecimal = ["ar-EG", "ar-LB", "ar-LY"]; + var commaDecimal = exports2.commaDecimal = ["bg-BG", "cs-CZ", "da-DK", "de-DE", "el-GR", "en-ZM", "eo", "es-ES", "fr-CA", "fr-FR", "gu-IN", "hi-IN", "hu-HU", "id-ID", "it-IT", "kk-KZ", "kn-IN", "ku-IQ", "ml-IN", "nb-NO", "nl-NL", "nn-NO", "or-IN", "pa-IN", "pl-PL", "pt-PT", "ru-RU", "si-LK", "sl-SI", "sr-RS", "sr-RS@latin", "sv-SE", "ta-IN", "te-IN", "tr-TR", "uk-UA", "vi-VN"]; + for (_i4 = 0; _i4 < dotDecimal.length; _i4++) { + decimal[dotDecimal[_i4]] = decimal["en-US"]; + } + var _i4; + for (_i5 = 0; _i5 < commaDecimal.length; _i5++) { + decimal[commaDecimal[_i5]] = ","; + } + var _i5; + alpha["fr-CA"] = alpha["fr-FR"]; + alphanumeric["fr-CA"] = alphanumeric["fr-FR"]; + alpha["pt-BR"] = alpha["pt-PT"]; + alphanumeric["pt-BR"] = alphanumeric["pt-PT"]; + decimal["pt-BR"] = decimal["pt-PT"]; + alpha["pl-Pl"] = alpha["pl-PL"]; + alphanumeric["pl-Pl"] = alphanumeric["pl-PL"]; + decimal["pl-Pl"] = decimal["pl-PL"]; + alpha["fa-AF"] = alpha.fa; + } +}); + +// node_modules/validator/lib/isFloat.js +var require_isFloat = __commonJS({ + "node_modules/validator/lib/isFloat.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isFloat; + exports2.locales = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + var _nullUndefinedCheck = _interopRequireDefault(require_nullUndefinedCheck()); + var _alpha = require_alpha(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isFloat(str, options) { + (0, _assertString.default)(str); + options = options || {}; + var float = new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(options.locale ? _alpha.decimal[options.locale] : ".", "[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$")); + if (str === "" || str === "." || str === "," || str === "-" || str === "+") { + return false; + } + var value = parseFloat(str.replace(",", ".")); + return float.test(str) && (!options.hasOwnProperty("min") || (0, _nullUndefinedCheck.default)(options.min) || value >= options.min) && (!options.hasOwnProperty("max") || (0, _nullUndefinedCheck.default)(options.max) || value <= options.max) && (!options.hasOwnProperty("lt") || (0, _nullUndefinedCheck.default)(options.lt) || value < options.lt) && (!options.hasOwnProperty("gt") || (0, _nullUndefinedCheck.default)(options.gt) || value > options.gt); + } + __name(isFloat, "isFloat"); + var locales = exports2.locales = Object.keys(_alpha.decimal); + } +}); + +// node_modules/validator/lib/toFloat.js +var require_toFloat = __commonJS({ + "node_modules/validator/lib/toFloat.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = toFloat; + var _isFloat = _interopRequireDefault(require_isFloat()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function toFloat(str) { + if (!(0, _isFloat.default)(str)) return NaN; + return parseFloat(str); + } + __name(toFloat, "toFloat"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isDivisibleBy.js +var require_isDivisibleBy = __commonJS({ + "node_modules/validator/lib/isDivisibleBy.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isDivisibleBy; + var _assertString = _interopRequireDefault(require_assertString()); + var _toFloat = _interopRequireDefault(require_toFloat()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isDivisibleBy(str, num) { + (0, _assertString.default)(str); + return (0, _toFloat.default)(str) % parseInt(num, 10) === 0; + } + __name(isDivisibleBy, "isDivisibleBy"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js +var require_IsDivisibleBy = __commonJS({ + "node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsDivisibleBy = exports2.isDivisibleBy = exports2.IS_DIVISIBLE_BY = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isDivisibleBy_1 = __importDefault2(require_isDivisibleBy()); + exports2.IS_DIVISIBLE_BY = "isDivisibleBy"; + function isDivisibleBy(value, num) { + return typeof value === "number" && typeof num === "number" && (0, isDivisibleBy_1.default)(String(value), num); + } + __name(isDivisibleBy, "isDivisibleBy"); + exports2.isDivisibleBy = isDivisibleBy; + function IsDivisibleBy(num, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_DIVISIBLE_BY, + constraints: [num], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isDivisibleBy(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be divisible by $constraint1", validationOptions) + } + }, validationOptions); + } + __name(IsDivisibleBy, "IsDivisibleBy"); + exports2.IsDivisibleBy = IsDivisibleBy; + } +}); + +// node_modules/class-validator/cjs/decorator/number/IsPositive.js +var require_IsPositive = __commonJS({ + "node_modules/class-validator/cjs/decorator/number/IsPositive.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsPositive = exports2.isPositive = exports2.IS_POSITIVE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_POSITIVE = "isPositive"; + function isPositive(value) { + return typeof value === "number" && value > 0; + } + __name(isPositive, "isPositive"); + exports2.isPositive = isPositive; + function IsPositive(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_POSITIVE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isPositive(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a positive number", validationOptions) + } + }, validationOptions); + } + __name(IsPositive, "IsPositive"); + exports2.IsPositive = IsPositive; + } +}); + +// node_modules/class-validator/cjs/decorator/number/IsNegative.js +var require_IsNegative = __commonJS({ + "node_modules/class-validator/cjs/decorator/number/IsNegative.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsNegative = exports2.isNegative = exports2.IS_NEGATIVE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_NEGATIVE = "isNegative"; + function isNegative(value) { + return typeof value === "number" && value < 0; + } + __name(isNegative, "isNegative"); + exports2.isNegative = isNegative; + function IsNegative(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_NEGATIVE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isNegative(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a negative number", validationOptions) + } + }, validationOptions); + } + __name(IsNegative, "IsNegative"); + exports2.IsNegative = IsNegative; + } +}); + +// node_modules/class-validator/cjs/decorator/number/Max.js +var require_Max = __commonJS({ + "node_modules/class-validator/cjs/decorator/number/Max.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Max = exports2.max = exports2.MAX = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.MAX = "max"; + function max(num, max2) { + return typeof num === "number" && typeof max2 === "number" && num <= max2; + } + __name(max, "max"); + exports2.max = max; + function Max(maxValue, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.MAX, + constraints: [maxValue], + validator: { + validate: /* @__PURE__ */ __name((value, args) => max(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must not be greater than $constraint1", validationOptions) + } + }, validationOptions); + } + __name(Max, "Max"); + exports2.Max = Max; + } +}); + +// node_modules/class-validator/cjs/decorator/number/Min.js +var require_Min = __commonJS({ + "node_modules/class-validator/cjs/decorator/number/Min.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Min = exports2.min = exports2.MIN = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.MIN = "min"; + function min(num, min2) { + return typeof num === "number" && typeof min2 === "number" && num >= min2; + } + __name(min, "min"); + exports2.min = min; + function Min(minValue, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.MIN, + constraints: [minValue], + validator: { + validate: /* @__PURE__ */ __name((value, args) => min(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must not be less than $constraint1", validationOptions) + } + }, validationOptions); + } + __name(Min, "Min"); + exports2.Min = Min; + } +}); + +// node_modules/class-validator/cjs/decorator/date/MinDate.js +var require_MinDate = __commonJS({ + "node_modules/class-validator/cjs/decorator/date/MinDate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MinDate = exports2.minDate = exports2.MIN_DATE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.MIN_DATE = "minDate"; + function minDate(date, minDate2) { + return date instanceof Date && date.getTime() >= (minDate2 instanceof Date ? minDate2 : minDate2()).getTime(); + } + __name(minDate, "minDate"); + exports2.minDate = minDate; + function MinDate(date, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.MIN_DATE, + constraints: [date], + validator: { + validate: /* @__PURE__ */ __name((value, args) => minDate(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => "minimal allowed date for " + eachPrefix + "$property is $constraint1", validationOptions) + } + }, validationOptions); + } + __name(MinDate, "MinDate"); + exports2.MinDate = MinDate; + } +}); + +// node_modules/class-validator/cjs/decorator/date/MaxDate.js +var require_MaxDate = __commonJS({ + "node_modules/class-validator/cjs/decorator/date/MaxDate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MaxDate = exports2.maxDate = exports2.MAX_DATE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.MAX_DATE = "maxDate"; + function maxDate(date, maxDate2) { + return date instanceof Date && date.getTime() <= (maxDate2 instanceof Date ? maxDate2 : maxDate2()).getTime(); + } + __name(maxDate, "maxDate"); + exports2.maxDate = maxDate; + function MaxDate(date, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.MAX_DATE, + constraints: [date], + validator: { + validate: /* @__PURE__ */ __name((value, args) => maxDate(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => "maximal allowed date for " + eachPrefix + "$property is $constraint1", validationOptions) + } + }, validationOptions); + } + __name(MaxDate, "MaxDate"); + exports2.MaxDate = MaxDate; + } +}); + +// node_modules/validator/lib/util/toString.js +var require_toString = __commonJS({ + "node_modules/validator/lib/util/toString.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = toString2; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function toString2(input) { + if (_typeof(input) === "object" && input !== null) { + if (typeof input.toString === "function") { + input = input.toString(); + } else { + input = "[object Object]"; + } + } else if (input === null || typeof input === "undefined" || isNaN(input) && !input.length) { + input = ""; + } + return String(input); + } + __name(toString2, "toString"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/contains.js +var require_contains = __commonJS({ + "node_modules/validator/lib/contains.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = contains; + var _assertString = _interopRequireDefault(require_assertString()); + var _toString = _interopRequireDefault(require_toString()); + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var defaultContainsOptions = { + ignoreCase: false, + minOccurrences: 1 + }; + function contains(str, elem, options) { + (0, _assertString.default)(str); + options = (0, _merge.default)(options, defaultContainsOptions); + if (options.ignoreCase) { + return str.toLowerCase().split((0, _toString.default)(elem).toLowerCase()).length > options.minOccurrences; + } + return str.split((0, _toString.default)(elem)).length > options.minOccurrences; + } + __name(contains, "contains"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/Contains.js +var require_Contains = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/Contains.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Contains = exports2.contains = exports2.CONTAINS = void 0; + var ValidateBy_1 = require_ValidateBy(); + var contains_1 = __importDefault2(require_contains()); + exports2.CONTAINS = "contains"; + function contains(value, seed) { + return typeof value === "string" && (0, contains_1.default)(value, seed); + } + __name(contains, "contains"); + exports2.contains = contains; + function Contains(seed, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.CONTAINS, + constraints: [seed], + validator: { + validate: /* @__PURE__ */ __name((value, args) => contains(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain a $constraint1 string", validationOptions) + } + }, validationOptions); + } + __name(Contains, "Contains"); + exports2.Contains = Contains; + } +}); + +// node_modules/class-validator/cjs/decorator/string/NotContains.js +var require_NotContains = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/NotContains.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NotContains = exports2.notContains = exports2.NOT_CONTAINS = void 0; + var ValidateBy_1 = require_ValidateBy(); + var contains_1 = __importDefault2(require_contains()); + exports2.NOT_CONTAINS = "notContains"; + function notContains(value, seed) { + return typeof value === "string" && !(0, contains_1.default)(value, seed); + } + __name(notContains, "notContains"); + exports2.notContains = notContains; + function NotContains(seed, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.NOT_CONTAINS, + constraints: [seed], + validator: { + validate: /* @__PURE__ */ __name((value, args) => notContains(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property should not contain a $constraint1 string", validationOptions) + } + }, validationOptions); + } + __name(NotContains, "NotContains"); + exports2.NotContains = NotContains; + } +}); + +// node_modules/validator/lib/isAlpha.js +var require_isAlpha = __commonJS({ + "node_modules/validator/lib/isAlpha.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isAlpha; + exports2.locales = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + var _alpha = require_alpha(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isAlpha(_str) { + var locale = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "en-US"; + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + (0, _assertString.default)(_str); + var str = _str; + var ignore = options.ignore; + if (ignore) { + if (ignore instanceof RegExp) { + str = str.replace(ignore, ""); + } else if (typeof ignore === "string") { + str = str.replace(new RegExp("[".concat(ignore.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g, "\\$&"), "]"), "g"), ""); + } else { + throw new Error("ignore should be instance of a String or RegExp"); + } + } + if (locale in _alpha.alpha) { + return _alpha.alpha[locale].test(str); + } + throw new Error("Invalid locale '".concat(locale, "'")); + } + __name(isAlpha, "isAlpha"); + var locales = exports2.locales = Object.keys(_alpha.alpha); + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsAlpha.js +var require_IsAlpha = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsAlpha.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsAlpha = exports2.isAlpha = exports2.IS_ALPHA = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isAlpha_1 = __importDefault2(require_isAlpha()); + exports2.IS_ALPHA = "isAlpha"; + function isAlpha(value, locale) { + return typeof value === "string" && (0, isAlpha_1.default)(value, locale); + } + __name(isAlpha, "isAlpha"); + exports2.isAlpha = isAlpha; + function IsAlpha(locale, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ALPHA, + constraints: [locale], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isAlpha(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain only letters (a-zA-Z)", validationOptions) + } + }, validationOptions); + } + __name(IsAlpha, "IsAlpha"); + exports2.IsAlpha = IsAlpha; + } +}); + +// node_modules/validator/lib/isAlphanumeric.js +var require_isAlphanumeric = __commonJS({ + "node_modules/validator/lib/isAlphanumeric.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isAlphanumeric; + exports2.locales = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + var _alpha = require_alpha(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isAlphanumeric(_str) { + var locale = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "en-US"; + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + (0, _assertString.default)(_str); + var str = _str; + var ignore = options.ignore; + if (ignore) { + if (ignore instanceof RegExp) { + str = str.replace(ignore, ""); + } else if (typeof ignore === "string") { + str = str.replace(new RegExp("[".concat(ignore.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g, "\\$&"), "]"), "g"), ""); + } else { + throw new Error("ignore should be instance of a String or RegExp"); + } + } + if (locale in _alpha.alphanumeric) { + return _alpha.alphanumeric[locale].test(str); + } + throw new Error("Invalid locale '".concat(locale, "'")); + } + __name(isAlphanumeric, "isAlphanumeric"); + var locales = exports2.locales = Object.keys(_alpha.alphanumeric); + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js +var require_IsAlphanumeric = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsAlphanumeric = exports2.isAlphanumeric = exports2.IS_ALPHANUMERIC = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isAlphanumeric_1 = __importDefault2(require_isAlphanumeric()); + exports2.IS_ALPHANUMERIC = "isAlphanumeric"; + function isAlphanumeric(value, locale) { + return typeof value === "string" && (0, isAlphanumeric_1.default)(value, locale); + } + __name(isAlphanumeric, "isAlphanumeric"); + exports2.isAlphanumeric = isAlphanumeric; + function IsAlphanumeric(locale, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ALPHANUMERIC, + constraints: [locale], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isAlphanumeric(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain only letters and numbers", validationOptions) + } + }, validationOptions); + } + __name(IsAlphanumeric, "IsAlphanumeric"); + exports2.IsAlphanumeric = IsAlphanumeric; + } +}); + +// node_modules/validator/lib/util/includesArray.js +var require_includesArray = __commonJS({ + "node_modules/validator/lib/util/includesArray.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var includes = /* @__PURE__ */ __name(function includes2(arr, val) { + return arr.some(function(arrVal) { + return val === arrVal; + }); + }, "includes"); + var _default = exports2.default = includes; + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isDecimal.js +var require_isDecimal = __commonJS({ + "node_modules/validator/lib/isDecimal.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isDecimal; + var _merge = _interopRequireDefault(require_merge()); + var _assertString = _interopRequireDefault(require_assertString()); + var _includesArray = _interopRequireDefault(require_includesArray()); + var _alpha = require_alpha(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function decimalRegExp(options) { + var regExp = new RegExp("^[-+]?([0-9]+)?(\\".concat(_alpha.decimal[options.locale], "[0-9]{").concat(options.decimal_digits, "})").concat(options.force_decimal ? "" : "?", "$")); + return regExp; + } + __name(decimalRegExp, "decimalRegExp"); + var default_decimal_options = { + force_decimal: false, + decimal_digits: "1,", + locale: "en-US" + }; + var blacklist = ["", "-", "+"]; + function isDecimal(str, options) { + (0, _assertString.default)(str); + options = (0, _merge.default)(options, default_decimal_options); + if (options.locale in _alpha.decimal) { + return !(0, _includesArray.default)(blacklist, str.replace(/ /g, "")) && decimalRegExp(options).test(str); + } + throw new Error("Invalid locale '".concat(options.locale, "'")); + } + __name(isDecimal, "isDecimal"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsDecimal.js +var require_IsDecimal = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsDecimal.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsDecimal = exports2.isDecimal = exports2.IS_DECIMAL = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isDecimal_1 = __importDefault2(require_isDecimal()); + exports2.IS_DECIMAL = "isDecimal"; + function isDecimal(value, options) { + return typeof value === "string" && (0, isDecimal_1.default)(value, options); + } + __name(isDecimal, "isDecimal"); + exports2.isDecimal = isDecimal; + function IsDecimal(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_DECIMAL, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isDecimal(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property is not a valid decimal number.", validationOptions) + } + }, validationOptions); + } + __name(IsDecimal, "IsDecimal"); + exports2.IsDecimal = IsDecimal; + } +}); + +// node_modules/validator/lib/isAscii.js +var require_isAscii = __commonJS({ + "node_modules/validator/lib/isAscii.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isAscii; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var ascii = /^[\x00-\x7F]+$/; + function isAscii(str) { + (0, _assertString.default)(str); + return ascii.test(str); + } + __name(isAscii, "isAscii"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsAscii.js +var require_IsAscii = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsAscii.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsAscii = exports2.isAscii = exports2.IS_ASCII = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isAscii_1 = __importDefault2(require_isAscii()); + exports2.IS_ASCII = "isAscii"; + function isAscii(value) { + return typeof value === "string" && (0, isAscii_1.default)(value); + } + __name(isAscii, "isAscii"); + exports2.isAscii = isAscii; + function IsAscii(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ASCII, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isAscii(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain only ASCII characters", validationOptions) + } + }, validationOptions); + } + __name(IsAscii, "IsAscii"); + exports2.IsAscii = IsAscii; + } +}); + +// node_modules/validator/lib/isBase64.js +var require_isBase64 = __commonJS({ + "node_modules/validator/lib/isBase64.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isBase64; + var _assertString = _interopRequireDefault(require_assertString()); + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var base64WithPadding = /^[A-Za-z0-9+/]+={0,2}$/; + var base64WithoutPadding = /^[A-Za-z0-9+/]+$/; + var base64UrlWithPadding = /^[A-Za-z0-9_-]+={0,2}$/; + var base64UrlWithoutPadding = /^[A-Za-z0-9_-]+$/; + function isBase64(str, options) { + var _options; + (0, _assertString.default)(str); + options = (0, _merge.default)(options, { + urlSafe: false, + padding: !((_options = options) !== null && _options !== void 0 && _options.urlSafe) + }); + if (str === "") return true; + if (options.padding && str.length % 4 !== 0) return false; + var regex; + if (options.urlSafe) { + regex = options.padding ? base64UrlWithPadding : base64UrlWithoutPadding; + } else { + regex = options.padding ? base64WithPadding : base64WithoutPadding; + } + return (!options.padding || str.length % 4 === 0) && regex.test(str); + } + __name(isBase64, "isBase64"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsBase64.js +var require_IsBase64 = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsBase64.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsBase64 = exports2.isBase64 = exports2.IS_BASE64 = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isBase64_1 = __importDefault2(require_isBase64()); + exports2.IS_BASE64 = "isBase64"; + function isBase64(value, options) { + return typeof value === "string" && (0, isBase64_1.default)(value, options); + } + __name(isBase64, "isBase64"); + exports2.isBase64 = isBase64; + function IsBase64(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_BASE64, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isBase64(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be base64 encoded", validationOptions) + } + }, validationOptions); + } + __name(IsBase64, "IsBase64"); + exports2.IsBase64 = IsBase64; + } +}); + +// node_modules/validator/lib/isByteLength.js +var require_isByteLength = __commonJS({ + "node_modules/validator/lib/isByteLength.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isByteLength; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function isByteLength(str, options) { + (0, _assertString.default)(str); + var min; + var max; + if (_typeof(options) === "object") { + min = options.min || 0; + max = options.max; + } else { + min = arguments[1]; + max = arguments[2]; + } + var len = encodeURI(str).split(/%..|./).length - 1; + return len >= min && (typeof max === "undefined" || len <= max); + } + __name(isByteLength, "isByteLength"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsByteLength.js +var require_IsByteLength = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsByteLength.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsByteLength = exports2.isByteLength = exports2.IS_BYTE_LENGTH = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isByteLength_1 = __importDefault2(require_isByteLength()); + exports2.IS_BYTE_LENGTH = "isByteLength"; + function isByteLength(value, min, max) { + return typeof value === "string" && (0, isByteLength_1.default)(value, { min, max }); + } + __name(isByteLength, "isByteLength"); + exports2.isByteLength = isByteLength; + function IsByteLength(min, max, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_BYTE_LENGTH, + constraints: [min, max], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isByteLength(value, args === null || args === void 0 ? void 0 : args.constraints[0], args === null || args === void 0 ? void 0 : args.constraints[1]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property's byte length must fall into ($constraint1, $constraint2) range", validationOptions) + } + }, validationOptions); + } + __name(IsByteLength, "IsByteLength"); + exports2.IsByteLength = IsByteLength; + } +}); + +// node_modules/validator/lib/isLuhnNumber.js +var require_isLuhnNumber = __commonJS({ + "node_modules/validator/lib/isLuhnNumber.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isLuhnNumber; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isLuhnNumber(str) { + (0, _assertString.default)(str); + var sanitized = str.replace(/[- ]+/g, ""); + var sum = 0; + var digit; + var tmpNum; + var shouldDouble; + for (var i = sanitized.length - 1; i >= 0; i--) { + digit = sanitized.substring(i, i + 1); + tmpNum = parseInt(digit, 10); + if (shouldDouble) { + tmpNum *= 2; + if (tmpNum >= 10) { + sum += tmpNum % 10 + 1; + } else { + sum += tmpNum; + } + } else { + sum += tmpNum; + } + shouldDouble = !shouldDouble; + } + return !!(sum % 10 === 0 ? sanitized : false); + } + __name(isLuhnNumber, "isLuhnNumber"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isCreditCard.js +var require_isCreditCard = __commonJS({ + "node_modules/validator/lib/isCreditCard.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isCreditCard; + var _assertString = _interopRequireDefault(require_assertString()); + var _isLuhnNumber = _interopRequireDefault(require_isLuhnNumber()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var cards = { + amex: /^3[47][0-9]{13}$/, + dinersclub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/, + discover: /^6(?:011|5[0-9][0-9])[0-9]{12,15}$/, + jcb: /^(?:2131|1800|35\d{3})\d{11}$/, + mastercard: /^5[1-5][0-9]{2}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$/, + // /^[25][1-7][0-9]{14}$/; + unionpay: /^(6[27][0-9]{14}|^(81[0-9]{14,17}))$/, + visa: /^(?:4[0-9]{12})(?:[0-9]{3,6})?$/ + }; + var allCards = (function() { + var tmpCardsArray = []; + for (var cardProvider in cards) { + if (cards.hasOwnProperty(cardProvider)) { + tmpCardsArray.push(cards[cardProvider]); + } + } + return tmpCardsArray; + })(); + function isCreditCard(card) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + (0, _assertString.default)(card); + var provider = options.provider; + var sanitized = card.replace(/[- ]+/g, ""); + if (provider && provider.toLowerCase() in cards) { + if (!cards[provider.toLowerCase()].test(sanitized)) { + return false; + } + } else if (provider && !(provider.toLowerCase() in cards)) { + throw new Error("".concat(provider, " is not a valid credit card provider.")); + } else if (!allCards.some(function(cardProvider) { + return cardProvider.test(sanitized); + })) { + return false; + } + return (0, _isLuhnNumber.default)(card); + } + __name(isCreditCard, "isCreditCard"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsCreditCard.js +var require_IsCreditCard = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsCreditCard.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsCreditCard = exports2.isCreditCard = exports2.IS_CREDIT_CARD = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isCreditCard_1 = __importDefault2(require_isCreditCard()); + exports2.IS_CREDIT_CARD = "isCreditCard"; + function isCreditCard(value) { + return typeof value === "string" && (0, isCreditCard_1.default)(value); + } + __name(isCreditCard, "isCreditCard"); + exports2.isCreditCard = isCreditCard; + function IsCreditCard(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_CREDIT_CARD, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isCreditCard(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a credit card", validationOptions) + } + }, validationOptions); + } + __name(IsCreditCard, "IsCreditCard"); + exports2.IsCreditCard = IsCreditCard; + } +}); + +// node_modules/validator/lib/isCurrency.js +var require_isCurrency = __commonJS({ + "node_modules/validator/lib/isCurrency.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isCurrency; + var _merge = _interopRequireDefault(require_merge()); + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function currencyRegex(options) { + var decimal_digits = "\\d{".concat(options.digits_after_decimal[0], "}"); + options.digits_after_decimal.forEach(function(digit, index) { + if (index !== 0) decimal_digits = "".concat(decimal_digits, "|\\d{").concat(digit, "}"); + }); + var symbol = "(".concat(options.symbol.replace(/\W/, function(m) { + return "\\".concat(m); + }), ")").concat(options.require_symbol ? "" : "?"), negative = "-?", whole_dollar_amount_without_sep = "[1-9]\\d*", whole_dollar_amount_with_sep = "[1-9]\\d{0,2}(\\".concat(options.thousands_separator, "\\d{3})*"), valid_whole_dollar_amounts = ["0", whole_dollar_amount_without_sep, whole_dollar_amount_with_sep], whole_dollar_amount = "(".concat(valid_whole_dollar_amounts.join("|"), ")?"), decimal_amount = "(\\".concat(options.decimal_separator, "(").concat(decimal_digits, "))").concat(options.require_decimal ? "" : "?"); + var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : ""); + if (options.allow_negatives && !options.parens_for_negatives) { + if (options.negative_sign_after_digits) { + pattern += negative; + } else if (options.negative_sign_before_digits) { + pattern = negative + pattern; + } + } + if (options.allow_negative_sign_placeholder) { + pattern = "( (?!\\-))?".concat(pattern); + } else if (options.allow_space_after_symbol) { + pattern = " ?".concat(pattern); + } else if (options.allow_space_after_digits) { + pattern += "( (?!$))?"; + } + if (options.symbol_after_digits) { + pattern += symbol; + } else { + pattern = symbol + pattern; + } + if (options.allow_negatives) { + if (options.parens_for_negatives) { + pattern = "(\\(".concat(pattern, "\\)|").concat(pattern, ")"); + } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) { + pattern = negative + pattern; + } + } + return new RegExp("^(?!-? )(?=.*\\d)".concat(pattern, "$")); + } + __name(currencyRegex, "currencyRegex"); + var default_currency_options = { + symbol: "$", + require_symbol: false, + allow_space_after_symbol: false, + symbol_after_digits: false, + allow_negatives: true, + parens_for_negatives: false, + negative_sign_before_digits: false, + negative_sign_after_digits: false, + allow_negative_sign_placeholder: false, + thousands_separator: ",", + decimal_separator: ".", + allow_decimal: true, + require_decimal: false, + digits_after_decimal: [2], + allow_space_after_digits: false + }; + function isCurrency(str, options) { + (0, _assertString.default)(str); + options = (0, _merge.default)(options, default_currency_options); + return currencyRegex(options).test(str); + } + __name(isCurrency, "isCurrency"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsCurrency.js +var require_IsCurrency = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsCurrency.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsCurrency = exports2.isCurrency = exports2.IS_CURRENCY = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isCurrency_1 = __importDefault2(require_isCurrency()); + exports2.IS_CURRENCY = "isCurrency"; + function isCurrency(value, options) { + return typeof value === "string" && (0, isCurrency_1.default)(value, options); + } + __name(isCurrency, "isCurrency"); + exports2.isCurrency = isCurrency; + function IsCurrency(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_CURRENCY, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isCurrency(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a currency", validationOptions) + } + }, validationOptions); + } + __name(IsCurrency, "IsCurrency"); + exports2.IsCurrency = IsCurrency; + } +}); + +// node_modules/validator/lib/util/checkHost.js +var require_checkHost = __commonJS({ + "node_modules/validator/lib/util/checkHost.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = checkHost; + function isRegExp(obj) { + return Object.prototype.toString.call(obj) === "[object RegExp]"; + } + __name(isRegExp, "isRegExp"); + function checkHost(host, matches) { + for (var i = 0; i < matches.length; i++) { + var match = matches[i]; + if (host === match || isRegExp(match) && match.test(host)) { + return true; + } + } + return false; + } + __name(checkHost, "checkHost"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isFQDN.js +var require_isFQDN = __commonJS({ + "node_modules/validator/lib/isFQDN.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isFQDN; + var _assertString = _interopRequireDefault(require_assertString()); + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var default_fqdn_options = { + require_tld: true, + allow_underscores: false, + allow_trailing_dot: false, + allow_numeric_tld: false, + allow_wildcard: false, + ignore_max_length: false + }; + function isFQDN(str, options) { + (0, _assertString.default)(str); + options = (0, _merge.default)(options, default_fqdn_options); + if (options.allow_trailing_dot && str[str.length - 1] === ".") { + str = str.substring(0, str.length - 1); + } + if (options.allow_wildcard === true && str.indexOf("*.") === 0) { + str = str.substring(2); + } + var parts = str.split("."); + var tld = parts[parts.length - 1]; + if (options.require_tld) { + if (parts.length < 2) { + return false; + } + if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) { + return false; + } + if (/\s/.test(tld)) { + return false; + } + } + if (!options.allow_numeric_tld && /^\d+$/.test(tld)) { + return false; + } + return parts.every(function(part) { + if (part.length > 63 && !options.ignore_max_length) { + return false; + } + if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) { + return false; + } + if (/[\uff01-\uff5e]/.test(part)) { + return false; + } + if (/^-|-$/.test(part)) { + return false; + } + if (!options.allow_underscores && /_/.test(part)) { + return false; + } + return true; + }); + } + __name(isFQDN, "isFQDN"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isIP.js +var require_isIP = __commonJS({ + "node_modules/validator/lib/isIP.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isIP; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + var IPv4SegmentFormat = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"; + var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat); + var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$")); + var IPv6SegmentFormat = "(?:[0-9a-fA-F]{1,4})"; + var IPv6AddressRegExp = new RegExp("^(" + "(?:".concat(IPv6SegmentFormat, ":){7}(?:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){6}(?:").concat(IPv4AddressFormat, "|:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){5}(?::").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,2}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){4}(?:(:").concat(IPv6SegmentFormat, "){0,1}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,3}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){3}(?:(:").concat(IPv6SegmentFormat, "){0,2}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,4}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){2}(?:(:").concat(IPv6SegmentFormat, "){0,3}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,5}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){1}(?:(:").concat(IPv6SegmentFormat, "){0,4}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,6}|:)|") + "(?::((?::".concat(IPv6SegmentFormat, "){0,5}:").concat(IPv4AddressFormat, "|(?::").concat(IPv6SegmentFormat, "){1,7}|:))") + ")(%[0-9a-zA-Z.]{1,})?$"); + function isIP(ipAddress) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + (0, _assertString.default)(ipAddress); + var version = (_typeof(options) === "object" ? options.version : arguments[1]) || ""; + if (!version) { + return isIP(ipAddress, { + version: 4 + }) || isIP(ipAddress, { + version: 6 + }); + } + if (version.toString() === "4") { + return IPv4AddressRegExp.test(ipAddress); + } + if (version.toString() === "6") { + return IPv6AddressRegExp.test(ipAddress); + } + return false; + } + __name(isIP, "isIP"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isEmail.js +var require_isEmail = __commonJS({ + "node_modules/validator/lib/isEmail.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isEmail; + var _assertString = _interopRequireDefault(require_assertString()); + var _checkHost = _interopRequireDefault(require_checkHost()); + var _isByteLength = _interopRequireDefault(require_isByteLength()); + var _isFQDN = _interopRequireDefault(require_isFQDN()); + var _isIP = _interopRequireDefault(require_isIP()); + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var default_email_options = { + allow_display_name: false, + allow_underscores: false, + require_display_name: false, + allow_utf8_local_part: true, + require_tld: true, + blacklisted_chars: "", + ignore_max_length: false, + host_blacklist: [], + host_whitelist: [] + }; + var splitNameAddress = /^([^\x00-\x1F\x7F-\x9F\cX]+)]/.test(display_name_without_quotes); + if (contains_illegal) { + if (display_name_without_quotes === display_name) { + return false; + } + var all_start_with_back_slash = display_name_without_quotes.split('"').length === display_name_without_quotes.split('\\"').length; + if (!all_start_with_back_slash) { + return false; + } + } + return true; + } + __name(validateDisplayName, "validateDisplayName"); + function isEmail(str, options) { + (0, _assertString.default)(str); + options = (0, _merge.default)(options, default_email_options); + if (options.require_display_name || options.allow_display_name) { + var display_email = str.match(splitNameAddress); + if (display_email) { + var display_name = display_email[1]; + str = str.replace(display_name, "").replace(/(^<|>$)/g, ""); + if (display_name.endsWith(" ")) { + display_name = display_name.slice(0, -1); + } + if (!validateDisplayName(display_name)) { + return false; + } + } else if (options.require_display_name) { + return false; + } + } + if (!options.ignore_max_length && str.length > defaultMaxEmailLength) { + return false; + } + var parts = str.split("@"); + var domain = parts.pop(); + var lower_domain = domain.toLowerCase(); + if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) { + return false; + } + if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) { + return false; + } + var user = parts.join("@"); + if (options.domain_specific_validation && (lower_domain === "gmail.com" || lower_domain === "googlemail.com")) { + user = user.toLowerCase(); + var username = user.split("+")[0]; + if (!(0, _isByteLength.default)(username.replace(/\./g, ""), { + min: 6, + max: 30 + })) { + return false; + } + var _user_parts = username.split("."); + for (var i = 0; i < _user_parts.length; i++) { + if (!gmailUserPart.test(_user_parts[i])) { + return false; + } + } + } + if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, { + max: 64 + }) || !(0, _isByteLength.default)(domain, { + max: 254 + }))) { + return false; + } + if (!(0, _isFQDN.default)(domain, { + require_tld: options.require_tld, + ignore_max_length: options.ignore_max_length, + allow_underscores: options.allow_underscores + })) { + if (!options.allow_ip_domain) { + return false; + } + if (!(0, _isIP.default)(domain)) { + if (!domain.startsWith("[") || !domain.endsWith("]")) { + return false; + } + var noBracketdomain = domain.slice(1, -1); + if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) { + return false; + } + } + } + if (options.blacklisted_chars) { + if (user.search(new RegExp("[".concat(options.blacklisted_chars, "]+"), "g")) !== -1) return false; + } + if (user[0] === '"' && user[user.length - 1] === '"') { + user = user.slice(1, user.length - 1); + return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user); + } + var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart; + var user_parts = user.split("."); + for (var _i = 0; _i < user_parts.length; _i++) { + if (!pattern.test(user_parts[_i])) { + return false; + } + } + return true; + } + __name(isEmail, "isEmail"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsEmail.js +var require_IsEmail = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsEmail.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsEmail = exports2.isEmail = exports2.IS_EMAIL = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isEmail_1 = __importDefault2(require_isEmail()); + exports2.IS_EMAIL = "isEmail"; + function isEmail(value, options) { + return typeof value === "string" && (0, isEmail_1.default)(value, options); + } + __name(isEmail, "isEmail"); + exports2.isEmail = isEmail; + function IsEmail(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_EMAIL, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isEmail(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an email", validationOptions) + } + }, validationOptions); + } + __name(IsEmail, "IsEmail"); + exports2.IsEmail = IsEmail; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsFQDN.js +var require_IsFQDN = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsFQDN.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsFQDN = exports2.isFQDN = exports2.IS_FQDN = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isFQDN_1 = __importDefault2(require_isFQDN()); + exports2.IS_FQDN = "isFqdn"; + function isFQDN(value, options) { + return typeof value === "string" && (0, isFQDN_1.default)(value, options); + } + __name(isFQDN, "isFQDN"); + exports2.isFQDN = isFQDN; + function IsFQDN(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_FQDN, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isFQDN(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid domain name", validationOptions) + } + }, validationOptions); + } + __name(IsFQDN, "IsFQDN"); + exports2.IsFQDN = IsFQDN; + } +}); + +// node_modules/validator/lib/isFullWidth.js +var require_isFullWidth = __commonJS({ + "node_modules/validator/lib/isFullWidth.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isFullWidth; + exports2.fullWidth = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var fullWidth = exports2.fullWidth = /[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/; + function isFullWidth(str) { + (0, _assertString.default)(str); + return fullWidth.test(str); + } + __name(isFullWidth, "isFullWidth"); + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsFullWidth.js +var require_IsFullWidth = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsFullWidth.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsFullWidth = exports2.isFullWidth = exports2.IS_FULL_WIDTH = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isFullWidth_1 = __importDefault2(require_isFullWidth()); + exports2.IS_FULL_WIDTH = "isFullWidth"; + function isFullWidth(value) { + return typeof value === "string" && (0, isFullWidth_1.default)(value); + } + __name(isFullWidth, "isFullWidth"); + exports2.isFullWidth = isFullWidth; + function IsFullWidth(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_FULL_WIDTH, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isFullWidth(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain a full-width characters", validationOptions) + } + }, validationOptions); + } + __name(IsFullWidth, "IsFullWidth"); + exports2.IsFullWidth = IsFullWidth; + } +}); + +// node_modules/validator/lib/isHalfWidth.js +var require_isHalfWidth = __commonJS({ + "node_modules/validator/lib/isHalfWidth.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isHalfWidth; + exports2.halfWidth = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var halfWidth = exports2.halfWidth = /[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/; + function isHalfWidth(str) { + (0, _assertString.default)(str); + return halfWidth.test(str); + } + __name(isHalfWidth, "isHalfWidth"); + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js +var require_IsHalfWidth = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsHalfWidth = exports2.isHalfWidth = exports2.IS_HALF_WIDTH = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isHalfWidth_1 = __importDefault2(require_isHalfWidth()); + exports2.IS_HALF_WIDTH = "isHalfWidth"; + function isHalfWidth(value) { + return typeof value === "string" && (0, isHalfWidth_1.default)(value); + } + __name(isHalfWidth, "isHalfWidth"); + exports2.isHalfWidth = isHalfWidth; + function IsHalfWidth(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_HALF_WIDTH, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isHalfWidth(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain a half-width characters", validationOptions) + } + }, validationOptions); + } + __name(IsHalfWidth, "IsHalfWidth"); + exports2.IsHalfWidth = IsHalfWidth; + } +}); + +// node_modules/validator/lib/isVariableWidth.js +var require_isVariableWidth = __commonJS({ + "node_modules/validator/lib/isVariableWidth.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isVariableWidth; + var _assertString = _interopRequireDefault(require_assertString()); + var _isFullWidth = require_isFullWidth(); + var _isHalfWidth = require_isHalfWidth(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isVariableWidth(str) { + (0, _assertString.default)(str); + return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str); + } + __name(isVariableWidth, "isVariableWidth"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js +var require_IsVariableWidth = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsVariableWidth = exports2.isVariableWidth = exports2.IS_VARIABLE_WIDTH = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isVariableWidth_1 = __importDefault2(require_isVariableWidth()); + exports2.IS_VARIABLE_WIDTH = "isVariableWidth"; + function isVariableWidth(value) { + return typeof value === "string" && (0, isVariableWidth_1.default)(value); + } + __name(isVariableWidth, "isVariableWidth"); + exports2.isVariableWidth = isVariableWidth; + function IsVariableWidth(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_VARIABLE_WIDTH, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isVariableWidth(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain a full-width and half-width characters", validationOptions) + } + }, validationOptions); + } + __name(IsVariableWidth, "IsVariableWidth"); + exports2.IsVariableWidth = IsVariableWidth; + } +}); + +// node_modules/validator/lib/isHexColor.js +var require_isHexColor = __commonJS({ + "node_modules/validator/lib/isHexColor.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isHexColor; + var _assertString = _interopRequireDefault(require_assertString()); + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i; + var hexcolor_with_prefix = /^#([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i; + var default_is_hexcolor_options = { + require_hashtag: false + }; + function isHexColor(str, options) { + (0, _assertString.default)(str); + options = (0, _merge.default)(options, default_is_hexcolor_options); + var hexcolor_regex = options.require_hashtag ? hexcolor_with_prefix : hexcolor; + return hexcolor_regex.test(str); + } + __name(isHexColor, "isHexColor"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsHexColor.js +var require_IsHexColor = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsHexColor.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsHexColor = exports2.isHexColor = exports2.IS_HEX_COLOR = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isHexColor_1 = __importDefault2(require_isHexColor()); + exports2.IS_HEX_COLOR = "isHexColor"; + function isHexColor(value) { + return typeof value === "string" && (0, isHexColor_1.default)(value); + } + __name(isHexColor, "isHexColor"); + exports2.isHexColor = isHexColor; + function IsHexColor(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_HEX_COLOR, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isHexColor(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a hexadecimal color", validationOptions) + } + }, validationOptions); + } + __name(IsHexColor, "IsHexColor"); + exports2.IsHexColor = IsHexColor; + } +}); + +// node_modules/validator/lib/isHexadecimal.js +var require_isHexadecimal = __commonJS({ + "node_modules/validator/lib/isHexadecimal.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isHexadecimal; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var hexadecimal = /^(0x|0h)?[0-9A-F]+$/i; + function isHexadecimal(str) { + (0, _assertString.default)(str); + return hexadecimal.test(str); + } + __name(isHexadecimal, "isHexadecimal"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js +var require_IsHexadecimal = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsHexadecimal = exports2.isHexadecimal = exports2.IS_HEXADECIMAL = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isHexadecimal_1 = __importDefault2(require_isHexadecimal()); + exports2.IS_HEXADECIMAL = "isHexadecimal"; + function isHexadecimal(value) { + return typeof value === "string" && (0, isHexadecimal_1.default)(value); + } + __name(isHexadecimal, "isHexadecimal"); + exports2.isHexadecimal = isHexadecimal; + function IsHexadecimal(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_HEXADECIMAL, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isHexadecimal(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a hexadecimal number", validationOptions) + } + }, validationOptions); + } + __name(IsHexadecimal, "IsHexadecimal"); + exports2.IsHexadecimal = IsHexadecimal; + } +}); + +// node_modules/class-validator/cjs/decorator/ValidationOptions.js +var require_ValidationOptions = __commonJS({ + "node_modules/class-validator/cjs/decorator/ValidationOptions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isValidationOptions = void 0; + function isValidationOptions(val) { + if (!val) { + return false; + } + return "each" in val || "message" in val || "groups" in val || "always" in val || "context" in val || "validateIf" in val; + } + __name(isValidationOptions, "isValidationOptions"); + exports2.isValidationOptions = isValidationOptions; + } +}); + +// node_modules/validator/lib/isMACAddress.js +var require_isMACAddress = __commonJS({ + "node_modules/validator/lib/isMACAddress.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isMACAddress; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var macAddress48 = /^(?:[0-9a-fA-F]{2}([-:\s]))([0-9a-fA-F]{2}\1){4}([0-9a-fA-F]{2})$/; + var macAddress48NoSeparators = /^([0-9a-fA-F]){12}$/; + var macAddress48WithDots = /^([0-9a-fA-F]{4}\.){2}([0-9a-fA-F]{4})$/; + var macAddress64 = /^(?:[0-9a-fA-F]{2}([-:\s]))([0-9a-fA-F]{2}\1){6}([0-9a-fA-F]{2})$/; + var macAddress64NoSeparators = /^([0-9a-fA-F]){16}$/; + var macAddress64WithDots = /^([0-9a-fA-F]{4}\.){3}([0-9a-fA-F]{4})$/; + function isMACAddress(str, options) { + (0, _assertString.default)(str); + if (options !== null && options !== void 0 && options.eui) { + options.eui = String(options.eui); + } + if (options !== null && options !== void 0 && options.no_colons || options !== null && options !== void 0 && options.no_separators) { + if (options.eui === "48") { + return macAddress48NoSeparators.test(str); + } + if (options.eui === "64") { + return macAddress64NoSeparators.test(str); + } + return macAddress48NoSeparators.test(str) || macAddress64NoSeparators.test(str); + } + if ((options === null || options === void 0 ? void 0 : options.eui) === "48") { + return macAddress48.test(str) || macAddress48WithDots.test(str); + } + if ((options === null || options === void 0 ? void 0 : options.eui) === "64") { + return macAddress64.test(str) || macAddress64WithDots.test(str); + } + return isMACAddress(str, { + eui: "48" + }) || isMACAddress(str, { + eui: "64" + }); + } + __name(isMACAddress, "isMACAddress"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsMacAddress.js +var require_IsMacAddress = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsMacAddress.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsMACAddress = exports2.isMACAddress = exports2.IS_MAC_ADDRESS = void 0; + var ValidationOptions_1 = require_ValidationOptions(); + var ValidateBy_1 = require_ValidateBy(); + var isMACAddress_1 = __importDefault2(require_isMACAddress()); + exports2.IS_MAC_ADDRESS = "isMacAddress"; + function isMACAddress(value, options) { + return typeof value === "string" && (0, isMACAddress_1.default)(value, options); + } + __name(isMACAddress, "isMACAddress"); + exports2.isMACAddress = isMACAddress; + function IsMACAddress(optionsOrValidationOptionsArg, validationOptionsArg) { + const options = !(0, ValidationOptions_1.isValidationOptions)(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : void 0; + const validationOptions = (0, ValidationOptions_1.isValidationOptions)(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : validationOptionsArg; + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_MAC_ADDRESS, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isMACAddress(value, options), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a MAC Address", validationOptions) + } + }, validationOptions); + } + __name(IsMACAddress, "IsMACAddress"); + exports2.IsMACAddress = IsMACAddress; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsIP.js +var require_IsIP = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsIP.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsIP = exports2.isIP = exports2.IS_IP = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isIP_1 = __importDefault2(require_isIP()); + exports2.IS_IP = "isIp"; + function isIP(value, version) { + const versionStr = version ? `${version}` : void 0; + return typeof value === "string" && (0, isIP_1.default)(value, versionStr); + } + __name(isIP, "isIP"); + exports2.isIP = isIP; + function IsIP(version, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_IP, + constraints: [version], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isIP(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an ip address", validationOptions) + } + }, validationOptions); + } + __name(IsIP, "IsIP"); + exports2.IsIP = IsIP; + } +}); + +// node_modules/validator/lib/isInt.js +var require_isInt = __commonJS({ + "node_modules/validator/lib/isInt.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isInt; + var _assertString = _interopRequireDefault(require_assertString()); + var _nullUndefinedCheck = _interopRequireDefault(require_nullUndefinedCheck()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/; + var intLeadingZeroes = /^[-+]?[0-9]+$/; + function isInt(str, options) { + (0, _assertString.default)(str); + options = options || {}; + var regex = options.allow_leading_zeroes === false ? int : intLeadingZeroes; + var minCheckPassed = !options.hasOwnProperty("min") || (0, _nullUndefinedCheck.default)(options.min) || str >= options.min; + var maxCheckPassed = !options.hasOwnProperty("max") || (0, _nullUndefinedCheck.default)(options.max) || str <= options.max; + var ltCheckPassed = !options.hasOwnProperty("lt") || (0, _nullUndefinedCheck.default)(options.lt) || str < options.lt; + var gtCheckPassed = !options.hasOwnProperty("gt") || (0, _nullUndefinedCheck.default)(options.gt) || str > options.gt; + return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed; + } + __name(isInt, "isInt"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isPort.js +var require_isPort = __commonJS({ + "node_modules/validator/lib/isPort.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isPort; + var _isInt = _interopRequireDefault(require_isInt()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isPort(str) { + return (0, _isInt.default)(str, { + allow_leading_zeroes: false, + min: 0, + max: 65535 + }); + } + __name(isPort, "isPort"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsPort.js +var require_IsPort = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsPort.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsPort = exports2.isPort = exports2.IS_PORT = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isPort_1 = __importDefault2(require_isPort()); + exports2.IS_PORT = "isPort"; + function isPort(value) { + return typeof value === "string" && (0, isPort_1.default)(value); + } + __name(isPort, "isPort"); + exports2.isPort = isPort; + function IsPort(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_PORT, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isPort(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a port", validationOptions) + } + }, validationOptions); + } + __name(IsPort, "IsPort"); + exports2.IsPort = IsPort; + } +}); + +// node_modules/validator/lib/isISBN.js +var require_isISBN = __commonJS({ + "node_modules/validator/lib/isISBN.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isISBN; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var possibleIsbn10 = /^(?:[0-9]{9}X|[0-9]{10})$/; + var possibleIsbn13 = /^(?:[0-9]{13})$/; + var factor = [1, 3]; + function isISBN(isbn, options) { + (0, _assertString.default)(isbn); + var version = String((options === null || options === void 0 ? void 0 : options.version) || options); + if (!(options !== null && options !== void 0 && options.version || options)) { + return isISBN(isbn, { + version: 10 + }) || isISBN(isbn, { + version: 13 + }); + } + var sanitizedIsbn = isbn.replace(/[\s-]+/g, ""); + var checksum = 0; + if (version === "10") { + if (!possibleIsbn10.test(sanitizedIsbn)) { + return false; + } + for (var i = 0; i < version - 1; i++) { + checksum += (i + 1) * sanitizedIsbn.charAt(i); + } + if (sanitizedIsbn.charAt(9) === "X") { + checksum += 10 * 10; + } else { + checksum += 10 * sanitizedIsbn.charAt(9); + } + if (checksum % 11 === 0) { + return true; + } + } else if (version === "13") { + if (!possibleIsbn13.test(sanitizedIsbn)) { + return false; + } + for (var _i = 0; _i < 12; _i++) { + checksum += factor[_i % 2] * sanitizedIsbn.charAt(_i); + } + if (sanitizedIsbn.charAt(12) - (10 - checksum % 10) % 10 === 0) { + return true; + } + } + return false; + } + __name(isISBN, "isISBN"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsISBN.js +var require_IsISBN = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsISBN.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISBN = exports2.isISBN = exports2.IS_ISBN = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISBN_1 = __importDefault2(require_isISBN()); + exports2.IS_ISBN = "isIsbn"; + function isISBN(value, version) { + const versionStr = version ? `${version}` : void 0; + return typeof value === "string" && (0, isISBN_1.default)(value, versionStr); + } + __name(isISBN, "isISBN"); + exports2.isISBN = isISBN; + function IsISBN(version, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISBN, + constraints: [version], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISBN(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an ISBN", validationOptions) + } + }, validationOptions); + } + __name(IsISBN, "IsISBN"); + exports2.IsISBN = IsISBN; + } +}); + +// node_modules/validator/lib/isISIN.js +var require_isISIN = __commonJS({ + "node_modules/validator/lib/isISIN.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isISIN; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/; + function isISIN(str) { + (0, _assertString.default)(str); + if (!isin.test(str)) { + return false; + } + var double = true; + var sum = 0; + for (var i = str.length - 2; i >= 0; i--) { + if (str[i] >= "A" && str[i] <= "Z") { + var value = str[i].charCodeAt(0) - 55; + var lo = value % 10; + var hi = Math.trunc(value / 10); + for (var _i = 0, _arr = [lo, hi]; _i < _arr.length; _i++) { + var digit = _arr[_i]; + if (double) { + if (digit >= 5) { + sum += 1 + (digit - 5) * 2; + } else { + sum += digit * 2; + } + } else { + sum += digit; + } + double = !double; + } + } else { + var _digit = str[i].charCodeAt(0) - "0".charCodeAt(0); + if (double) { + if (_digit >= 5) { + sum += 1 + (_digit - 5) * 2; + } else { + sum += _digit * 2; + } + } else { + sum += _digit; + } + double = !double; + } + } + var check = Math.trunc((sum + 9) / 10) * 10 - sum; + return +str[str.length - 1] === check; + } + __name(isISIN, "isISIN"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsISIN.js +var require_IsISIN = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsISIN.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISIN = exports2.isISIN = exports2.IS_ISIN = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISIN_1 = __importDefault2(require_isISIN()); + exports2.IS_ISIN = "isIsin"; + function isISIN(value) { + return typeof value === "string" && (0, isISIN_1.default)(value); + } + __name(isISIN, "isISIN"); + exports2.isISIN = isISIN; + function IsISIN(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISIN, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISIN(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an ISIN (stock/security identifier)", validationOptions) + } + }, validationOptions); + } + __name(IsISIN, "IsISIN"); + exports2.IsISIN = IsISIN; + } +}); + +// node_modules/validator/lib/isISO8601.js +var require_isISO8601 = __commonJS({ + "node_modules/validator/lib/isISO8601.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isISO8601; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var iso8601 = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/; + var iso8601StrictSeparator = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/; + var isValidDate = /* @__PURE__ */ __name(function isValidDate2(str) { + var ordinalMatch = str.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/); + if (ordinalMatch) { + var oYear = Number(ordinalMatch[1]); + var oDay = Number(ordinalMatch[2]); + if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366; + return oDay <= 365; + } + var match = str.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number); + var year = match[1]; + var month = match[2]; + var day = match[3]; + var monthString = month ? "0".concat(month).slice(-2) : month; + var dayString = day ? "0".concat(day).slice(-2) : day; + var d = new Date("".concat(year, "-").concat(monthString || "01", "-").concat(dayString || "01")); + if (month && day) { + return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day; + } + return true; + }, "isValidDate"); + function isISO8601(str) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + (0, _assertString.default)(str); + var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str); + if (check && options.strict) return isValidDate(str); + return check; + } + __name(isISO8601, "isISO8601"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsISO8601.js +var require_IsISO8601 = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsISO8601.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISO8601 = exports2.isISO8601 = exports2.IS_ISO8601 = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISO8601_1 = __importDefault2(require_isISO8601()); + exports2.IS_ISO8601 = "isIso8601"; + function isISO8601(value, options) { + return typeof value === "string" && (0, isISO8601_1.default)(value, options); + } + __name(isISO8601, "isISO8601"); + exports2.isISO8601 = isISO8601; + function IsISO8601(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISO8601, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISO8601(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid ISO 8601 date string", validationOptions) + } + }, validationOptions); + } + __name(IsISO8601, "IsISO8601"); + exports2.IsISO8601 = IsISO8601; + } +}); + +// node_modules/validator/lib/isJSON.js +var require_isJSON = __commonJS({ + "node_modules/validator/lib/isJSON.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isJSON; + var _assertString = _interopRequireDefault(require_assertString()); + var _includesArray = _interopRequireDefault(require_includesArray()); + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + var default_json_options = { + allow_primitives: false, + allow_any_value: false + }; + function isJSON(str, options) { + (0, _assertString.default)(str); + try { + options = (0, _merge.default)(options, default_json_options); + var obj = JSON.parse(str); + if (options.allow_any_value) { + return true; + } + var primitives = []; + if (options.allow_primitives) { + primitives = [null, false, true]; + } + return (0, _includesArray.default)(primitives, obj) || !!obj && _typeof(obj) === "object"; + } catch (e) { + } + return false; + } + __name(isJSON, "isJSON"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsJSON.js +var require_IsJSON = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsJSON.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsJSON = exports2.isJSON = exports2.IS_JSON = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isJSON_1 = __importDefault2(require_isJSON()); + exports2.IS_JSON = "isJson"; + function isJSON(value) { + return typeof value === "string" && (0, isJSON_1.default)(value); + } + __name(isJSON, "isJSON"); + exports2.isJSON = isJSON; + function IsJSON(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_JSON, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isJSON(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a json string", validationOptions) + } + }, validationOptions); + } + __name(IsJSON, "IsJSON"); + exports2.IsJSON = IsJSON; + } +}); + +// node_modules/validator/lib/isJWT.js +var require_isJWT = __commonJS({ + "node_modules/validator/lib/isJWT.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isJWT; + var _assertString = _interopRequireDefault(require_assertString()); + var _isBase = _interopRequireDefault(require_isBase64()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isJWT(str) { + (0, _assertString.default)(str); + var dotSplit = str.split("."); + var len = dotSplit.length; + if (len !== 3) { + return false; + } + return dotSplit.reduce(function(acc, currElem) { + return acc && (0, _isBase.default)(currElem, { + urlSafe: true + }); + }, true); + } + __name(isJWT, "isJWT"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsJWT.js +var require_IsJWT = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsJWT.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsJWT = exports2.isJWT = exports2.IS_JWT = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isJWT_1 = __importDefault2(require_isJWT()); + exports2.IS_JWT = "isJwt"; + function isJWT(value) { + return typeof value === "string" && (0, isJWT_1.default)(value); + } + __name(isJWT, "isJWT"); + exports2.isJWT = isJWT; + function IsJWT(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_JWT, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isJWT(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a jwt string", validationOptions) + } + }, validationOptions); + } + __name(IsJWT, "IsJWT"); + exports2.IsJWT = IsJWT; + } +}); + +// node_modules/validator/lib/isLowercase.js +var require_isLowercase = __commonJS({ + "node_modules/validator/lib/isLowercase.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isLowercase; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isLowercase(str) { + (0, _assertString.default)(str); + return str === str.toLowerCase(); + } + __name(isLowercase, "isLowercase"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsLowercase.js +var require_IsLowercase = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsLowercase.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsLowercase = exports2.isLowercase = exports2.IS_LOWERCASE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isLowercase_1 = __importDefault2(require_isLowercase()); + exports2.IS_LOWERCASE = "isLowercase"; + function isLowercase(value) { + return typeof value === "string" && (0, isLowercase_1.default)(value); + } + __name(isLowercase, "isLowercase"); + exports2.isLowercase = isLowercase; + function IsLowercase(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_LOWERCASE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isLowercase(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a lowercase string", validationOptions) + } + }, validationOptions); + } + __name(IsLowercase, "IsLowercase"); + exports2.IsLowercase = IsLowercase; + } +}); + +// node_modules/validator/lib/isMobilePhone.js +var require_isMobilePhone = __commonJS({ + "node_modules/validator/lib/isMobilePhone.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isMobilePhone; + exports2.locales = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var phones = { + "am-AM": /^(\+?374|0)(33|4[134]|55|77|88|9[13-689])\d{6}$/, + "ar-AE": /^((\+?971)|0)?5[024568]\d{7}$/, + "ar-BH": /^(\+?973)?(3|6)\d{7}$/, + "ar-DZ": /^(\+?213|0)(5|6|7)\d{8}$/, + "ar-LB": /^(\+?961)?((3|81)\d{6}|7\d{7})$/, + "ar-EG": /^((\+?20)|0)?1[0125]\d{8}$/, + "ar-IQ": /^(\+?964|0)?7[0-9]\d{8}$/, + "ar-JO": /^(\+?962|0)?7[789]\d{7}$/, + "ar-KW": /^(\+?965)([569]\d{7}|41\d{6})$/, + "ar-LY": /^((\+?218)|0)?(9[1-6]\d{7}|[1-8]\d{7,9})$/, + "ar-MA": /^(?:(?:\+|00)212|0)[5-7]\d{8}$/, + "ar-OM": /^((\+|00)968)?([79][1-9])\d{6}$/, + "ar-PS": /^(\+?970|0)5[6|9](\d{7})$/, + "ar-SA": /^(!?(\+?966)|0)?5\d{8}$/, + "ar-SD": /^((\+?249)|0)?(9[012369]|1[012])\d{7}$/, + "ar-SY": /^(!?(\+?963)|0)?9\d{8}$/, + "ar-TN": /^(\+?216)?[2459]\d{7}$/, + "az-AZ": /^(\+994|0)(10|5[015]|7[07]|99)\d{7}$/, + "ar-QA": /^(\+?974|0)?([3567]\d{7})$/, + "bs-BA": /^((((\+|00)3876)|06))((([0-3]|[5-6])\d{6})|(4\d{7}))$/, + "be-BY": /^(\+?375)?(24|25|29|33|44)\d{7}$/, + "bg-BG": /^(\+?359|0)?8[789]\d{7}$/, + "bn-BD": /^(\+?880|0)1[13456789][0-9]{8}$/, + "ca-AD": /^(\+376)?[346]\d{5}$/, + "cs-CZ": /^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/, + "da-DK": /^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/, + "de-DE": /^((\+49|0)1)(5[0-25-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7,9}$/, + "de-AT": /^(\+43|0)\d{1,4}\d{3,12}$/, + "de-CH": /^(\+41|0)([1-9])\d{1,9}$/, + "de-LU": /^(\+352)?((6\d1)\d{6})$/, + "dv-MV": /^(\+?960)?(7[2-9]|9[1-9])\d{5}$/, + "el-GR": /^(\+?30|0)?6(8[5-9]|9(?![26])[0-9])\d{7}$/, + "el-CY": /^(\+?357?)?(9(9|7|6|5|4)\d{6})$/, + "en-AI": /^(\+?1|0)264(?:2(35|92)|4(?:6[1-2]|76|97)|5(?:3[6-9]|8[1-4])|7(?:2(4|9)|72))\d{4}$/, + "en-AU": /^(\+?61|0)4\d{8}$/, + "en-AG": /^(?:\+1|1)268(?:464|7(?:1[3-9]|[28]\d|3[0246]|64|7[0-689]))\d{4}$/, + "en-BM": /^(\+?1)?441(((3|7)\d{6}$)|(5[0-3][0-9]\d{4}$)|(59\d{5}$))/, + "en-BS": /^(\+?1[-\s]?|0)?\(?242\)?[-\s]?\d{3}[-\s]?\d{4}$/, + "en-GB": /^(\+?44|0)7[1-9]\d{8}$/, + "en-GG": /^(\+?44|0)1481\d{6}$/, + "en-GH": /^(\+233|0)(20|50|24|54|27|57|26|56|23|53|28|55|59)\d{7}$/, + "en-GY": /^(\+592|0)6\d{6}$/, + "en-HK": /^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/, + "en-MO": /^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/, + "en-IE": /^(\+?353|0)8[356789]\d{7}$/, + "en-IN": /^(\+?91|0)?[6789]\d{9}$/, + "en-JM": /^(\+?876)?\d{7}$/, + "en-KE": /^(\+?254|0)(7|1)\d{8}$/, + "fr-CF": /^(\+?236| ?)(70|75|77|72|21|22)\d{6}$/, + "en-SS": /^(\+?211|0)(9[1257])\d{7}$/, + "en-KI": /^((\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/, + "en-KN": /^(?:\+1|1)869(?:46\d|48[89]|55[6-8]|66\d|76[02-7])\d{4}$/, + "en-LS": /^(\+?266)(22|28|57|58|59|27|52)\d{6}$/, + "en-MT": /^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/, + "en-MU": /^(\+?230|0)?\d{8}$/, + "en-MW": /^(\+?265|0)(((77|88|31|99|98|21)\d{7})|(((111)|1)\d{6})|(32000\d{4}))$/, + "en-NA": /^(\+?264|0)(6|8)\d{7}$/, + "en-NG": /^(\+?234|0)?[789]\d{9}$/, + "en-NZ": /^(\+?64|0)[28]\d{7,9}$/, + "en-PG": /^(\+?675|0)?(7\d|8[18])\d{6}$/, + "en-PK": /^((00|\+)?92|0)3[0-6]\d{8}$/, + "en-PH": /^(09|\+639)\d{9}$/, + "en-RW": /^(\+?250|0)?[7]\d{8}$/, + "en-SG": /^(\+65)?[3689]\d{7}$/, + "en-SL": /^(\+?232|0)\d{8}$/, + "en-TZ": /^(\+?255|0)?[67]\d{8}$/, + "en-UG": /^(\+?256|0)?[7]\d{8}$/, + "en-US": /^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/, + "en-ZA": /^(\+?27|0)\d{9}$/, + "en-ZM": /^(\+?26)?0[79][567]\d{7}$/, + "en-ZW": /^(\+263)[0-9]{9}$/, + "en-BW": /^(\+?267)?(7[1-8]{1})\d{6}$/, + "es-AR": /^\+?549(11|[2368]\d)\d{8}$/, + "es-BO": /^(\+?591)?(6|7)\d{7}$/, + "es-CO": /^(\+?57)?3(0(0|1|2|4|5)|1\d|2[0-4]|5(0|1))\d{7}$/, + "es-CL": /^(\+?56|0)[2-9]\d{1}\d{7}$/, + "es-CR": /^(\+506)?[2-8]\d{7}$/, + "es-CU": /^(\+53|0053)?5\d{7}$/, + "es-DO": /^(\+?1)?8[024]9\d{7}$/, + "es-HN": /^(\+?504)?[9|8|3|2]\d{7}$/, + "es-EC": /^(\+?593|0)([2-7]|9[2-9])\d{7}$/, + "es-ES": /^(\+?34)?[6|7]\d{8}$/, + "es-GT": /^(\+?502)?[2|6|7]\d{7}$/, + "es-PE": /^(\+?51)?9\d{8}$/, + "es-MX": /^(\+?52)?(1|01)?\d{10,11}$/, + "es-NI": /^(\+?505)\d{7,8}$/, + "es-PA": /^(\+?507)\d{7,8}$/, + "es-PY": /^(\+?595|0)9[9876]\d{7}$/, + "es-SV": /^(\+?503)?[67]\d{7}$/, + "es-UY": /^(\+598|0)9[1-9][\d]{6}$/, + "es-VE": /^(\+?58)?(2|4)\d{9}$/, + "et-EE": /^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/, + "fa-IR": /^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/, + "fi-FI": /^(\+?358|0)\s?(4[0-6]|50)\s?(\d\s?){4,8}$/, + "fj-FJ": /^(\+?679)?\s?\d{3}\s?\d{4}$/, + "fo-FO": /^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/, + "fr-BF": /^(\+226|0)[67]\d{7}$/, + "fr-BJ": /^(\+229)\d{8}$/, + "fr-CD": /^(\+?243|0)?(8|9)\d{8}$/, + "fr-CM": /^(\+?237)6[0-9]{8}$/, + "fr-DJ": /^(?:\+253)?77[6-8]\d{5}$/, + "fr-FR": /^(\+?33|0)[67]\d{8}$/, + "fr-GF": /^(\+?594|0|00594)[67]\d{8}$/, + "fr-GP": /^(\+?590|0|00590)[67]\d{8}$/, + "fr-MQ": /^(\+?596|0|00596)[67]\d{8}$/, + "fr-PF": /^(\+?689)?8[789]\d{6}$/, + "fr-RE": /^(\+?262|0|00262)[67]\d{8}$/, + "fr-WF": /^(\+681)?\d{6}$/, + "he-IL": /^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/, + "hu-HU": /^(\+?36|06)(20|30|31|50|70)\d{7}$/, + "id-ID": /^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/, + "ir-IR": /^(\+98|0)?9\d{9}$/, + "it-IT": /^(\+?39)?\s?3\d{2} ?\d{6,7}$/, + "it-SM": /^((\+378)|(0549)|(\+390549)|(\+3780549))?6\d{5,9}$/, + "ja-JP": /^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/, + "ka-GE": /^(\+?995)?(79\d{7}|5\d{8})$/, + "kk-KZ": /^(\+?7|8)?7\d{9}$/, + "kl-GL": /^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/, + "ko-KR": /^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/, + "ky-KG": /^(\+996\s?)?(22[0-9]|50[0-9]|55[0-9]|70[0-9]|75[0-9]|77[0-9]|880|990|995|996|997|998)\s?\d{3}\s?\d{3}$/, + "lt-LT": /^(\+370|8)\d{8}$/, + "lv-LV": /^(\+?371)2\d{7}$/, + "mg-MG": /^((\+?261|0)(2|3)\d)?\d{7}$/, + "mn-MN": /^(\+|00|011)?976(77|81|88|91|94|95|96|99)\d{6}$/, + "my-MM": /^(\+?959|09|9)(2[5-7]|3[1-2]|4[0-5]|6[6-9]|7[5-9]|9[6-9])[0-9]{7}$/, + "ms-MY": /^(\+?60|0)1(([0145](-|\s)?\d{7,8})|([236-9](-|\s)?\d{7}))$/, + "mz-MZ": /^(\+?258)?8[234567]\d{7}$/, + "nb-NO": /^(\+?47)?[49]\d{7}$/, + "ne-NP": /^(\+?977)?9[78]\d{8}$/, + "nl-BE": /^(\+?32|0)4\d{8}$/, + "nl-NL": /^(((\+|00)?31\(0\))|((\+|00)?31)|0)6{1}\d{8}$/, + "nl-AW": /^(\+)?297(56|59|64|73|74|99)\d{5}$/, + "nn-NO": /^(\+?47)?[49]\d{7}$/, + "pl-PL": /^(\+?48)? ?([5-8]\d|45) ?\d{3} ?\d{2} ?\d{2}$/, + "pt-BR": /^((\+?55\ ?[1-9]{2}\ ?)|(\+?55\ ?\([1-9]{2}\)\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[1-9]{1}\d{3}\-?\d{4}))$/, + "pt-PT": /^(\+?351)?9[1236]\d{7}$/, + "pt-AO": /^(\+?244)?9\d{8}$/, + "ro-MD": /^(\+?373|0)((6(0|1|2|6|7|8|9))|(7(6|7|8|9)))\d{6}$/, + "ro-RO": /^(\+?40|0)\s?7\d{2}(\/|\s|\.|-)?\d{3}(\s|\.|-)?\d{3}$/, + "ru-RU": /^(\+?7|8)?9\d{9}$/, + "si-LK": /^(?:0|94|\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\d{7}$/, + "sl-SI": /^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/, + "sk-SK": /^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/, + "so-SO": /^(\+?252|0)((6[0-9])\d{7}|(7[1-9])\d{7})$/, + "sq-AL": /^(\+355|0)6[2-9]\d{7}$/, + "sr-RS": /^(\+3816|06)[- \d]{5,9}$/, + "sv-SE": /^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/, + "tg-TJ": /^(\+?992)?[5][5]\d{7}$/, + "th-TH": /^(\+66|66|0)\d{9}$/, + "tr-TR": /^(\+?90|0)?5\d{9}$/, + "tk-TM": /^(\+993|993|8)\d{8}$/, + "uk-UA": /^(\+?38)?0(50|6[36-8]|7[357]|9[1-9])\d{7}$/, + "uz-UZ": /^(\+?998)?(6[125-79]|7[1-69]|88|9\d)\d{7}$/, + "vi-VN": /^((\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/, + "zh-CN": /^((\+|00)86)?(1[3-9]|9[28])\d{9}$/, + "zh-TW": /^(\+?886\-?|0)?9\d{8}$/, + "dz-BT": /^(\+?975|0)?(17|16|77|02)\d{6}$/, + "ar-YE": /^(((\+|00)9677|0?7)[0137]\d{7}|((\+|00)967|0)[1-7]\d{6})$/, + "ar-EH": /^(\+?212|0)[\s\-]?(5288|5289)[\s\-]?\d{5}$/, + "fa-AF": /^(\+93|0)?(2{1}[0-8]{1}|[3-5]{1}[0-4]{1})(\d{7})$/, + "mk-MK": /^(\+?389|0)?((?:2[2-9]\d{6}|(?:3[1-4]|4[2-8])\d{6}|500\d{5}|5[2-9]\d{6}|7[0-9][2-9]\d{5}|8[1-9]\d{6}|800\d{5}|8009\d{4}))$/ + }; + phones["en-CA"] = phones["en-US"]; + phones["fr-CA"] = phones["en-CA"]; + phones["fr-BE"] = phones["nl-BE"]; + phones["zh-HK"] = phones["en-HK"]; + phones["zh-MO"] = phones["en-MO"]; + phones["ga-IE"] = phones["en-IE"]; + phones["fr-CH"] = phones["de-CH"]; + phones["it-CH"] = phones["fr-CH"]; + function isMobilePhone(str, locale, options) { + (0, _assertString.default)(str); + if (options && options.strictMode && !str.startsWith("+")) { + return false; + } + if (Array.isArray(locale)) { + return locale.some(function(key2) { + if (phones.hasOwnProperty(key2)) { + var phone2 = phones[key2]; + if (phone2.test(str)) { + return true; + } + } + return false; + }); + } else if (locale in phones) { + return phones[locale].test(str); + } else if (!locale || locale === "any") { + for (var key in phones) { + if (phones.hasOwnProperty(key)) { + var phone = phones[key]; + if (phone.test(str)) { + return true; + } + } + } + return false; + } + throw new Error("Invalid locale '".concat(locale, "'")); + } + __name(isMobilePhone, "isMobilePhone"); + var locales = exports2.locales = Object.keys(phones); + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js +var require_IsMobilePhone = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsMobilePhone = exports2.isMobilePhone = exports2.IS_MOBILE_PHONE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isMobilePhone_1 = __importDefault2(require_isMobilePhone()); + exports2.IS_MOBILE_PHONE = "isMobilePhone"; + function isMobilePhone(value, locale, options) { + return typeof value === "string" && (0, isMobilePhone_1.default)(value, locale, options); + } + __name(isMobilePhone, "isMobilePhone"); + exports2.isMobilePhone = isMobilePhone; + function IsMobilePhone(locale, options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_MOBILE_PHONE, + constraints: [locale, options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isMobilePhone(value, args === null || args === void 0 ? void 0 : args.constraints[0], args === null || args === void 0 ? void 0 : args.constraints[1]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a phone number", validationOptions) + } + }, validationOptions); + } + __name(IsMobilePhone, "IsMobilePhone"); + exports2.IsMobilePhone = IsMobilePhone; + } +}); + +// node_modules/validator/lib/isISO31661Alpha2.js +var require_isISO31661Alpha2 = __commonJS({ + "node_modules/validator/lib/isISO31661Alpha2.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.CountryCodes = void 0; + exports2.default = isISO31661Alpha2; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var validISO31661Alpha2CountriesCodes = /* @__PURE__ */ new Set(["AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW"]); + var alpha2CountryCode = /^[a-zA-Z]{2}$/; + function isISO31661Alpha2(str) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + (0, _assertString.default)(str); + var userAssignedCodes = options.userAssignedCodes; + var validUserAssignedCodes = (userAssignedCodes || []).reduce(function(accumulator, userAssignedCode) { + if (alpha2CountryCode.test(userAssignedCode)) { + accumulator.push(userAssignedCode.toUpperCase()); + } + return accumulator; + }, []); + if (validUserAssignedCodes.includes(str.toUpperCase())) { + return true; + } + return validISO31661Alpha2CountriesCodes.has(str.toUpperCase()); + } + __name(isISO31661Alpha2, "isISO31661Alpha2"); + var CountryCodes = exports2.CountryCodes = validISO31661Alpha2CountriesCodes; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js +var require_IsISO31661Alpha2 = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISO31661Alpha2 = exports2.isISO31661Alpha2 = exports2.IS_ISO31661_ALPHA_2 = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISO31661Alpha2_1 = __importDefault2(require_isISO31661Alpha2()); + exports2.IS_ISO31661_ALPHA_2 = "isISO31661Alpha2"; + function isISO31661Alpha2(value) { + return typeof value === "string" && (0, isISO31661Alpha2_1.default)(value); + } + __name(isISO31661Alpha2, "isISO31661Alpha2"); + exports2.isISO31661Alpha2 = isISO31661Alpha2; + function IsISO31661Alpha2(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISO31661_ALPHA_2, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISO31661Alpha2(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid ISO31661 Alpha2 code", validationOptions) + } + }, validationOptions); + } + __name(IsISO31661Alpha2, "IsISO31661Alpha2"); + exports2.IsISO31661Alpha2 = IsISO31661Alpha2; + } +}); + +// node_modules/validator/lib/isISO31661Alpha3.js +var require_isISO31661Alpha3 = __commonJS({ + "node_modules/validator/lib/isISO31661Alpha3.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isISO31661Alpha3; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var validISO31661Alpha3CountriesCodes = /* @__PURE__ */ new Set(["AFG", "ALA", "ALB", "DZA", "ASM", "AND", "AGO", "AIA", "ATA", "ATG", "ARG", "ARM", "ABW", "AUS", "AUT", "AZE", "BHS", "BHR", "BGD", "BRB", "BLR", "BEL", "BLZ", "BEN", "BMU", "BTN", "BOL", "BES", "BIH", "BWA", "BVT", "BRA", "IOT", "BRN", "BGR", "BFA", "BDI", "KHM", "CMR", "CAN", "CPV", "CYM", "CAF", "TCD", "CHL", "CHN", "CXR", "CCK", "COL", "COM", "COG", "COD", "COK", "CRI", "CIV", "HRV", "CUB", "CUW", "CYP", "CZE", "DNK", "DJI", "DMA", "DOM", "ECU", "EGY", "SLV", "GNQ", "ERI", "EST", "ETH", "FLK", "FRO", "FJI", "FIN", "FRA", "GUF", "PYF", "ATF", "GAB", "GMB", "GEO", "DEU", "GHA", "GIB", "GRC", "GRL", "GRD", "GLP", "GUM", "GTM", "GGY", "GIN", "GNB", "GUY", "HTI", "HMD", "VAT", "HND", "HKG", "HUN", "ISL", "IND", "IDN", "IRN", "IRQ", "IRL", "IMN", "ISR", "ITA", "JAM", "JPN", "JEY", "JOR", "KAZ", "KEN", "KIR", "PRK", "KOR", "KWT", "KGZ", "LAO", "LVA", "LBN", "LSO", "LBR", "LBY", "LIE", "LTU", "LUX", "MAC", "MKD", "MDG", "MWI", "MYS", "MDV", "MLI", "MLT", "MHL", "MTQ", "MRT", "MUS", "MYT", "MEX", "FSM", "MDA", "MCO", "MNG", "MNE", "MSR", "MAR", "MOZ", "MMR", "NAM", "NRU", "NPL", "NLD", "NCL", "NZL", "NIC", "NER", "NGA", "NIU", "NFK", "MNP", "NOR", "OMN", "PAK", "PLW", "PSE", "PAN", "PNG", "PRY", "PER", "PHL", "PCN", "POL", "PRT", "PRI", "QAT", "REU", "ROU", "RUS", "RWA", "BLM", "SHN", "KNA", "LCA", "MAF", "SPM", "VCT", "WSM", "SMR", "STP", "SAU", "SEN", "SRB", "SYC", "SLE", "SGP", "SXM", "SVK", "SVN", "SLB", "SOM", "ZAF", "SGS", "SSD", "ESP", "LKA", "SDN", "SUR", "SJM", "SWZ", "SWE", "CHE", "SYR", "TWN", "TJK", "TZA", "THA", "TLS", "TGO", "TKL", "TON", "TTO", "TUN", "TUR", "TKM", "TCA", "TUV", "UGA", "UKR", "ARE", "GBR", "USA", "UMI", "URY", "UZB", "VUT", "VEN", "VNM", "VGB", "VIR", "WLF", "ESH", "YEM", "ZMB", "ZWE"]); + var alpha3CountryCode = /^[a-zA-Z]{3}$/; + function isISO31661Alpha3(str) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + (0, _assertString.default)(str); + var userAssignedCodes = options.userAssignedCodes; + var validUserAssignedCodes = (userAssignedCodes || []).reduce(function(accumulator, userAssignedCode) { + if (alpha3CountryCode.test(userAssignedCode)) { + accumulator.push(userAssignedCode.toUpperCase()); + } + return accumulator; + }, []); + if (validUserAssignedCodes.includes(str.toUpperCase())) { + return true; + } + return validISO31661Alpha3CountriesCodes.has(str.toUpperCase()); + } + __name(isISO31661Alpha3, "isISO31661Alpha3"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js +var require_IsISO31661Alpha3 = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISO31661Alpha3 = exports2.isISO31661Alpha3 = exports2.IS_ISO31661_ALPHA_3 = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISO31661Alpha3_1 = __importDefault2(require_isISO31661Alpha3()); + exports2.IS_ISO31661_ALPHA_3 = "isISO31661Alpha3"; + function isISO31661Alpha3(value) { + return typeof value === "string" && (0, isISO31661Alpha3_1.default)(value); + } + __name(isISO31661Alpha3, "isISO31661Alpha3"); + exports2.isISO31661Alpha3 = isISO31661Alpha3; + function IsISO31661Alpha3(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISO31661_ALPHA_3, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISO31661Alpha3(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid ISO31661 Alpha3 code", validationOptions) + } + }, validationOptions); + } + __name(IsISO31661Alpha3, "IsISO31661Alpha3"); + exports2.IsISO31661Alpha3 = IsISO31661Alpha3; + } +}); + +// node_modules/validator/lib/isISO31661Numeric.js +var require_isISO31661Numeric = __commonJS({ + "node_modules/validator/lib/isISO31661Numeric.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isISO31661Numeric; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var validISO31661NumericCountriesCodes = /* @__PURE__ */ new Set(["004", "008", "010", "012", "016", "020", "024", "028", "031", "032", "036", "040", "044", "048", "050", "051", "052", "056", "060", "064", "068", "070", "072", "074", "076", "084", "086", "090", "092", "096", "100", "104", "108", "112", "116", "120", "124", "132", "136", "140", "144", "148", "152", "156", "158", "162", "166", "170", "174", "175", "178", "180", "184", "188", "191", "192", "196", "203", "204", "208", "212", "214", "218", "222", "226", "231", "232", "233", "234", "238", "239", "242", "246", "248", "250", "254", "258", "260", "262", "266", "268", "270", "275", "276", "288", "292", "296", "300", "304", "308", "312", "316", "320", "324", "328", "332", "334", "336", "340", "344", "348", "352", "356", "360", "364", "368", "372", "376", "380", "384", "388", "392", "398", "400", "404", "408", "410", "414", "417", "418", "422", "426", "428", "430", "434", "438", "440", "442", "446", "450", "454", "458", "462", "466", "470", "474", "478", "480", "484", "492", "496", "498", "499", "500", "504", "508", "512", "516", "520", "524", "528", "531", "533", "534", "535", "540", "548", "554", "558", "562", "566", "570", "574", "578", "580", "581", "583", "584", "585", "586", "591", "598", "600", "604", "608", "612", "616", "620", "624", "626", "630", "634", "638", "642", "643", "646", "652", "654", "659", "660", "662", "663", "666", "670", "674", "678", "682", "686", "688", "690", "694", "702", "703", "704", "705", "706", "710", "716", "724", "728", "729", "732", "740", "744", "748", "752", "756", "760", "762", "764", "768", "772", "776", "780", "784", "788", "792", "795", "796", "798", "800", "804", "807", "818", "826", "831", "832", "833", "834", "840", "850", "854", "858", "860", "862", "876", "882", "887", "894"]); + function isISO31661Numeric(str) { + (0, _assertString.default)(str); + return validISO31661NumericCountriesCodes.has(str); + } + __name(isISO31661Numeric, "isISO31661Numeric"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsISO31661Numeric.js +var require_IsISO31661Numeric = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsISO31661Numeric.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISO31661Numeric = exports2.isISO31661Numeric = exports2.IS_ISO31661_NUMERIC = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISO31661Numeric_1 = __importDefault2(require_isISO31661Numeric()); + exports2.IS_ISO31661_NUMERIC = "isISO31661Numeric"; + function isISO31661Numeric(value) { + return typeof value === "string" && (0, isISO31661Numeric_1.default)(value); + } + __name(isISO31661Numeric, "isISO31661Numeric"); + exports2.isISO31661Numeric = isISO31661Numeric; + function IsISO31661Numeric(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISO31661_NUMERIC, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISO31661Numeric(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid ISO 3166-1 numeric country code", validationOptions) + } + }, validationOptions); + } + __name(IsISO31661Numeric, "IsISO31661Numeric"); + exports2.IsISO31661Numeric = IsISO31661Numeric; + } +}); + +// node_modules/validator/lib/isMongoId.js +var require_isMongoId = __commonJS({ + "node_modules/validator/lib/isMongoId.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isMongoId; + var _assertString = _interopRequireDefault(require_assertString()); + var _isHexadecimal = _interopRequireDefault(require_isHexadecimal()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isMongoId(str) { + (0, _assertString.default)(str); + return (0, _isHexadecimal.default)(str) && str.length === 24; + } + __name(isMongoId, "isMongoId"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsMongoId.js +var require_IsMongoId = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsMongoId.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsMongoId = exports2.isMongoId = exports2.IS_MONGO_ID = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isMongoId_1 = __importDefault2(require_isMongoId()); + exports2.IS_MONGO_ID = "isMongoId"; + function isMongoId(value) { + return typeof value === "string" && (0, isMongoId_1.default)(value); + } + __name(isMongoId, "isMongoId"); + exports2.isMongoId = isMongoId; + function IsMongoId(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_MONGO_ID, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isMongoId(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a mongodb id", validationOptions) + } + }, validationOptions); + } + __name(IsMongoId, "IsMongoId"); + exports2.IsMongoId = IsMongoId; + } +}); + +// node_modules/validator/lib/isMultibyte.js +var require_isMultibyte = __commonJS({ + "node_modules/validator/lib/isMultibyte.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isMultibyte; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var multibyte = /[^\x00-\x7F]/; + function isMultibyte(str) { + (0, _assertString.default)(str); + return multibyte.test(str); + } + __name(isMultibyte, "isMultibyte"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsMultibyte.js +var require_IsMultibyte = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsMultibyte.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsMultibyte = exports2.isMultibyte = exports2.IS_MULTIBYTE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isMultibyte_1 = __importDefault2(require_isMultibyte()); + exports2.IS_MULTIBYTE = "isMultibyte"; + function isMultibyte(value) { + return typeof value === "string" && (0, isMultibyte_1.default)(value); + } + __name(isMultibyte, "isMultibyte"); + exports2.isMultibyte = isMultibyte; + function IsMultibyte(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_MULTIBYTE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isMultibyte(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain one or more multibyte chars", validationOptions) + } + }, validationOptions); + } + __name(IsMultibyte, "IsMultibyte"); + exports2.IsMultibyte = IsMultibyte; + } +}); + +// node_modules/validator/lib/isSurrogatePair.js +var require_isSurrogatePair = __commonJS({ + "node_modules/validator/lib/isSurrogatePair.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isSurrogatePair; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var surrogatePair = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; + function isSurrogatePair(str) { + (0, _assertString.default)(str); + return surrogatePair.test(str); + } + __name(isSurrogatePair, "isSurrogatePair"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js +var require_IsSurrogatePair = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsSurrogatePair = exports2.isSurrogatePair = exports2.IS_SURROGATE_PAIR = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isSurrogatePair_1 = __importDefault2(require_isSurrogatePair()); + exports2.IS_SURROGATE_PAIR = "isSurrogatePair"; + function isSurrogatePair(value) { + return typeof value === "string" && (0, isSurrogatePair_1.default)(value); + } + __name(isSurrogatePair, "isSurrogatePair"); + exports2.isSurrogatePair = isSurrogatePair; + function IsSurrogatePair(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_SURROGATE_PAIR, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isSurrogatePair(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain any surrogate pairs chars", validationOptions) + } + }, validationOptions); + } + __name(IsSurrogatePair, "IsSurrogatePair"); + exports2.IsSurrogatePair = IsSurrogatePair; + } +}); + +// node_modules/validator/lib/isURL.js +var require_isURL = __commonJS({ + "node_modules/validator/lib/isURL.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isURL; + var _assertString = _interopRequireDefault(require_assertString()); + var _checkHost = _interopRequireDefault(require_checkHost()); + var _includesString = _interopRequireDefault(require_includesString()); + var _isFQDN = _interopRequireDefault(require_isFQDN()); + var _isIP = _interopRequireDefault(require_isIP()); + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); + } + __name(_slicedToArray, "_slicedToArray"); + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_nonIterableRest, "_nonIterableRest"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (null != t) { + var e, n, i, u, a = [], f = true, o = false; + try { + if (i = (t = t.call(r)).next, 0 === l) { + if (Object(t) !== t) return; + f = false; + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ; + } catch (r2) { + o = true, n = r2; + } finally { + try { + if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; + } finally { + if (o) throw n; + } + } + return a; + } + } + __name(_iterableToArrayLimit, "_iterableToArrayLimit"); + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; + } + __name(_arrayWithHoles, "_arrayWithHoles"); + var default_url_options = { + protocols: ["http", "https", "ftp"], + require_tld: true, + require_protocol: false, + require_host: true, + require_port: false, + require_valid_protocol: true, + allow_underscores: false, + allow_trailing_dot: false, + allow_protocol_relative_urls: false, + allow_fragments: true, + allow_query_components: true, + validate_length: true, + max_allowed_length: 2084 + }; + var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/; + function isURL(url, options) { + (0, _assertString.default)(url); + if (!url || /[\s<>]/.test(url)) { + return false; + } + if (url.indexOf("mailto:") === 0) { + return false; + } + options = (0, _merge.default)(options, default_url_options); + if (options.validate_length && url.length > options.max_allowed_length) { + return false; + } + if (!options.allow_fragments && (0, _includesString.default)(url, "#")) { + return false; + } + if (!options.allow_query_components && ((0, _includesString.default)(url, "?") || (0, _includesString.default)(url, "&"))) { + return false; + } + var protocol, auth, host, hostname, port, port_str, split, ipv6; + split = url.split("#"); + url = split.shift(); + split = url.split("?"); + url = split.shift(); + var protocol_match = url.match(/^([a-z][a-z0-9+\-.]*):/i); + var had_explicit_protocol = false; + var cleanUpProtocol = /* @__PURE__ */ __name(function cleanUpProtocol2(potential_protocol2) { + had_explicit_protocol = true; + protocol = potential_protocol2.toLowerCase(); + if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) { + return false; + } + return url.substring(protocol_match[0].length); + }, "cleanUpProtocol"); + if (protocol_match) { + var potential_protocol = protocol_match[1]; + var after_colon = url.substring(protocol_match[0].length); + var starts_with_slashes = after_colon.slice(0, 2) === "//"; + if (!starts_with_slashes) { + var first_slash_position = after_colon.indexOf("/"); + var before_slash = first_slash_position === -1 ? after_colon : after_colon.substring(0, first_slash_position); + var at_position = before_slash.indexOf("@"); + if (at_position !== -1) { + var before_at = before_slash.substring(0, at_position); + var valid_auth_regex = /^[a-zA-Z0-9\-_.%:]*$/; + var is_valid_auth = valid_auth_regex.test(before_at); + var has_encoded_content = /%[0-9a-fA-F]{2}/.test(before_at); + if (is_valid_auth && !has_encoded_content) { + if (options.require_protocol) { + return false; + } + } else { + url = cleanUpProtocol(potential_protocol); + if (url === false) { + return false; + } + } + } else { + var looks_like_port = /^[0-9]/.test(after_colon); + if (looks_like_port) { + if (options.require_protocol) { + return false; + } + } else { + url = cleanUpProtocol(potential_protocol); + if (url === false) { + return false; + } + } + } + } else { + url = cleanUpProtocol(potential_protocol); + if (url === false) { + return false; + } + } + } else if (options.require_protocol) { + return false; + } + if (url.slice(0, 2) === "//") { + if (!had_explicit_protocol && !options.allow_protocol_relative_urls) { + return false; + } + url = url.slice(2); + } + if (url === "") { + return false; + } + split = url.split("/"); + url = split.shift(); + if (url === "" && !options.require_host) { + return true; + } + split = url.split("@"); + if (split.length > 1) { + if (options.disallow_auth) { + return false; + } + if (split[0] === "") { + return false; + } + auth = split.shift(); + if (auth.indexOf(":") >= 0 && auth.split(":").length > 2) { + return false; + } + var _auth$split = auth.split(":"), _auth$split2 = _slicedToArray(_auth$split, 2), user = _auth$split2[0], password = _auth$split2[1]; + if (user === "" && password === "") { + return false; + } + } + hostname = split.join("@"); + port_str = null; + ipv6 = null; + var ipv6_match = hostname.match(wrapped_ipv6); + if (ipv6_match) { + host = ""; + ipv6 = ipv6_match[1]; + port_str = ipv6_match[2] || null; + } else { + split = hostname.split(":"); + host = split.shift(); + if (split.length) { + port_str = split.join(":"); + } + } + if (port_str !== null && port_str.length > 0) { + port = parseInt(port_str, 10); + if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) { + return false; + } + } else if (options.require_port) { + return false; + } + if (options.host_whitelist) { + return (0, _checkHost.default)(host, options.host_whitelist); + } + if (host === "" && !options.require_host) { + return true; + } + if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) { + return false; + } + host = host || ipv6; + if (options.host_blacklist && (0, _checkHost.default)(host, options.host_blacklist)) { + return false; + } + return true; + } + __name(isURL, "isURL"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsUrl.js +var require_IsUrl = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsUrl.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsUrl = exports2.isURL = exports2.IS_URL = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isURL_1 = __importDefault2(require_isURL()); + exports2.IS_URL = "isUrl"; + function isURL(value, options) { + return typeof value === "string" && (0, isURL_1.default)(value, options); + } + __name(isURL, "isURL"); + exports2.isURL = isURL; + function IsUrl(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_URL, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isURL(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a URL address", validationOptions) + } + }, validationOptions); + } + __name(IsUrl, "IsUrl"); + exports2.IsUrl = IsUrl; + } +}); + +// node_modules/validator/lib/isUUID.js +var require_isUUID = __commonJS({ + "node_modules/validator/lib/isUUID.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isUUID; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var uuid = { + 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 6: /^[0-9A-F]{8}-[0-9A-F]{4}-6[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 7: /^[0-9A-F]{8}-[0-9A-F]{4}-7[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 8: /^[0-9A-F]{8}-[0-9A-F]{4}-8[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + nil: /^00000000-0000-0000-0000-000000000000$/i, + max: /^ffffffff-ffff-ffff-ffff-ffffffffffff$/i, + loose: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i, + // From https://github.com/uuidjs/uuid/blob/main/src/regex.js + all: /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i + }; + function isUUID(str, version) { + (0, _assertString.default)(str); + if (version === void 0 || version === null) { + version = "all"; + } + return version in uuid ? uuid[version].test(str) : false; + } + __name(isUUID, "isUUID"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsUUID.js +var require_IsUUID = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsUUID.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsUUID = exports2.isUUID = exports2.IS_UUID = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isUUID_1 = __importDefault2(require_isUUID()); + exports2.IS_UUID = "isUuid"; + function isUUID(value, version) { + if (typeof value !== "string") + return false; + if (Array.isArray(version)) { + for (const v of version) { + if ((0, isUUID_1.default)(value, v)) + return true; + } + return false; + } + return (0, isUUID_1.default)(value, version); + } + __name(isUUID, "isUUID"); + exports2.isUUID = isUUID; + function IsUUID(version, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_UUID, + constraints: [version], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isUUID(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a UUID", validationOptions) + } + }, validationOptions); + } + __name(IsUUID, "IsUUID"); + exports2.IsUUID = IsUUID; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js +var require_IsFirebasePushId = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsFirebasePushId = exports2.isFirebasePushId = exports2.IS_FIREBASE_PUSH_ID = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_FIREBASE_PUSH_ID = "IsFirebasePushId"; + function isFirebasePushId(value) { + const webSafeRegex = /^[a-zA-Z0-9_-]*$/; + return typeof value === "string" && value.length === 20 && webSafeRegex.test(value); + } + __name(isFirebasePushId, "isFirebasePushId"); + exports2.isFirebasePushId = isFirebasePushId; + function IsFirebasePushId(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_FIREBASE_PUSH_ID, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isFirebasePushId(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a Firebase Push Id", validationOptions) + } + }, validationOptions); + } + __name(IsFirebasePushId, "IsFirebasePushId"); + exports2.IsFirebasePushId = IsFirebasePushId; + } +}); + +// node_modules/validator/lib/isUppercase.js +var require_isUppercase = __commonJS({ + "node_modules/validator/lib/isUppercase.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isUppercase; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isUppercase(str) { + (0, _assertString.default)(str); + return str === str.toUpperCase(); + } + __name(isUppercase, "isUppercase"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsUppercase.js +var require_IsUppercase = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsUppercase.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsUppercase = exports2.isUppercase = exports2.IS_UPPERCASE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isUppercase_1 = __importDefault2(require_isUppercase()); + exports2.IS_UPPERCASE = "isUppercase"; + function isUppercase(value) { + return typeof value === "string" && (0, isUppercase_1.default)(value); + } + __name(isUppercase, "isUppercase"); + exports2.isUppercase = isUppercase; + function IsUppercase(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_UPPERCASE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isUppercase(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be uppercase", validationOptions) + } + }, validationOptions); + } + __name(IsUppercase, "IsUppercase"); + exports2.IsUppercase = IsUppercase; + } +}); + +// node_modules/validator/lib/isLength.js +var require_isLength = __commonJS({ + "node_modules/validator/lib/isLength.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isLength; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function isLength(str, options) { + (0, _assertString.default)(str); + var min; + var max; + if (_typeof(options) === "object") { + min = options.min || 0; + max = options.max; + } else { + min = arguments[1] || 0; + max = arguments[2]; + } + var presentationSequences = str.match(/[^\uFE0F\uFE0E][\uFE0F\uFE0E]/g) || []; + var surrogatePairs = str.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g) || []; + var len = str.length - presentationSequences.length - surrogatePairs.length; + var isInsideRange = len >= min && (typeof max === "undefined" || len <= max); + if (isInsideRange && Array.isArray(options === null || options === void 0 ? void 0 : options.discreteLengths)) { + return options.discreteLengths.some(function(discreteLen) { + return discreteLen === len; + }); + } + return isInsideRange; + } + __name(isLength, "isLength"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/Length.js +var require_Length = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/Length.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Length = exports2.length = exports2.IS_LENGTH = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isLength_1 = __importDefault2(require_isLength()); + exports2.IS_LENGTH = "isLength"; + function length(value, min, max) { + return typeof value === "string" && (0, isLength_1.default)(value, { min, max }); + } + __name(length, "length"); + exports2.length = length; + function Length(min, max, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_LENGTH, + constraints: [min, max], + validator: { + validate: /* @__PURE__ */ __name((value, args) => length(value, args === null || args === void 0 ? void 0 : args.constraints[0], args === null || args === void 0 ? void 0 : args.constraints[1]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix, args) => { + const isMinLength = (args === null || args === void 0 ? void 0 : args.constraints[0]) !== null && (args === null || args === void 0 ? void 0 : args.constraints[0]) !== void 0; + const isMaxLength = (args === null || args === void 0 ? void 0 : args.constraints[1]) !== null && (args === null || args === void 0 ? void 0 : args.constraints[1]) !== void 0; + if (isMinLength && (!args.value || args.value.length < (args === null || args === void 0 ? void 0 : args.constraints[0]))) { + return eachPrefix + "$property must be longer than or equal to $constraint1 characters"; + } else if (isMaxLength && args.value.length > (args === null || args === void 0 ? void 0 : args.constraints[1])) { + return eachPrefix + "$property must be shorter than or equal to $constraint2 characters"; + } + return eachPrefix + "$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters"; + }, validationOptions) + } + }, validationOptions); + } + __name(Length, "Length"); + exports2.Length = Length; + } +}); + +// node_modules/class-validator/cjs/decorator/string/MaxLength.js +var require_MaxLength = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/MaxLength.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MaxLength = exports2.maxLength = exports2.MAX_LENGTH = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isLength_1 = __importDefault2(require_isLength()); + exports2.MAX_LENGTH = "maxLength"; + function maxLength(value, max) { + return typeof value === "string" && (0, isLength_1.default)(value, { min: 0, max }); + } + __name(maxLength, "maxLength"); + exports2.maxLength = maxLength; + function MaxLength(max, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.MAX_LENGTH, + constraints: [max], + validator: { + validate: /* @__PURE__ */ __name((value, args) => maxLength(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be shorter than or equal to $constraint1 characters", validationOptions) + } + }, validationOptions); + } + __name(MaxLength, "MaxLength"); + exports2.MaxLength = MaxLength; + } +}); + +// node_modules/class-validator/cjs/decorator/string/MinLength.js +var require_MinLength = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/MinLength.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MinLength = exports2.minLength = exports2.MIN_LENGTH = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isLength_1 = __importDefault2(require_isLength()); + exports2.MIN_LENGTH = "minLength"; + function minLength(value, min) { + return typeof value === "string" && (0, isLength_1.default)(value, { min }); + } + __name(minLength, "minLength"); + exports2.minLength = minLength; + function MinLength(min, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.MIN_LENGTH, + constraints: [min], + validator: { + validate: /* @__PURE__ */ __name((value, args) => minLength(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be longer than or equal to $constraint1 characters", validationOptions) + } + }, validationOptions); + } + __name(MinLength, "MinLength"); + exports2.MinLength = MinLength; + } +}); + +// node_modules/validator/lib/matches.js +var require_matches = __commonJS({ + "node_modules/validator/lib/matches.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = matches; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function matches(str, pattern, modifiers) { + (0, _assertString.default)(str); + if (Object.prototype.toString.call(pattern) !== "[object RegExp]") { + pattern = new RegExp(pattern, modifiers); + } + return !!str.match(pattern); + } + __name(matches, "matches"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/Matches.js +var require_Matches = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/Matches.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Matches = exports2.matches = exports2.MATCHES = void 0; + var ValidateBy_1 = require_ValidateBy(); + var matches_1 = __importDefault2(require_matches()); + exports2.MATCHES = "matches"; + function matches(value, pattern, modifiers) { + return typeof value === "string" && (0, matches_1.default)(value, pattern, modifiers); + } + __name(matches, "matches"); + exports2.matches = matches; + function Matches(pattern, modifiersOrAnnotationOptions, validationOptions) { + let modifiers; + if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) { + validationOptions = modifiersOrAnnotationOptions; + } else { + modifiers = modifiersOrAnnotationOptions; + } + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.MATCHES, + constraints: [pattern, modifiers], + validator: { + validate: /* @__PURE__ */ __name((value, args) => matches(value, args === null || args === void 0 ? void 0 : args.constraints[0], args === null || args === void 0 ? void 0 : args.constraints[1]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix, args) => eachPrefix + "$property must match $constraint1 regular expression", validationOptions) + } + }, validationOptions); + } + __name(Matches, "Matches"); + exports2.Matches = Matches; + } +}); + +// node_modules/libphonenumber-js/metadata.max.json +var require_metadata_max = __commonJS({ + "node_modules/libphonenumber-js/metadata.max.json"(exports2, module2) { + module2.exports = { version: 4, country_calling_codes: { "1": ["US", "AG", "AI", "AS", "BB", "BM", "BS", "CA", "DM", "DO", "GD", "GU", "JM", "KN", "KY", "LC", "MP", "MS", "PR", "SX", "TC", "TT", "VC", "VG", "VI"], "7": ["RU", "KZ"], "20": ["EG"], "27": ["ZA"], "30": ["GR"], "31": ["NL"], "32": ["BE"], "33": ["FR"], "34": ["ES"], "36": ["HU"], "39": ["IT", "VA"], "40": ["RO"], "41": ["CH"], "43": ["AT"], "44": ["GB", "GG", "IM", "JE"], "45": ["DK"], "46": ["SE"], "47": ["NO", "SJ"], "48": ["PL"], "49": ["DE"], "51": ["PE"], "52": ["MX"], "53": ["CU"], "54": ["AR"], "55": ["BR"], "56": ["CL"], "57": ["CO"], "58": ["VE"], "60": ["MY"], "61": ["AU", "CC", "CX"], "62": ["ID"], "63": ["PH"], "64": ["NZ"], "65": ["SG"], "66": ["TH"], "81": ["JP"], "82": ["KR"], "84": ["VN"], "86": ["CN"], "90": ["TR"], "91": ["IN"], "92": ["PK"], "93": ["AF"], "94": ["LK"], "95": ["MM"], "98": ["IR"], "211": ["SS"], "212": ["MA", "EH"], "213": ["DZ"], "216": ["TN"], "218": ["LY"], "220": ["GM"], "221": ["SN"], "222": ["MR"], "223": ["ML"], "224": ["GN"], "225": ["CI"], "226": ["BF"], "227": ["NE"], "228": ["TG"], "229": ["BJ"], "230": ["MU"], "231": ["LR"], "232": ["SL"], "233": ["GH"], "234": ["NG"], "235": ["TD"], "236": ["CF"], "237": ["CM"], "238": ["CV"], "239": ["ST"], "240": ["GQ"], "241": ["GA"], "242": ["CG"], "243": ["CD"], "244": ["AO"], "245": ["GW"], "246": ["IO"], "247": ["AC"], "248": ["SC"], "249": ["SD"], "250": ["RW"], "251": ["ET"], "252": ["SO"], "253": ["DJ"], "254": ["KE"], "255": ["TZ"], "256": ["UG"], "257": ["BI"], "258": ["MZ"], "260": ["ZM"], "261": ["MG"], "262": ["RE", "YT"], "263": ["ZW"], "264": ["NA"], "265": ["MW"], "266": ["LS"], "267": ["BW"], "268": ["SZ"], "269": ["KM"], "290": ["SH", "TA"], "291": ["ER"], "297": ["AW"], "298": ["FO"], "299": ["GL"], "350": ["GI"], "351": ["PT"], "352": ["LU"], "353": ["IE"], "354": ["IS"], "355": ["AL"], "356": ["MT"], "357": ["CY"], "358": ["FI", "AX"], "359": ["BG"], "370": ["LT"], "371": ["LV"], "372": ["EE"], "373": ["MD"], "374": ["AM"], "375": ["BY"], "376": ["AD"], "377": ["MC"], "378": ["SM"], "380": ["UA"], "381": ["RS"], "382": ["ME"], "383": ["XK"], "385": ["HR"], "386": ["SI"], "387": ["BA"], "389": ["MK"], "420": ["CZ"], "421": ["SK"], "423": ["LI"], "500": ["FK"], "501": ["BZ"], "502": ["GT"], "503": ["SV"], "504": ["HN"], "505": ["NI"], "506": ["CR"], "507": ["PA"], "508": ["PM"], "509": ["HT"], "590": ["GP", "BL", "MF"], "591": ["BO"], "592": ["GY"], "593": ["EC"], "594": ["GF"], "595": ["PY"], "596": ["MQ"], "597": ["SR"], "598": ["UY"], "599": ["CW", "BQ"], "670": ["TL"], "672": ["NF"], "673": ["BN"], "674": ["NR"], "675": ["PG"], "676": ["TO"], "677": ["SB"], "678": ["VU"], "679": ["FJ"], "680": ["PW"], "681": ["WF"], "682": ["CK"], "683": ["NU"], "685": ["WS"], "686": ["KI"], "687": ["NC"], "688": ["TV"], "689": ["PF"], "690": ["TK"], "691": ["FM"], "692": ["MH"], "850": ["KP"], "852": ["HK"], "853": ["MO"], "855": ["KH"], "856": ["LA"], "880": ["BD"], "886": ["TW"], "960": ["MV"], "961": ["LB"], "962": ["JO"], "963": ["SY"], "964": ["IQ"], "965": ["KW"], "966": ["SA"], "967": ["YE"], "968": ["OM"], "970": ["PS"], "971": ["AE"], "972": ["IL"], "973": ["BH"], "974": ["QA"], "975": ["BT"], "976": ["MN"], "977": ["NP"], "992": ["TJ"], "993": ["TM"], "994": ["AZ"], "995": ["GE"], "996": ["KG"], "998": ["UZ"] }, countries: { AC: ["247", "00", "(?:[01589]\\d|[2-467])\\d{4}", [5, 6], 0, 0, 0, 0, 0, 0, 0, [["6\\d{4}", [5]], ["[2-47]\\d{4}", [5]], 0, 0, 0, 0, ["(?:0[1-9]|[1589]\\d)\\d{4}", [6]]]], AD: ["376", "00", "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", [6, 8, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["1"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]], 0, 0, 0, 0, 0, 0, [["[78]\\d{5}", [6]], ["690\\d{6}|[356]\\d{5}", [6, 9]], ["180[02]\\d{4}", [8]], ["[19]\\d{5}", [6]]]], AE: ["971", "00", "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], ["(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"]], "0", 0, 0, 0, 0, 0, [["[2-4679][2-8]\\d{6}", [8]], ["5[02-68]\\d{7}", [9]], ["400\\d{6}|800\\d{2,9}"], ["900[02]\\d{5}", [9]], 0, 0, ["600[25]\\d{5}", [9]], 0, 0, ["700[05]\\d{5}", [9]]]], AF: ["93", "00", "[2-7]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}"], ["7\\d{8}"]]], AG: ["1", "011", "(?:268|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([457]\\d{6})$|1", "268$1", 0, "268", [["268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}"], ["268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"], 0, 0, ["26840[69]\\d{4}"], ["26848[01]\\d{4}"]]], AI: ["1", "011", "(?:264|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2457]\\d{6})$|1", "264$1", 0, "264", [["264(?:292|4(?:6[12]|9[78]))\\d{4}"], ["264(?:235|4(?:69|7[67])|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"], 0, 0, ["264724\\d{4}"]]], AL: ["355", "00", "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", [6, 7, 8, 9], [["(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"]], "0", 0, 0, 0, 0, 0, [["4505[0-2]\\d{3}|(?:[2358][16-9]\\d[2-9]|4410)\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\d))\\d{5}", [8]], ["6(?:[78][2-9]|9\\d)\\d{6}", [9]], ["800\\d{4}", [7]], ["900[1-9]\\d\\d", [6]], ["700[2-9]\\d{4}", [8]], 0, 0, 0, 0, ["808[1-9]\\d\\d", [6]]]], AM: ["374", "00", "(?:[1-489]\\d|55|60|77)\\d{6}", [8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], ["(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}"], ["(?:33|4[1349]|55|77|88|9[13-9])\\d{6}"], ["800\\d{5}"], ["90[016]\\d{5}"], 0, 0, 0, 0, ["60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|9[0-2])\\d{4}"], ["80[1-4]\\d{5}"]]], AO: ["244", "00", "[29]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]], 0, 0, 0, 0, 0, 0, [["2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}"], ["9[1-79]\\d{7}"]]], AR: ["54", "00", "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", [10, 11], [["(\\d{4})(\\d{2})(\\d{4})", "$1 $2-$3", ["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", 1], ["(\\d)(\\d{4})(\\d{2})(\\d{4})", "$2 15-$3-$4", ["9(?:2[2-469]|3[3-578])", "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1", 0, "$1 $2 $3-$4"]], "0", 0, "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", "9$1", 0, 0, [["3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\d{5}|(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68])))\\d{6}|(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}", [10]], ["93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\d{5}|9(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68]))))\\d{6}|9(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}"], ["800\\d{7,8}"], ["60[04579]\\d{7}", [10]], 0, 0, ["810\\d{7}", [10]]]], AS: ["1", "011", "(?:[58]\\d\\d|684|900)\\d{7}", [10], 0, "1", 0, "([267]\\d{6})$|1", "684$1", 0, "684", [["684(?:274|6(?:22|33|44|55|77|88|9[19]))\\d{4}"], ["684(?:2(?:48|5[2468]|7[246])|7(?:3[13]|70|82))\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], AT: ["43", "00", "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], ["(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], ["(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]", "(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], ["(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"]], "0", 0, 0, 0, 0, 0, [["1(?:11\\d|[2-9]\\d{3,11})|(?:316|463)\\d{3,10}|648[34]\\d{3,9}|(?:51|66|73)2\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-7]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}"], ["6(?:485|(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d)\\d{3,9}", [7, 8, 9, 10, 11, 12, 13]], ["800\\d{6,10}", [9, 10, 11, 12, 13]], ["(?:8[69][2-68]|9(?:0[01]|3[019]))\\d{6,10}", [9, 10, 11, 12, 13]], 0, 0, 0, 0, ["5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}", [5, 6, 7, 8, 9, 10, 11, 12, 13]], ["8(?:10|2[018])\\d{6,10}|828\\d{5}", [8, 9, 10, 11, 12, 13]]]], AU: ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", [5, 6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]]], "0", 0, "(183[12])|0", 0, 0, 0, [["(?:(?:241|349)0\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|[34]\\d\\d)|91(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79]))))\\d{3}|(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8])|8(?:55|6[0-8]|[78]\\d|9[02-9]))\\d{6}", [9]], ["4(?:79[01]|83[0-36-9]|95[0-3])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, ["163\\d{2,6}", [5, 6, 7, 8, 9]], ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], AW: ["297", "00", "(?:[25-79]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]], 0, 0, 0, 0, 0, 0, [["5(?:2\\d|8[1-9])\\d{4}"], ["(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}"], ["800\\d{4}"], ["900\\d{4}"], 0, 0, 0, 0, ["(?:28\\d|501)\\d{4}"]]], AX: ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", [5, 6, 7, 8, 9, 10, 11, 12], 0, "0", 0, 0, 0, 0, "18", [["18[1-8]\\d{3,6}", [6, 7, 8, 9]], ["4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}", [6, 7, 8, 9, 10]], ["800\\d{4,6}", [7, 8, 9]], ["[67]00\\d{5,6}", [8, 9]], 0, 0, ["20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}"]], "00"], AZ: ["994", "00", "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:2[12]428|3655[02])\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\d{5}|(?:(?:1[28]|46)\\d|2(?:[014-6]2|[23]3))\\d{6}"], ["36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}"], ["88\\d{7}"], ["900200\\d{3}"]]], BA: ["387", "00", "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}", [8]], ["6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}"], ["8[08]\\d{6}", [8]], ["9[0246]\\d{6}", [8]], 0, 0, ["703[235]0\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\d{4}", [8]], 0, 0, ["8[12]\\d{6}", [8]]]], BB: ["1", "011", "(?:246|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "246$1", 0, "246", [["246521[0369]\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}"], ["246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["(?:246976|900[2-9]\\d\\d)\\d{4}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"], 0, ["246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}"], 0, ["24631\\d{5}"]]], BD: ["880", "00", "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1-$2", ["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"], "0$1"], ["(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|2[23]"], "0$1"], ["(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:4(?:31\\d\\d|423)|5222)\\d{3}(?:\\d{2})?|8332[6-9]\\d\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\d{4}|(?:2(?:[23]\\d|[45])\\d\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}"], ["(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}", [10]], ["80[03]\\d{7}", [10]], 0, 0, 0, 0, 0, ["96(?:0[1-69]|1[0-479]|2[278]|3[13-9]|4[013]|54|6[69]|7[78]|88)\\d{6}", [10]]]], BE: ["32", "00", "4\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"]], "0", 0, 0, 0, 0, 0, [["80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}", [8]], ["4[5-9]\\d{7}", [9]], ["800[1-9]\\d{4}", [8]], ["(?:70(?:2[0-57]|3[04-7]|44|6[04-69]|7[0579])|90\\d\\d)\\d{4}", [8]], 0, 0, ["78(?:0[578]|1[014-8]|2[25]|3[15-8]|48|5[05]|60|7[06-8]|9\\d)\\d{4}", [8]], 0, 0, ["7879\\d{4}", [8]]]], BF: ["226", "00", "[024-7]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[024-7]"]]], 0, 0, 0, 0, 0, 0, [["2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-8]))\\d{4}"], ["(?:0[1-7]|4[4-6]|5[0-8]|[67]\\d)\\d{6}"]]], BG: ["359", "00", "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", [6, 7, 8, 9, 12], [["(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], ["(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"]], "0", 0, 0, 0, 0, 0, [["2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}", [6, 7, 8]], ["(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}", [8, 9]], ["(?:00800\\d\\d|800)\\d{5}", [8, 12]], ["90\\d{6}", [8]], 0, 0, 0, 0, 0, ["700\\d{5}", [8]]]], BH: ["973", "00", "[136-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[02-4679]"]]], 0, 0, 0, 0, 0, 0, [["(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|55|7[7-9]|88)|9[69][69])|7(?:[07]\\d\\d|1(?:11|78)))\\d{4}"], ["(?:3(?:[0-79]\\d|8[0-57-9])\\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\\d|7[0-689])))\\d{4}"], ["8[02369]\\d{6}"], ["(?:87|9[0-8])\\d{6}"], 0, 0, 0, 0, 0, ["84\\d{6}"]]], BI: ["257", "00", "(?:[267]\\d|31)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]], 0, 0, 0, 0, 0, 0, [["(?:22|31)\\d{6}"], ["(?:29|6[1-9]|7[125-9])\\d{6}"]]], BJ: ["229", "00", "(?:01\\d|8)\\d{7}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["0"]]], 0, 0, 0, 0, 0, 0, [["012\\d{7}", [10]], ["01(?:2[5-9]|[4-69]\\d)\\d{6}", [10]], 0, 0, 0, 0, ["81\\d{6}", [8]], 0, ["857[58]\\d{4}", [8]]]], BL: ["590", "00", "7090\\d{5}|(?:[56]9|[89]\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["(?:59(?:0(?:2[7-9]|3[3-7]|5[12]|87)|87\\d)|80[6-9]\\d\\d)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], ["8[129]\\d{7}"], 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]], BM: ["1", "011", "(?:441|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "441$1", 0, "441", [["441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}"], ["441(?:[2378]\\d|5[0-39]|9[02])\\d{5}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], BN: ["673", "00", "[2-578]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]], 0, 0, 0, 0, 0, 0, [["22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}"], ["(?:22[89]|[78]\\d\\d)\\d{4}"], 0, 0, 0, 0, 0, 0, ["5[34]\\d{5}"]]], BO: ["591", "00(?:1\\d)?", "(?:[2-7]\\d\\d|8001)\\d{5}", [8, 9], [["(\\d)(\\d{7})", "$1 $2", ["[23]|4[46]|50"]], ["(\\d{8})", "$1", ["[5-7]"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"]]], "0", 0, "0(1\\d)?", 0, 0, 0, [["(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}", [8]], ["(?:57|[67]\\d)\\d{6}", [8]], ["8001[07]\\d{4}", [9]], 0, 0, 0, 0, 0, ["50\\d{6}", [8]]]], BQ: ["599", "00", "(?:[34]1|7\\d)\\d{5}", [7], 0, 0, 0, 0, 0, 0, "[347]", [["(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}"], ["(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}"]]], BR: ["55", "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", "[1-467]\\d{9,10}|55[0-46-9]\\d{8}|[34]\\d{7}|55\\d{7,8}|(?:5[0-46-9]|[89]\\d)\\d{7,9}", [8, 9, 10, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37|86)", "300|4(?:0(?:0|20)|370|864)"]], ["(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], "($1)"], ["(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)"]], "0", 0, "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", "$2", 0, 0, [["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}", [10]], ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}", [10, 11]], ["800\\d{6,7}", [9, 10]], ["[59]00\\d{6,7}", [9, 10]], 0, 0, 0, 0, 0, ["(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|370|864))\\d{4}|300\\d{5}", [8, 10]]]], BS: ["1", "011", "(?:242|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([3-8]\\d{6})$|1", "242$1", 0, "242", [["242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}"], ["242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|3[0-4]|[89]9))\\d{4}"], ["242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"], 0, ["242225\\d{4}"]]], BT: ["975", "00", "[178]\\d{7}|[2-8]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-6]|7[246]|8[2-4]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|[78]"]]], 0, 0, 0, 0, 0, 0, [["(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}", [7]], ["(?:1[67]|[78]7)\\d{6}", [8]]]], BW: ["267", "00", "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["90"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-9]"]], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]]], 0, 0, 0, 0, 0, 0, [["(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[013467]))\\d{4}", [7]], ["(?:321|7(?:[1-8]\\d|9[03]))\\d{5}", [8]], ["(?:0800|800\\d)\\d{6}", [10]], ["90\\d{5}", [7]], 0, 0, 0, 0, ["79(?:1(?:[0-2]\\d|3[0-8])|2[0-7]\\d)\\d{3}", [8]]]], BY: ["375", "810", "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], ["(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], ["(\\d{4})(\\d{2})(\\d{3})", "$1 $2-$3", ["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"], "8 0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["1(?:[56]|7[467])|2[1-3]"], "8 0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-4]"], "8 0$1"], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"]], "8", 0, "0|80?", 0, 0, 0, [["(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}", [9]], ["(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}", [9]], ["800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}"], ["(?:810|902)\\d{7}", [10]], 0, 0, 0, 0, ["249\\d{6}", [9]]], "8~10"], BZ: ["501", "00", "(?:0800\\d|[2-8])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], ["(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]]], 0, 0, 0, 0, 0, 0, [["(?:2(?:[02]\\d|36|[68]0)|[3-58](?:[02]\\d|[68]0)|7(?:[02]\\d|32|[68]0))\\d{4}", [7]], ["6[0-35-7]\\d{5}", [7]], ["0800\\d{7}", [11]]]], CA: ["1", "011", "[2-9]\\d{9}|3\\d{6}", [7, 10], 0, "1", 0, 0, 0, 0, 0, [["(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}", [10]], ["", [10]], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", [10]], ["900[2-9]\\d{6}", [10]], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:2[125-9]|3[23]|44|66|77|88)|6(?:22|33))[2-9]\\d{6}", [10]], 0, ["310\\d{4}", [7]], 0, ["600[2-9]\\d{6}", [10]]]], CC: ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", [9]], ["4(?:79[01]|83[0-36-9]|95[0-3])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], CD: ["243", "00", "(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["5"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:(?:12|573)\\d\\d|276)\\d{5}|[1-6]\\d{6}"], ["88\\d{5}|(?:8[0-69]|9[016-9])\\d{7}", [7, 9]]]], CF: ["236", "00", "8776\\d{4}|(?:[27]\\d|61)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-8]"]]], 0, 0, 0, 0, 0, 0, [["(?:2[12]|61)\\d{6}"], ["7[02-7]\\d{6}"], 0, ["8776\\d{4}"]]], CG: ["242", "00", "222\\d{6}|(?:0\\d|80)\\d{7}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]]], 0, 0, 0, 0, 0, 0, [["222[1-589]\\d{5}"], ["026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}"], 0, ["80[0-2]\\d{6}"]]], CH: ["41", "00", "8\\d{11}|[2-9]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]|81"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}", [9]], ["(?:6[89]|7[235-9])\\d{7}", [9]], ["800\\d{6}", [9]], ["90[016]\\d{6}", [9]], ["878\\d{6}", [9]], ["860\\d{9}", [12]], ["5[18]\\d{7}", [9]], ["74[0248]\\d{6}", [9]], 0, ["84[0248]\\d{6}", [9]]]], CI: ["225", "00", "[02]\\d{9}", [10], [["(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]]], 0, 0, 0, 0, 0, 0, [["2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}"], ["0[157]\\d{8}"]]], CK: ["682", "00", "[2-578]\\d{4}", [5], [["(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]], 0, 0, 0, 0, 0, 0, [["(?:2\\d|3[13-7]|4[1-5])\\d{3}"], ["[578]\\d{4}"]]], CL: ["56", "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", [9, 10, 11], [["(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["60|809"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9(?:10|[2-9])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])"], "($1)"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]]], 0, 0, 0, 0, 0, 0, [["2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:(?:[24]\\d|50)\\d|3(?:[034679]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389])|600)|646[59])|(?:600|80[1-9])\\d\\d|9(?:(?:10[0-2]|7[1-9]\\d)\\d|3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}", [9]], ["2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:(?:[24]\\d|50)\\d|3(?:[034679]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389])|600)|646[59])|80[1-8]\\d\\d|9(?:(?:10[0-2]|7[1-9]\\d)\\d|3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}", [9]], ["(?:123|8)00\\d{6}", [9, 11]], 0, 0, 0, 0, 0, ["44\\d{7}", [9]], ["600\\d{7,8}", [10, 11]]]], CM: ["237", "00", "[26]\\d{8}|88\\d{6,7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]|88"]]], 0, 0, 0, 0, 0, 0, [["2(?:22|33)\\d{6}", [9]], ["(?:24[23]|6(?:[25-9]\\d|4[0-2]))\\d{6}", [9]], ["88\\d{6,7}"]]], CN: ["86", "00|1(?:[12]\\d|79)\\d\\d00", "(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5,6})", "$1 $2", ["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"], "0$1"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|2(?:[02-57-9]|1[1-9])", "10|2(?:[02-57-9]|1[1-9])", "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"], "0$1", 1], ["(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", 1]], "0", 0, "(1(?:[12]\\d|79)\\d\\d)|0", 0, 0, 0, [["(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|2(?:[02-57-9]\\d{3}|1(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))|(?:41[03]|8078|9(?:78|94))\\d\\d)\\d{5}|(?:10|2[0-57-9])(?:1(?:00|23)\\d\\d|95\\d{3,4})|(?:41[03]|9(?:78|94))(?:100\\d\\d|95\\d{3,4})|8078123|(?:43[35]|754|851)\\d{7,8}|(?:43[35]|754|851)(?:1(?:00\\d|23)\\d|95\\d{3,4})|(?:3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[13-9]\\d{6}|2(?:[0-24-9]\\d{5}|3\\d(?:\\d{4})?))|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[24-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[13-9]\\d{5}|2(?:[0-24-9]\\d{4}|3\\d(?:\\d{3})?))|9(?:[0-46-9]\\d{5}|5\\d{3,5}))", [7, 8, 9, 10, 11]], ["1(?:610\\d|740[0-5])\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}", [11]], ["(?:(?:10|21)8|8)00\\d{7}", [10, 12]], ["16[08]\\d{5}", [8]], 0, 0, 0, 0, 0, ["10(?:10\\d{4}|96\\d{3,4})|400\\d{7}|950\\d{7,8}|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}", [7, 8, 9, 10, 11]]], "00"], CO: ["57", "00(?:4(?:[14]4|56)|[579])", "(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["46"]], ["(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|9[14]"]], ["(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1", 0, "$1 $2 $3"]], "0", 0, "0([3579]|4(?:[14]4|56))?", 0, 0, 0, [["601055(?:[0-4]\\d|50)\\d\\d|6010(?:[0-4]\\d|5[0-4])\\d{4}|(?:46|60(?:[18][1-9]|[24-7][2-9]))\\d{6}", [8, 10]], ["333301[0-5]\\d{3}|3333(?:00|2[5-9]|[3-9]\\d)\\d{4}|(?:3(?:(?:0[0-5]|1\\d|5[01]|70)\\d|2(?:[0-3]\\d|4[1-9])|3(?:00|3[0-24-9]))|9(?:101|408))\\d{6}", [10]], ["1800\\d{7}", [11]], ["(?:19(?:0[01]|4[78])|901)\\d{7}", [10, 11]]]], CR: ["506", "00", "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", [8, 10], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"]]], 0, 0, "(19(?:0[0-2468]|1[09]|20|66|77|99))", 0, 0, 0, [["210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}", [8]], ["(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}", [8]], ["800\\d{7}", [10]], ["90[059]\\d{7}", [10]], 0, 0, 0, 0, ["(?:210[0-6]|4\\d{3}|5100)\\d{4}", [8]]]], CU: ["53", "119", "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", [6, 7, 8, 10], [["(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], ["(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["[56]"], "0$1"], ["(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:3[23]|4[89])\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}"], ["(?:5\\d|6[2-4])\\d{6}", [8]], ["800\\d{7}", [10]], 0, 0, 0, 0, 0, 0, ["807\\d{7}", [10]]]], CV: ["238", "0", "(?:[2-59]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]], 0, 0, 0, 0, 0, 0, [["2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}"], ["(?:36|5[1-389]|9\\d)\\d{5}"], ["800\\d{4}"], 0, 0, 0, 0, 0, ["(?:3[3-5]|4[356])\\d{5}"]]], CW: ["599", "00", "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]]], 0, 0, 0, 0, 0, "[69]", [["9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}"], ["953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}"], 0, 0, 0, 0, 0, ["955\\d{5}", [8]], 0, ["60[0-2]\\d{4}", [7]]]], CX: ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", [9]], ["4(?:79[01]|83[0-36-9]|95[0-3])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], CY: ["357", "00", "(?:[279]\\d|[58]0)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]], 0, 0, 0, 0, 0, 0, [["2[2-6]\\d{6}"], ["9(?:10|[4-79]\\d)\\d{5}"], ["800\\d{5}"], ["90[09]\\d{5}"], ["700\\d{5}"], 0, ["(?:50|77)\\d{6}"], 0, 0, ["80[1-9]\\d{5}"]]], CZ: ["420", "00", "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", [9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]], 0, 0, 0, 0, 0, 0, [["(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}", [9]], ["7060\\d{5}|(?:60[1-8]|7(?:0[2-5]|19|[2379]\\d))\\d{6}", [9]], ["800\\d{6}", [9]], ["9(?:0[05689]|76)\\d{6}", [9]], ["70[01]\\d{6}", [9]], ["9(?:3\\d{9}|6\\d{7,10})"], ["9(?:5\\d|7[2-4])\\d{6}", [9]], 0, ["9[17]0\\d{6}", [9]], ["8[134]\\d{7}", [9]]]], DE: ["49", "00", "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [["(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], ["(\\d{3})(\\d{3,12})", "$1 $2", ["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"], "0$1"], ["(\\d{4})(\\d{2,11})", "$1 $2", ["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], ["(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], ["(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], ["(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], ["(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], ["(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|3[13])"], "0$1"], ["(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], ["(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"], ["(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]], "0", 0, 0, 0, 0, 0, [["32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}", [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]], ["1(?:6[023]|7\\d)\\d{7,8}|15(?:[0-25-9]\\d\\d|3(?:10|33))\\d{6}", [10, 11]], ["800\\d{7,12}", [10, 11, 12, 13, 14, 15]], ["(?:137[7-9]|900(?:[135]|9\\d))\\d{6}", [10, 11]], ["700\\d{8}", [11]], ["1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}", [12, 13]], ["18(?:1\\d{5,11}|[2-9]\\d{8})", [8, 9, 10, 11, 12, 13, 14]], ["16(?:4\\d{1,10}|[89]\\d{1,11})", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]], 0, ["180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}", [7, 8, 9, 10, 11, 12, 13, 14]]]], DJ: ["253", "00", "(?:2\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]], 0, 0, 0, 0, 0, 0, [["2(?:1[2-5]|7[45])\\d{5}"], ["77\\d{6}"]]], DK: ["45", "00", "[2-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:2(?:[0-59][1-9]|[6-8]\\d)|3(?:[0-3][1-9]|4[13]|5[1-58]|6[1347-9]|7\\d|8[1-8]|9[1-79])|4(?:[0-25][1-9]|[34][2-9]|6[13-579]|7[13579]|8[1-47]|9[127])|5(?:[0-36][1-9]|4[146-9]|5[3-57-9]|7[568]|8[1-358]|9[1-69])|6(?:[0135][1-9]|2[1-68]|4[2-8]|6[1689]|[78]\\d|9[15689])|7(?:[0-69][1-9]|7[3-9]|8[147])|8(?:[16-9][1-9]|2[1-58])|9(?:[1-47-9][1-9]|6\\d))\\d{5}"], ["(?:2[6-8]|37|6[78]|96)\\d{6}|(?:2[0-59]|3[0-689]|[457]\\d|6[0-69]|8[126-9]|9[1-47-9])[1-9]\\d{5}"], ["80\\d{6}"], ["90\\d{6}"]]], DM: ["1", "011", "(?:[58]\\d\\d|767|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "767$1", 0, "767", [["767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}"], ["767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], DO: ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "8001|8[024]9", [["8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}"], ["8[024]9[2-9]\\d{6}"], ["800(?:14|[2-9]\\d)\\d{5}|8[024]9[01]\\d{6}|8(?:33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], DZ: ["213", "00", "(?:[1-4]|[5-79]\\d|80)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["9619\\d{5}|(?:[1-3]\\d|4[013-689])\\d{6}"], ["5(?:4[0-29]|6[0-4])\\d{6}|(?:55|6\\d|7[7-9])\\d{7}", [9]], ["800\\d{6}", [9]], ["80[3-689]1\\d{5}", [9]], 0, 0, 0, 0, ["98[23]\\d{6}", [9]], ["80[12]1\\d{5}", [9]]]], EC: ["593", "00", "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", [8, 9, 10, 11], [["(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)", 0, "$1-$2-$3"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]]], "0", 0, 0, 0, 0, 0, [["[2-7][2-7]\\d{6}", [8]], ["964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}", [9]], ["1800\\d{7}|1[78]00\\d{6}", [10, 11]], 0, 0, 0, 0, 0, ["[2-7]890\\d{4}", [8]]]], EE: ["372", "00", "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]], ["(\\d{4})(\\d{3,4})", "$1 $2", ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]], 0, 0, 0, 0, 0, 0, [["(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}", [7]], ["(?:5\\d{5}|8(?:1(?:0(?:0(?:00|[178]\\d)|[3-9]\\d\\d)|(?:1(?:0[2-6]|1\\d)|[2-79]\\d\\d)\\d)|2(?:0(?:0(?:00|4\\d)|(?:19|[2-7]\\d)\\d)|(?:(?:[124-69]\\d|3[5-9])\\d|7(?:[0-79]\\d|8[013-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}", [7, 8]], ["800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}"], ["(?:40\\d\\d|900)\\d{4}", [7, 8]], ["70[0-2]\\d{5}", [8]]]], EG: ["20", "00", "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", [8, 9, 10], [["(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], ["(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{8})", "$1 $2", ["1"], "0$1"]], "0", 0, 0, 0, 0, 0, [["13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2\\d|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}", [8, 9]], ["1[0-25]\\d{8}", [10]], ["800\\d{7}", [10]], ["900\\d{7}", [10]]]], EH: ["212", "00", "[5-8]\\d{8}", [9], 0, "0", 0, 0, 0, 0, 0, [["528[89]\\d{5}"], ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[016-8]\\d|2[0-8]|3[01]|5[0-5]))\\d{6}"], ["80[0-7]\\d{6}"], ["89\\d{7}"], 0, 0, 0, 0, ["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]], ER: ["291", "00", "[178]\\d{6}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}"], ["(?:17[1-3]|7\\d\\d)\\d{4}"]]], ES: ["34", "00", "(?:400|[5-9]\\d\\d)\\d{6}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[4-9]"]]], 0, 0, 0, 0, 0, 0, [["96906(?:0[0-8]|1[1-9]|[2-9]\\d)\\d\\d|9(?:69(?:0[0-57-9]|[1-9]\\d)|73(?:[0-8]\\d|9[1-9]))\\d{4}|(?:400|8(?:[1356]\\d|[28][0-8]|[47][1-9])|9(?:[135]\\d|[268][0-8]|4[1-9]|7[124-9]))\\d{6}"], ["96906(?:09|10)\\d\\d|(?:590(?:10[0-2]|600)|97390\\d)\\d{3}|(?:6\\d|7[1-48])\\d{7}"], ["[89]00\\d{6}"], ["80[367]\\d{6}"], ["70\\d{7}"], 0, ["51\\d{7}"], 0, 0, ["90[12]\\d{6}"]]], ET: ["251", "00", "(?:11|[2-57-9]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-57-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:11(?:[124]\\d\\d|3(?:[0-79]\\d|8[0-7])|5(?:[02-9]\\d|1[0-57-9])|6(?:[02-79]\\d|1[0-57-9]|8[0-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}"], ["700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|2[1-35-79]|3\\d|77|86|99)|(?:8[01]|9\\d)\\d)\\d{6}"]]], FI: ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{5})", "$1", ["20[2-59]"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1 $2", ["(?:[1-3]0|[68])0|70[07-9]"], "0$1"], ["(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], ["(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], ["(\\d)(\\d{4,9})", "$1 $2", ["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"]], "0", 0, 0, 0, 0, "1[03-79]|[2-9]", [["1[3-7][1-8]\\d{3,6}|(?:19[1-8]|[23568][1-8]\\d|9(?:00|[1-8]\\d))\\d{2,6}", [5, 6, 7, 8, 9]], ["4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}", [6, 7, 8, 9, 10]], ["800\\d{4,6}", [7, 8, 9]], ["[67]00\\d{5,6}", [8, 9]], 0, 0, ["20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}"]], "00"], FJ: ["679", "0(?:0|52)", "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]]], 0, 0, 0, 0, 0, 0, [["603\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\d{5}", [7]], ["(?:[279]\\d|45|5[01568]|8[034679])\\d{5}", [7]], ["0800\\d{7}", [11]]], "00"], FK: ["500", "00", "[2-7]\\d{4}", [5], 0, 0, 0, 0, 0, 0, 0, [["[2-47]\\d{4}"], ["[56]\\d{4}"]]], FM: ["691", "00", "(?:[39]\\d\\d|820)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]], 0, 0, 0, 0, 0, 0, [["31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\d)\\d)\\d{3}"], ["31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}"]]], FO: ["298", "00", "[2-9]\\d{5}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-9]"]]], 0, 0, "(10(?:01|[12]0|88))", 0, 0, 0, [["(?:20|[34]\\d|8[19])\\d{4}"], ["(?:[27][1-9]|5\\d|9[16])\\d{4}"], ["80[257-9]\\d{3}"], ["90(?:[13-5][15-7]|2[125-7]|9\\d)\\d\\d"], 0, 0, 0, 0, ["6[0-36]\\d{4}"]]], FR: ["33", "00", "[1-9]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:26[013-9]|59[1-35-9])\\d{6}|(?:[13]\\d|2[0-57-9]|4[1-9]|5[0-8])\\d{7}"], ["(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7[3-9]\\d)\\d{6}"], ["80[0-5]\\d{6}"], ["836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}"], 0, 0, ["80[6-9]\\d{6}"], 0, ["9\\d{8}"], ["8(?:1[01]|2[0156]|4[024]|84)\\d{6}"]]], GA: ["241", "00", "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", [7, 8], [["(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"]], 0, 0, "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", "$1", 0, 0, [["[01]1\\d{6}", [8]], ["(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}"]]], GB: ["44", "00", "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", [7, 9, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["800", "8001", "80011", "800111", "8001111"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["845", "8454", "84546", "845464"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["1(?:38|5[23]|69|76|94)", "1(?:(?:38|69)7|5(?:24|39)|768|946)", "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"]], "0", 0, "0|180020", 0, 0, 0, [["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-5])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|5[01]))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", [9, 10]], ["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]], 0, " x"], GD: ["1", "011", "(?:473|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "473$1", 0, "473", [["473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-4]|5[59]|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}"], ["473(?:4(?:0[2-79]|1[04-9]|2[0-5]|49|5[6-8])|5(?:2[01]|3[3-8])|901)\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], GE: ["995", "00", "(?:[3-57]\\d\\d|800)\\d{6}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}"], ["5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d|22252[0-4])\\d\\d|5(?:0(?:0(?:1[09]|70)|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|4(?:0[04]0|411)|5222|9000)[0-4]\\d{3}|(?:5(?:0(?:0(?:0\\d|1[12]|2[02]|3[0-6]|4[04]|5[05]|77|88|9[09])|(?:[14]\\d|77)\\d|22[02])|1(?:1(?:[03][01]|[124]\\d|5[02-6]|7[0-6])|4\\d\\d)|2(?:228|555)|3555|4(?:4(?:[02-9]\\d|14)|555)|5(?:[0157-9]\\d\\d|200|333|4(?:44|55))|6[89]\\d\\d|7(?:(?:[0147-9]\\d|22)\\d|5(?:00|[57]5))|8(?:0(?:[018]\\d|2[0-4])|5(?:55|8[89])|8(?:55|88))|9(?:090|[1-35-9]\\d\\d))|790\\d\\d)\\d{4}"], ["800\\d{6}"], 0, 0, 0, 0, 0, ["70[67]\\d{6}"]]], GF: ["594", "00", "(?:694\\d|7093)\\d{5}|(?:59|[89]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]|80[6-9]|9[47]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:59(?:4(?:[02-49]\\d|1[0-5]|5[6-9]|6[0-3]|80)|88\\d)|80[6-9]\\d\\d)\\d{4}"], ["(?:694(?:[0-249]\\d|3[0-8])|7093[0-3])\\d{4}"], ["80[0-5]\\d{6}"], ["8[129]\\d{7}"], 0, 0, 0, 0, ["9(?:(?:396|76\\d)\\d|476[0-6])\\d{4}"]]], GG: ["44", "00", "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", [7, 9, 10], 0, "0", 0, "([25-9]\\d{5})$|0|180020", "1481$1", 0, 0, [["1481[25-9]\\d{5}", [10]], ["7(?:(?:781|839)\\d|911[17])\\d{5}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]]], GH: ["233", "00", "[235]\\d{8}|800\\d{5,6}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2358]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}", [9]], ["(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}", [9]], ["800\\d{5,6}"]]], GI: ["350", "00", "(?:[25]\\d|60)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["2"]]], 0, 0, 0, 0, 0, 0, [["2190[0-2]\\d{3}|2(?:0(?:[02]\\d|3[01])|16[24-9]|2[2-5]\\d)\\d{4}"], ["5251[0-4]\\d{3}|(?:5(?:[146-8]\\d\\d|250)|60(?:1[01]|6\\d))\\d{4}"]]], GL: ["299", "00", "(?:19|[2-689]\\d|70)\\d{4}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:19|3[1-7]|[68][1-9]|70|9\\d)\\d{4}"], ["[245]\\d{5}"], ["80\\d{4}"], 0, 0, 0, 0, 0, ["3[89]\\d{4}"]]], GM: ["220", "00", "[2-9]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8[0-389]\\d\\d)\\d{3}"], ["556\\d{4}|(?:[23679]\\d|4[015]|5[0-489]|8[4-7])\\d{5}"]]], GN: ["224", "00", "722\\d{6}|(?:3|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]]], 0, 0, 0, 0, 0, 0, [["3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\d\\d)\\d{4}", [8]], ["6[0-356]\\d{7}", [9]], 0, 0, 0, 0, 0, 0, ["722\\d{6}", [9]]]], GP: ["590", "00", "7090\\d{5}|(?:[56]9|[89]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-79]|80[6-9]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:59(?:0(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)|87\\d)|80[6-9]\\d\\d)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], ["8[129]\\d{7}"], 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]], GQ: ["240", "00", "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], ["(\\d{3})(\\d{6})", "$1 $2", ["[89]"]]], 0, 0, 0, 0, 0, 0, [["33[0-24-9]\\d[46]\\d{4}|3(?:33|5\\d)\\d[7-9]\\d{4}"], ["(?:222|55\\d)\\d{6}"], ["80\\d[1-9]\\d{5}"], ["90\\d[1-9]\\d{5}"]]], GR: ["30", "00", "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", [10, 11, 12], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], ["(\\d{4})(\\d{6})", "$1 $2", ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], ["(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]]], 0, 0, 0, 0, 0, 0, [["2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}", [10]], ["68[57-9]\\d{7}|(?:69|94)\\d{8}", [10]], ["800\\d{7,9}"], ["90[19]\\d{7}", [10]], ["70\\d{8}", [10]], 0, ["5005000\\d{3}", [10]], 0, 0, ["8(?:0[16]|12|[27]5|50)\\d{7}", [10]]]], GT: ["502", "00", "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-8]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]], 0, 0, 0, 0, 0, 0, [["[267][2-9]\\d{6}", [8]], ["(?:[3-5]\\d\\d|80[0-4])\\d{5}", [8]], ["18[01]\\d{8}", [11]], ["19\\d{9}", [11]]]], GU: ["1", "011", "(?:[58]\\d\\d|671|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "671$1", 0, "671", [["671(?:2\\d\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[16-9]))\\d{4}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], GW: ["245", "00", "[49]\\d{8}|4\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["40"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]]], 0, 0, 0, 0, 0, 0, [["443\\d{6}", [9]], ["9(?:5\\d|6[569]|77)\\d{6}", [9]], 0, 0, 0, 0, 0, 0, ["40\\d{5}", [7]]]], GY: ["592", "001", "(?:[2-8]\\d{3}|9008)\\d{3}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|50[0-6]|77[1-57])\\d{4}"], ["(?:51[01]|6\\d\\d|7(?:[0-5]\\d|6[0-79]|[78]0))\\d{4}"], ["(?:289|8(?:00|6[28]|88|99))\\d{4}"], ["9008\\d{3}"], 0, 0, 0, 0, ["515\\d{4}"]]], HK: ["852", "00(?:30|5[09]|[126-9]?)", "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", [5, 6, 7, 8, 9, 11], [["(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]], 0, 0, 0, 0, 0, 0, [["(?:2(?:[13-9]\\d|2[013-9])\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\d|8(?:4[0-8]|[579]\\d|6[0-5]))|58(?:0[1-9]|1[2-9]))\\d{4}", [8]], ["(?:4(?:(?:09|24)[3-6]|44[0-35-9]|6(?:4[0-57-9]|6[0-6])|7(?:4[0-48]|6[0-5]))|5(?:25[3-7]|35[4-8]|73[0-6]|95[0-8])|6(?:26[013-8]|(?:66|78)[0-5])|70(?:7[1-8]|8[0-8])|84(?:4[0-2]|8[0-35-9])|9(?:29[013-9]|39[014-9]|59[0-467]|899))\\d{4}|(?:4(?:4[0-35-9]|6[0-357-9]|7[0-35])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|70[1-59]|84[0-39]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}", [8]], ["800\\d{6}", [9]], ["900(?:[0-24-9]\\d{7}|3\\d{1,4})", [5, 6, 7, 8, 11]], ["8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}", [8]], 0, ["30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}", [8]], ["7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\d|1[18]|7[27-9])|3(?:[0-38]\\d|7[0-369]|9[2357-9])|47\\d|5(?:[178]\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\d)|7(?:[27]\\d|8[7-9])|8(?:[23689]\\d|7[1-9])|9(?:[025]\\d|6[0-246-8]|7[0-36-9]|8[238]))\\d{4}", [8]]], "00"], HN: ["504", "00", "8\\d{10}|[237-9]\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]], 0, 0, 0, 0, 0, 0, [["2(?:2(?:0[0-59]|1[1-9]|[23]\\d|4[02-8]|5[57]|6[2458]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589]|80)|5(?:0[2357-9]|1[1-6]|4[03-58]|5\\d|6[014-69]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|2[01]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}", [8]], ["[37-9]\\d{7}", [8]], ["8002\\d{7}", [11]]]], HR: ["385", "00", "[2-69]\\d{8}|80\\d{5,7}|[1-79]\\d{7}|6\\d{6}", [7, 8, 9], [["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["6[01]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6|7[245]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-57]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}", [8, 9]], ["9(?:(?:0[1-9]|[12589]\\d)\\d\\d|7(?:[0679]\\d\\d|5(?:[01]\\d|44|55|77|9[5-79])))\\d{4}|98\\d{6}", [8, 9]], ["80\\d{5,7}"], ["6[01459]\\d{6}|6[01]\\d{5}", [7, 8]], ["7[45]\\d{6}", [8]], 0, ["62\\d{6,7}|72\\d{6}", [8, 9]]]], HT: ["509", "00", "[2-589]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-589]"]]], 0, 0, 0, 0, 0, 0, [["2(?:2\\d|5[1-5]|81|9[149])\\d{5}"], ["(?:[34]\\d|5[568])\\d{6}"], ["8\\d{7}"], 0, 0, 0, 0, 0, ["9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}"]]], HU: ["36", "00", "[235-7]\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"]], "06", 0, 0, 0, 0, 0, [["(?:1\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\d{6}", [8]], ["(?:[257]0|3[01])\\d{7}", [9]], ["(?:[48]0\\d|680[29])\\d{5}"], ["9[01]\\d{6}", [8]], 0, 0, ["38\\d{7}", [9]], 0, ["21\\d{7}", [9]]]], ID: ["62", "00[89]", "00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}", [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], ["(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], ["(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], ["(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], ["(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], ["(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], ["(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["2[124]\\d{7,8}|619\\d{8}|2(?:1(?:14|500)|2\\d{3})\\d{3}|61\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}", [7, 8, 9, 10, 11]], ["8[1-35-9]\\d{7,10}", [9, 10, 11, 12]], ["00(?:1803\\d{5,11}|7803\\d{7})|(?:177\\d|800)\\d{5,7}", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17]], ["809\\d{7}", [10]], 0, 0, ["(?:1500|8071\\d{3})\\d{3}", [7, 10]], 0, 0, ["804\\d{7}", [10]]]], IE: ["353", "00", "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["2[24-9]|47|58|6[237-9]|9[35-9]"], "(0$1)"], ["(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2569]|4[1-69]|7[14]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], ["(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1\\d|21)\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\d|7)|5(?:0[45]|1\\d|8)|6(?:1\\d|[237-9])|9(?:1\\d|[35-9]))\\d{5}|(?:23|4(?:[1-469]|8\\d)|5[23679]|6[4-6]|7[14]|9[04])\\d{7}"], ["8(?:22|[35-9]\\d)\\d{6}", [9]], ["1800\\d{6}", [10]], ["15(?:1[2-8]|[2-8]0|9[089])\\d{6}", [10]], ["700\\d{6}", [9]], ["88210[1-9]\\d{4}|8(?:[35-79]5\\d\\d|8(?:[013-9]\\d\\d|2(?:[01][1-9]|[2-9]\\d)))\\d{5}", [10]], ["818\\d{6}", [9]], 0, ["76\\d{7}", [9]], ["18[59]0\\d{6}", [10]]]], IL: ["972", "0(?:0|1[2-9])", "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", [7, 8, 9, 10, 11, 12], [["(\\d{4})(\\d{3})", "$1-$2", ["125"]], ["(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], ["(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], ["(\\d{4})(\\d{6})", "$1-$2", ["159"]], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], ["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]]], "0", 0, 0, 0, 0, 0, [["153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}", [8, 11, 12]], ["55(?:4(?:0[0-3]|10|6[015-9])|57[0-289]|8[06][0-2])\\d{4}|5(?:(?:[0-2][02-9]|[36]\\d|[49][2-9]|8[3-7])\\d|5(?:01|2\\d|3[0-3]|4[3-5]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}", [9]], ["1(?:255|80[019]\\d{3})\\d{3}", [7, 10]], ["1212\\d{4}|1(?:200|9(?:0[0-2]|19|9\\d))\\d{6}", [8, 10]], 0, ["151\\d{8,9}", [11, 12]], ["1599\\d{6}", [10]], 0, ["7(?:280[01]|38(?:[05]\\d|8[01358])|8(?:33|55|77|81)\\d)\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}", [9]], ["1700\\d{6}", [10]]]], IM: ["44", "00", "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([25-8]\\d{5})$|0|180020", "1624$1", 0, "74576|(?:16|7[56])24", [["1624(?:230|[5-8]\\d\\d)\\d{3}"], ["76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}"], ["808162\\d{4}"], ["8(?:440[49]06|72299\\d)\\d{3}|(?:8(?:45|70)|90[0167])624\\d{4}"], ["70\\d{8}"], 0, ["3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}"], 0, ["56\\d{8}"]]], IN: ["91", "00", "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", [8, 9, 10, 11, 12, 13], [["(\\d{8})", "$1", ["5(?:0|2[23]|3[03]|[67]1|88)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"], 0, 1], ["(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], 0, 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["11|2[02]|33|4[04]|79[1-7]|80[2-46]", "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67)[14]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31)|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:3171|5[15][2-6]|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|8(?:16|2[014]|3[126]|6[136]|7[78]|83)(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"], "0$1", 1], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|3[129]|5[29]|6[02-5]|70)|807", "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7(?:[23569]|8[0-57-9])|8[1-6])|7(?:1(?:[013-8]|9[6-9])|3(?:17|2[0-49]|9[2-57])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|8(?:28[235-7]|3))|73179|807(?:1|9[1-3])|(?:1552|6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578])\\d|7(?:[23569]\\d|8[0-57-9])|8(?:[14-6]\\d|2[0-79]))|7(?:1(?:[013-8]\\d|9[6-9])|3(?:2[0-49]|9[2-57])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"], "0$1", 1], ["(\\d{5})(\\d{5})", "$1 $2", ["16|[6-9]"], "0$1", 1], ["(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["18[06]", "18[06]0"], 0, 1], ["(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], 0, 1]], "0", 0, 0, 0, 0, 0, [["(?:2717(?:[2-7]\\d|95)|6828[235-7]\\d)\\d{4}|(?:170[24]|280[13468]|4(?:20[24]|72[2-8])|552[1-7])\\d{6}|(?:271[0-689]|682[0-79]|782[0-6])[2-7]\\d{5}|(?:2(?:[02][2-79]|90)|3(?:23|80)|683|79[1-7])\\d{7}|(?:11|33|4[04]|80)[2-7]\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\d)\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[14-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d[2-7]\\d{5}", [10]], ["(?:6(?:1279|828[01489])|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:160[01]|6(?:(?:12|[2-4]1|5[17]|6[13]|80)[0189]|7(?:1[0189]|86))|7(?:1(?:2[0189]|9[0-5])|3(?:2[5-8]|[34][017-9]|9[016-9])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:731|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578])\\d|7(?:[23569]\\d|4[0189]|8[0-57-9])|8(?:[14-6]\\d|2[0-79]))|7(?:1(?:[013-8]\\d|9[6-9])|3(?:2[0-49]|9[2-5])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]|881))[0189]\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:[024]\\d|3[05-8]|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}", [10]], ["000800\\d{7}|180(?:0\\d{4,9}|3\\d{9})"], ["186[12]\\d{9}", [13]], 0, 0, ["140\\d{7}", [10]], 0, 0, ["1860\\d{7}", [11]]]], IO: ["246", "00", "3\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["3"]]], 0, 0, 0, 0, 0, 0, [["37\\d{5}"], ["38\\d{5}"]]], IQ: ["964", "00", "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0", 0, 0, 0, 0, 0, [["1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}", [8, 9]], ["7[3-9]\\d{8}", [10]]]], IR: ["98", "00", "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", [4, 5, 6, 7, 10], [["(\\d{4,5})", "$1", ["96"], "0$1"], ["(\\d{2})(\\d{4,5})", "$1 $2", ["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|(?:12\\d|30[0-2])\\d|2(?:[02689]0\\d|121)|4(?:111|40\\d))\\d{4}", [6, 7, 10]], ["9(?:(?:0[0-5]|[13]\\d|2[0-3])\\d\\d|9(?:[0-46]\\d\\d|5(?:10|5\\d)|8(?:[12]\\d|3[0-2]|88)|9(?:[01359]\\d|21|69|77|8[7-9])))\\d{5}", [10]], 0, 0, 0, 0, ["96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])", [4, 5]]]], IS: ["354", "00|1(?:0(?:01|[12]0)|100)", "(?:38\\d|[4-9])\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, [["(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\d{4}", [7]], ["(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}"], ["80[0-8]\\d{4}", [7]], ["90(?:0\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\d{3}", [7]], 0, ["(?:689|8(?:7[18]|80)|95[48])\\d{4}", [7]], ["809\\d{4}", [7]], 0, ["49[0-24-79]\\d{4}", [7]]], "00"], IT: ["39", "00", "0\\d{5,11}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", [6, 7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], ["(\\d{3})(\\d{3,6})", "$1 $2", ["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]], ["(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], ["(\\d{4})(\\d{4})", "$1 $2", ["894"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]|43"]], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], ["(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[03]"]]], 0, 0, 0, 0, 0, 0, [["0(?:669[0-79]\\d{1,6}|831\\d{2,8})|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[2356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}"], ["3[2-9]\\d{7,8}|(?:31|43)\\d{8}", [9, 10]], ["80(?:0\\d{3}|3)\\d{3}", [6, 9]], ["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", [6, 8, 9, 10]], ["1(?:78\\d|99)\\d{6}", [9, 10]], ["3[2-8]\\d{9,10}", [11, 12]], 0, 0, ["55\\d{8}", [10]], ["84(?:[08]\\d{3}|[17])\\d{3}", [6, 9]]]], JE: ["44", "00", "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([0-24-8]\\d{5})$|0|180020", "1534$1", 0, 0, [["1534[0-24-8]\\d{5}"], ["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}"], ["80(?:07(?:35|81)|8901)\\d{4}"], ["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"], ["701511\\d{4}"], 0, ["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"], ["56\\d{8}"]]], JM: ["1", "011", "(?:[58]\\d\\d|658|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "658|876", [["8766060\\d{3}|(?:658(?:2(?:[5-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\d|40|5[06]|6[2-589]|7[0-25-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}"], ["(?:6582(?:[0-4]\\d|95)|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], JO: ["962", "00", "(?:(?:[2689]|7\\d)\\d|32|427|53)\\d{6}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[47]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["87(?:000|90[01])\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\d{4}", [8]], ["(?:427|7(?:[78][0-25-9]|9\\d))\\d{6}", [9]], ["80\\d{6}", [8]], ["9\\d{7}", [8]], ["70\\d{7}", [9]], 0, ["8(?:10|8\\d)\\d{5}", [8]], ["74(?:66|77)\\d{5}", [9]], 0, ["85\\d{6}", [8]]]], JP: ["81", "010", "00[1-9]\\d{6,14}|[25-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], ["(\\d{4})(\\d)(\\d{4})", "$1-$2-$3", ["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2-$3", ["3|4(?:2[09]|7[01])|6[1-9]", "3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[25-9]"], "0$1"]], "0", 0, "(000[2569]\\d{4,6})$|(?:(?:003768)0?)|0", "$1", 0, 0, [["(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}", [9]], ["[6-9]0[1-9]\\d{7}", [10]], ["00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}"], ["990\\d{6}", [9]], ["60\\d{7}", [9]], 0, ["570\\d{6}", [9]], ["20\\d{8}", [10]], ["50[1-9]\\d{7}", [10]]]], KE: ["254", "000", "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", [7, 8, 9, 10], [["(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}", [7, 8, 9]], ["(?:1(?:0[0-8]|[18]\\d|2[014]|30|4[0-5])|7\\d\\d)\\d{6}", [9]], ["800[02-8]\\d{5,6}", [9, 10]], ["900[02-9]\\d{5}", [9]]]], KG: ["996", "00", "8\\d{9}|[235-9]\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], ["(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}", [9]], ["312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|9(?:12|9[05-9]))\\d{6}", [9]], ["800\\d{6,7}"]]], KH: ["855", "00[14-9]", "1\\d{9}|[1-9]\\d{7,8}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0", 0, 0, 0, 0, 0, [["23(?:4(?:[2-4]|[56]\\d)|[568]\\d\\d)\\d{4}|23[236-9]\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\d)\\d{5}|6\\d{5,6})", [8, 9]], ["(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}", [8, 9]], ["1800(?:1\\d|2[019])\\d{4}", [10]], ["1900(?:1\\d|2[09])\\d{4}", [10]]]], KI: ["686", "00", "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", [5, 8], 0, "0", 0, 0, 0, 0, 0, [["(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}"], ["(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\d{3}|(?:63\\d\\d|7(?:(?:[0146-9]\\d|2[0-689])\\d|3(?:[02-9]\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\d)))\\d{4}", [8]], 0, 0, 0, 0, 0, 0, ["30(?:0[01]\\d\\d|12(?:11|20))\\d\\d", [8]]]], KM: ["269", "00", "[3478]\\d{6}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]], 0, 0, 0, 0, 0, 0, [["7[4-7]\\d{5}"], ["[34]\\d{6}"], 0, ["8\\d{6}"]]], KN: ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "869$1", 0, "869", [["869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\d{4}"], ["869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], KP: ["850", "00|99", "85\\d{6}|(?:19\\d|[2-7])\\d{7}", [8, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:(?:195|2)\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\d{6}"], ["19[1-3]\\d{7}", [10]]]], KR: ["82", "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", [5, 6, 8, 9, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1"], ["(\\d{4})(\\d{4})", "$1-$2", ["1"]], ["(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[36]0|8"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1"]], "0", 0, "0(8(?:[1-46-8]|5\\d\\d))?", 0, 0, 0, [["(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\d{2,3}", [5, 6, 8, 9, 10]], ["1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[0-46-9]|[16-9]\\d|2[013-9])\\d{6,7}", [9, 10]], ["00(?:308\\d{6,7}|798\\d{7,9})|(?:00368|[38]0)\\d{7}", [9, 11, 12, 13, 14]], ["60[2-9]\\d{6}", [9]], ["50\\d{8,9}", [10, 11]], 0, ["1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[0168]|88)|8(?:00|33|55|77|99))\\d{4}", [8]], ["15\\d{7,8}", [9, 10]], ["70\\d{8}", [10]]]], KW: ["965", "00", "18\\d{5}|(?:[2569]\\d|41)\\d{6}", [7, 8], [["(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], ["(\\d{3})(\\d{5})", "$1 $2", ["[245]"]]], 0, 0, 0, 0, 0, 0, [["2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}", [8]], ["(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|6[16])|2[26]2|3[36]3|4[46]4|7(?:0[013-9]|[67]\\d)|8[68]8|9(?:[069]\\d|3[039]))|9(?:(?:[04679]\\d|8[057-9])\\d|1(?:00|1[01]|99)|2(?:00|2\\d)|3(?:00|3[03])|5(?:00|5\\d)))\\d{4}", [8]], ["18\\d{5}", [7]]]], KY: ["1", "011", "(?:345|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "345$1", 0, "345", [["345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|4[89]|88)|9(?:14|4[035-9]))\\d{4}"], ["345(?:32[1-9]|4(?:1[2-6]|2[0-4])|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["(?:345976|900[2-9]\\d\\d)\\d{4}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], KZ: ["7", "810", "8\\d{13}|[78]\\d{9}", [10, 14], 0, "8", 0, 0, 0, 0, "7", [["7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9]|97)|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59)))\\d{5}", [10]], ["7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}", [10]], ["8(?:00|108\\d{3})\\d{7}"], ["809\\d{7}", [10]], ["808\\d{7}", [10]], 0, 0, 0, ["751\\d{7}", [10]]], "8~10"], LA: ["856", "00", "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["3"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:2[13]|[35-7][14]|41|8[1468])\\d{6}", [8]], ["(?:20(?:[23579]\\d|8[78])|30[24]\\d)\\d{6}|30\\d{7}", [9, 10]]]], LB: ["961", "00", "[27-9]\\d{7}|[13-9]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[13-69]|7(?:[2-57]|62|8[0-6]|9[04-9])|8[02-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]]], "0", 0, 0, 0, 0, 0, [["7(?:62|8[0-6]|9[04-9])\\d{4}|(?:[14-69]\\d|2(?:[14-69]\\d|[78][1-9])|7[2-57]|8[02-9])\\d{5}"], ["(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[7-9]|9[0-4]))\\d{5}"], 0, ["9[01]\\d{6}", [8]], 0, 0, 0, 0, 0, ["80\\d{6}", [8]]]], LC: ["1", "011", "(?:[58]\\d\\d|758|900)\\d{7}", [10], 0, "1", 0, "([2-8]\\d{6})$|1", "758$1", 0, "758", [["758(?:234|4(?:30|5\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\d{4}"], ["758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], LI: ["423", "00", "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", [7, 9], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]], "0", 0, "(1001)|0", 0, 0, 0, [["(?:2(?:01|1[27]|2[024]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}", [7]], ["(?:6(?:(?:4[5-9]|5\\d)\\d|6(?:[024-68]\\d|1[01]|3[7-9]|7[02]))\\d|7(?:[37-9]\\d|42|56))\\d{4}"], ["8002[28]\\d\\d|80(?:05\\d|9)\\d{4}"], ["90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d", [7]], 0, ["697(?:42|56|[78]\\d)\\d{4}", [9]], ["870(?:28|87)\\d\\d", [7]]]], LK: ["94", "00", "[1-9]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:12[2-9]|602|8[12]\\d|9(?:1\\d|22|9[245]))\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}"], ["7(?:[0-25-8]\\d|4[0-4])\\d{6}"], 0, 0, 0, 0, ["1973\\d{5}"]]], LR: ["231", "00", "(?:[2457]\\d|33|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["4[67]|[56]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-578]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["2\\d{7}", [8]], ["(?:(?:(?:22|33)0|555|7(?:6[01]|7\\d)|88\\d)\\d|4(?:240|[67]))\\d{5}|[56]\\d{6}", [7, 9]], 0, ["332(?:02|[34]\\d)\\d{4}", [9]]]], LS: ["266", "00", "(?:[256]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]], 0, 0, 0, 0, 0, 0, [["2\\d{7}"], ["[56]\\d{7}"], ["800[1256]\\d{4}"]]], LT: ["370", "00", "(?:[3469]\\d|52|[78]0)\\d{6}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(0-$1)", 1], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0 $1", 1], ["(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(0-$1)", 1], ["(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(0-$1)", 1]], "0", 0, "[08]", 0, 0, 0, [["(?:3[1478]|4[124-6]|52)\\d{6}"], ["6\\d{7}"], ["80[02]\\d{5}"], ["9(?:0[0239]|10)\\d{5}"], ["70[05]\\d{5}"], 0, ["70[67]\\d{5}"], 0, ["[89]01\\d{5}"], ["808\\d{5}"]]], LU: ["352", "00", "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", [4, 5, 6, 7, 8, 9, 10, 11], [["(\\d{2})(\\d{3})", "$1 $2", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", ["20"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", "$1 $2 $3 $4", ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4 $5", ["20"]]], 0, 0, "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)", 0, 0, 0, [["(?:35[013-9]|80[2-9]|90[89])\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\d|8[13-9]|9[2-579])\\d{2,9}"], ["6(?:[26][18]|5[1568]|7[189]|81|9[128])\\d{6}", [9]], ["800\\d{5}", [8]], ["90[015]\\d{5}", [8]], 0, 0, 0, 0, ["20(?:1\\d{5}|[2-689]\\d{1,7})", [4, 5, 6, 7, 8, 9, 10]], ["801\\d{5}", [8]]]], LV: ["371", "00", "(?:[268]\\d|78|90)\\d{6}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2679]|8[01]"]]], 0, 0, 0, 0, 0, 0, [["6\\d{7}"], ["2333[0-8]\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[02-9]|3[0-24-9]))\\d{4}"], ["80\\d{6}"], ["90\\d{6}"], 0, 0, 0, 0, 0, ["81\\d{6}"]]], LY: ["218", "00", "[2-9]\\d{8}", [9], [["(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:2(?:0[56]|[1-6]\\d|7[124579]|8[124])|3(?:1\\d|2[2356])|4(?:[17]\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\d|5[2-57]|8[1-5])|7(?:[13]\\d|2[13-79])|8(?:[124]\\d|5[124]|84))\\d{6}"], ["9[1-6]\\d{7}"]]], MA: ["212", "00", "[5-8]\\d{8}", [9], [["(\\d{4})(\\d{5})", "$1-$2", ["892"], "0$1"], ["(\\d{2})(\\d{7})", "$1-$2", ["8(?:0[0-7]|9)"], "0$1"], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[5-8]"], "0$1"]], "0", 0, 0, 0, 0, "[5-8]", [["5(?:(?:18|4[0679]|5[03])\\d|2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-9])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9]))\\d{5}"], ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[016-8]\\d|2[0-8]|3[01]|5[0-5]))\\d{6}"], ["80[0-7]\\d{6}"], ["89\\d{7}"], 0, 0, 0, 0, ["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]], MC: ["377", "00", "(?:[3489]|[67]\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[67]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:870|9[2-47-9]\\d)\\d{5}", [8]], ["4(?:[46]\\d|5[1-9])\\d{5}|(?:3|[67]\\d)\\d{7}"], ["(?:800|90\\d)\\d{5}", [8]]]], MD: ["373", "00", "(?:[235-7]\\d|[89]0)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:(?:2[1-9]|3[1-79])\\d|5(?:33|5[257]))\\d{5}"], ["562\\d{5}|(?:6\\d|7[16-9])\\d{6}"], ["800\\d{5}"], ["90[056]\\d{5}"], 0, 0, ["803\\d{5}"], 0, ["3[08]\\d{6}"], ["808\\d{5}"]]], ME: ["382", "00", "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\d{5}", [8]], ["6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}", [8]], ["80(?:[0-2578]|9\\d)\\d{5}"], ["9(?:4[1568]|5[178])\\d{5}", [8]], 0, 0, ["77[1-9]\\d{5}", [8]], 0, ["78[1-49]\\d{5}", [8]]]], MF: ["590", "00", "7090\\d{5}|(?:[56]9|[89]\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["(?:59(?:0(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)|87\\d)|80[6-9]\\d\\d)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], ["8[129]\\d{7}"], 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]], MG: ["261", "00", "[23]\\d{8}", [9], [["(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0", 0, "([24-9]\\d{6})$|0", "20$1", 0, 0, [["2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[356]|8[268]|9[2457])\\d{5}"], ["3[2-9]\\d{7}"], 0, 0, 0, 0, 0, 0, ["22\\d{7}"]]], MH: ["692", "011", "329\\d{4}|(?:[256]\\d|45)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], "1", 0, 0, 0, 0, 0, [["(?:247|528|625)\\d{4}"], ["(?:(?:23|54)5|329|45[35-8])\\d{4}"], 0, 0, 0, 0, 0, 0, ["635\\d{4}"]]], MK: ["389", "00", "[2-578]\\d{7}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[0-3]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}"], ["7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-478]\\d|6[01])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|5[01]|7[015]))\\d{4}"], ["800\\d{5}"], ["5\\d{7}"], 0, 0, 0, 0, 0, ["8(?:0[1-9]|[1-9]\\d)\\d{5}"]]], ML: ["223", "00", "[24-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]], 0, 0, 0, 0, 0, 0, [["2(?:07[0-8]|12[67])\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-69]))\\d{5}"], ["2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[0-3]|[679]\\d|8[2-59])\\d{6}"], ["80\\d{6}"]]], MM: ["95", "00", "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", [6, 7, 8, 9, 10], [["(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]|452|678|86", "[12]|452|6788|86"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"], ["(\\d)(\\d{3})(\\d{4,6})", "$1 $2 $3", ["9(?:2[0-4]|[35-9]|4[137-9])"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], ["(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:(?:12|[28]\\d|3[56]|7[3-6]|9[0-6])\\d|4(?:2[29]|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|22|7[0-2]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[013])|3(?:20\\d|4(?:70|83)|56)|420\\d|5(?:2\\d|470))|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|2472|3(?:20\\d|470)|4(?:2[04]\\d|472)|7(?:3\\d\\d|4[67]0|8(?:[01459]\\d|8))))\\d{4}|5(?:2(?:2\\d{5,6}|47[02]\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[01])|8(?:20\\d|47[02])|9(?:20\\d|470))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:(?:2\\d|51)\\d|4(?:[1-35-9]\\d|4[0-57-9]))|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|(?:[35]2|64)\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}", [6, 7, 8, 9]], ["(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|8[89]|9[4-8])\\d|7(?:3|40|[5-9]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}", [7, 8, 9, 10]], ["80080(?:0[1-9]|2\\d)\\d{3}", [10]], 0, 0, 0, 0, 0, ["1333\\d{4}", [8]]]], MN: ["976", "001", "[12]\\d{7,9}|[5-9]\\d{7}", [8, 9, 10], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["11|2[16]"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])", "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["[12](?:2[1-3]|(?:3[2-8]|4[2-68]|5[1-4689])\\d)\\d{5,6}|7(?:0(?:[0-5]\\d|7[078]|80)|128)\\d{4}|[12]27\\d{6}|(?:11|2[16]|5[368])\\d{6}"], ["(?:87[01]|92[0139])\\d{5}|(?:5[05]|6[069]|7[28]|8[0135689]|9[013-9])\\d{6}", [8]], 0, 0, 0, 0, 0, 0, ["712[0-79]\\d{4}|7(?:1[013-9]|[5-79]\\d)\\d{5}", [8]]]], MO: ["853", "00", "0800\\d{3}|(?:28|[68]\\d)\\d{6}", [7, 8], [["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[268]"]]], 0, 0, 0, 0, 0, 0, [["(?:28[2-9]|8(?:11|[2-57-9]\\d))\\d{5}", [8]], ["6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}", [8]], ["0800\\d{3}", [7]]]], MP: ["1", "011", "[58]\\d{9}|(?:67|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "670$1", 0, "670", [["670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], MQ: ["596", "00", "7091\\d{5}|(?:[56]9|[89]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-79]|8(?:0[6-9]|[36])"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:59(?:6(?:[03-7]\\d|1[05]|2[7-9]|8[0-39]|9[04-9])|89\\d)|80[6-9]\\d\\d|9(?:477[6-9]|767[4589]))\\d{4}"], ["(?:69[67]\\d\\d|7091[0-3])\\d{4}"], ["80[0-5]\\d{6}"], ["8[129]\\d{7}"], 0, 0, 0, 0, ["9(?:397[0-3]|477[0-5]|76(?:6\\d|7[0-367]))\\d{4}"]]], MR: ["222", "00", "(?:[2-4]\\d\\d|800)\\d{5}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]], 0, 0, 0, 0, 0, 0, [["(?:25[08]|35\\d|45[1-7])\\d{5}"], ["[2-4][0-46-9]\\d{6}"], ["800\\d{5}"]]], MS: ["1", "011", "(?:[58]\\d\\d|664|900)\\d{7}", [10], 0, "1", 0, "([34]\\d{6})$|1", "664$1", 0, "664", [["6644(?:1[0-3]|91)\\d{4}"], ["664(?:3(?:49|9[1-6])|49[2-6])\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], MT: ["356", "00", "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]], 0, 0, 0, 0, 0, 0, [["20(?:3[1-4]|6[059])\\d{4}|2(?:0[19]|[1-357]\\d|60)\\d{5}"], ["(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}"], ["800(?:02|[3467]\\d)\\d{3}"], ["5(?:0(?:0(?:37|43)|(?:6\\d|70|9[0168])\\d)|[12]\\d0[1-5])\\d{3}"], 0, 0, ["501\\d{5}"], ["7117\\d{4}"], ["3550\\d{4}"]]], MU: ["230", "0(?:0|[24-7]0|3[03])", "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[57]"]], ["(\\d{5})(\\d{5})", "$1 $2", ["8"]]], 0, 0, 0, 0, 0, 0, [["(?:2(?:[0346-8]\\d|1[0-8])|4(?:[013568]\\d|2[0-24-8]|71|90)|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}", [7, 8]], ["5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-7]|3[013]))\\d{5}", [8]], ["802\\d{7}|80[0-2]\\d{4}", [7, 10]], ["30\\d{5}", [7]], 0, 0, 0, ["219\\d{4}", [7]], ["3(?:20|9\\d)\\d{4}", [7]]], "020"], MV: ["960", "0(?:0|19)", "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", [7, 10], [["(\\d{3})(\\d{4})", "$1-$2", ["[34679]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]]], 0, 0, 0, 0, 0, 0, [["(?:3(?:0[0-4]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\d{4}", [7]], ["(?:46[46]|[79]\\d\\d)\\d{4}", [7]], ["800\\d{7}", [10]], ["900\\d{7}", [10]], 0, 0, ["4(?:0[01]|50)\\d{4}", [7]]], "00"], MW: ["265", "00", "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", [7, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-37-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["1[2-9]\\d{5}", [7]], ["111\\d{6}|(?:2[12]|31|77|[89][89])\\d{7}", [9]]]], MX: ["52", "0[09]", "[2-9]\\d{9}", [10], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:2(?:0[01]|2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\d|7[12]|8[1-8]))\\d{7}"], ["(?:2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\d|7[12]|8[1-8]))\\d{7}"], ["8(?:00|88)\\d{7}"], ["900\\d{7}"], ["500\\d{7}"], 0, 0, 0, 0, ["300\\d{7}"]], "00"], MY: ["60", "00", "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1-$2 $3", ["1(?:[02469]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"]], "0", 0, 0, 0, 0, 0, [["427[01]\\d{4}|(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}", [8, 9]], ["1(?:(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|9\\d{7,8})|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0-4]\\d|5[0-79]|6[02-4]|8[02-5]))|(?:[26]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}", [9, 10]], ["1[378]00\\d{6}", [10]], ["1600\\d{6}", [10]], 0, 0, 0, 0, ["15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}", [10]]]], MZ: ["258", "00", "(?:2|8\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]], 0, 0, 0, 0, 0, 0, [["2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}", [8]], ["8(?:[2-79]\\d|80)\\d{6}", [9]], ["800\\d{6}", [9]]]], NA: ["264", "00", "[68]\\d{7,8}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["64426\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\d{4,5}|6(?:1(?:(?:0\\d|2[0189]|3[24-69]|4[5-9])\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\d{4}"], ["(?:60|8[1245])\\d{7}", [9]], ["80\\d{7}", [9]], ["8701\\d{5}", [9]], 0, 0, 0, 0, ["8(?:3\\d\\d|86)\\d{5}"]]], NC: ["687", "00", "(?:050|[2-57-9]\\d\\d)\\d{3}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}"], ["(?:[579]\\d|8[0-79])\\d{4}"], ["050\\d{3}"], ["36\\d{4}"]]], NE: ["227", "00", "[027-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[089]|2[013]|7[0467]"]]], 0, 0, 0, 0, 0, 0, [["2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}"], ["(?:23|7[0467]|[89]\\d)\\d{6}"], ["08\\d{6}"], ["09\\d{6}"]]], NF: ["672", "00", "[13]\\d{5}", [6], [["(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], ["(\\d)(\\d{5})", "$1 $2", ["[13]"]]], 0, 0, "([0-258]\\d{4})$", "3$1", 0, 0, [["(?:1(?:06|17|28|39)|3[0-2]\\d)\\d{3}"], ["(?:14|3[58])\\d{4}"]]], NG: ["234", "009", "(?:20|9\\d)\\d{8}|[78]\\d{9,13}", [10, 11, 12, 13, 14], [["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["20[129]"], "0$1"], ["(\\d{4})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["20(?:[1259]\\d|3[013-9]|4[1-8]|6[024-689]|7[1-79]|8[2-9])\\d{6}", [10]], ["(?:702[0-24-9]|819[01])\\d{6}|(?:7(?:0[13-9]|[12]\\d)|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-6]))\\d{7}", [10]], ["800\\d{7,11}"], 0, 0, 0, ["700\\d{7,11}"]]], NI: ["505", "00", "(?:1800|[25-8]\\d{3})\\d{4}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]], 0, 0, 0, 0, 0, 0, [["2\\d{7}"], ["(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}"], ["1800\\d{4}"]]], NL: ["31", "00", "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", [5, 6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], ["(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], ["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:[035]\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\d\\d)\\d{6}", [9]], ["(?:6[1-58]|970\\d)\\d{7}", [9, 11]], ["800\\d{4,7}", [7, 8, 9, 10]], ["90[069]\\d{4,7}", [7, 8, 9, 10]], 0, 0, ["140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\d{6})\\d", [5, 6, 9]], ["66\\d{7}", [9]], ["(?:85|91)\\d{7}", [9]]]], NO: ["47", "00", "(?:0|[2-9]\\d{3})\\d{4}", [5, 8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]"]]], 0, 0, 0, 0, 0, "[02-689]|7[0-8]", [["(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-46-9]|7[0-8])\\d{6}", [8]], ["(?:4[015-9]|9\\d)\\d{6}", [8]], ["80[01]\\d{5}", [8]], ["82[09]\\d{5}", [8]], ["880\\d{5}", [8]], ["81[23]\\d{5}", [8]], ["(?:0[235-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}"], 0, ["85[0-5]\\d{5}", [8]], ["810(?:0[0-6]|[2-8]\\d)\\d{3}", [8]]]], NP: ["977", "00", "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", [8, 10, 11], [["(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], ["(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], ["(\\d{3})(\\d{7})", "$1-$2", ["9"]]], "0", 0, 0, 0, 0, 0, [["(?:1[0-6]\\d|99[02-6])\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\d{5}", [8]], ["9(?:00|6[0-3]|7[0-24-6]|8[0-24-68])\\d{7}", [10]], ["1(?:66001|800\\d\\d)\\d{5}", [11]]]], NR: ["674", "00", "(?:222|444|(?:55|8\\d)\\d|666|777|999)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[24-9]"]]], 0, 0, 0, 0, 0, 0, [["444\\d{4}"], ["(?:222|55[3-9]|666|777|8\\d\\d|999)\\d{4}"]]], NU: ["683", "00", "(?:[4-7]|888\\d)\\d{3}", [4, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["8"]]], 0, 0, 0, 0, 0, 0, [["[47]\\d{3}", [4]], ["(?:[56]|888[1-9])\\d{3}"]]], NZ: ["64", "0(?:0|161)", "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|8|90", "50(?:[0367]|88)|8|90"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["24|[346]|7[2-57-9]|9[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:10|74)|[589]"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7"], "0$1"]], "0", 0, 0, 0, 0, 0, [["240\\d{5}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}", [8]], ["2(?:[0-27-9]\\d|6)\\d{6,7}|2(?:1\\d|75)\\d{5}", [8, 9, 10]], ["508\\d{6,7}|80\\d{6,8}", [8, 9, 10]], ["(?:1[13-57-9]\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}", [7, 8, 9, 10]], ["70\\d{7}", [9]], 0, ["8(?:1[16-9]|22|3\\d|4[045]|5[459]|6[235-9]|7[0-3579]|90)\\d{2,7}"]], "00"], OM: ["968", "00", "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", [7, 8, 9], [["(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], ["(\\d{2})(\\d{6})", "$1 $2", ["2"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[179]"]]], 0, 0, 0, 0, 0, 0, [["2[1-6]\\d{6}", [8]], ["(?:1505|90[1-9]\\d)\\d{4}|(?:7[124-9]|9[1-9])\\d{6}", [8]], ["8007\\d{4,5}|(?:500|800[05])\\d{4}"], ["900\\d{5}", [8]]]], PA: ["507", "00", "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", [7, 8, 10, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], ["(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]], 0, 0, 0, 0, 0, 0, [["(?:1(?:0\\d|1[0479]|2[37]|3[0137]|4[147]|5[05]|6[058]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[0147-9]\\d|[25][0-5]|33|6[068])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[0156]|7[0-24-9]|8[4-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}", [7]], ["(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}", [7, 8]], ["800\\d{4,5}|(?:00800|800\\d)\\d{6}"], ["(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}", [7]]]], PE: ["51", "00|19(?:1[124]|77|90)00", "(?:[14-8]|9\\d)\\d{7}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]]], "0", 0, 0, 0, 0, 0, [["(?:(?:(?:4[34]|5[14])[0-8]|687)\\d|7(?:173|(?:3[0-8]|55)\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[0569]|[56]0)))\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\d{6}", [8]], ["9\\d{8}", [9]], ["800\\d{5}", [8]], ["805\\d{5}", [8]], ["80[24]\\d{5}", [8]], 0, 0, 0, 0, ["801\\d{5}", [8]]], "00", " Anexo "], PF: ["689", "00", "4\\d{5}(?:\\d{2})?|8\\d{7,8}", [6, 8, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]], 0, 0, 0, 0, 0, 0, [["4(?:0[4-689]|9[4-68])\\d{5}", [8]], ["8[7-9]\\d{6}", [8]], ["80[0-5]\\d{6}", [9]], 0, 0, 0, ["44\\d{4}", [6]], 0, ["499\\d{5}", [8]]]], PG: ["675", "00|140[1-3]", "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[78]"]]], 0, 0, 0, 0, 0, 0, [["(?:(?:3[0-2]|4[257]|5[34]|9[78])\\d|64[1-9]|85[02-46-9])\\d{4}", [7]], ["(?:7\\d|8[1-48])\\d{6}", [8]], ["180\\d{4}", [7]], 0, 0, 0, 0, ["27[01]\\d{4}", [7]], ["2(?:0[0-57]|7[568])\\d{4}", [7]]], "00"], PH: ["63", "00", "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", [6, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], ["(\\d{4})(\\d{4,6})", "$1 $2", ["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"], "(0$1)"], ["(\\d{5})(\\d{4})", "$1 $2", ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], "(0$1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]]], "0", 0, 0, 0, 0, 0, [["(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\d{3}|88(?:22\\d\\d|42))\\d{4}|(?:2|8[2-8]\\d\\d)\\d{5}", [6, 8, 9, 10]], ["(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}", [10]], ["1800\\d{7,9}", [11, 12, 13]]]], PK: ["92", "00", "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["1"]], ["(\\d{3})(\\d{6,7})", "$1 $2", ["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"], "(0$1)"], ["(\\d{2})(\\d{7,8})", "$1 $2", ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], "(0$1)"], ["(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[24-9]"], "(0$1)"]], "0", 0, 0, 0, 0, 0, [["(?:(?:21|42)[2-9]|58[126])\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}", [9, 10]], ["3(?:[0-247]\\d|3[0-79]|55|64)\\d{7}", [10]], ["800\\d{5}(?:\\d{3})?", [8, 11]], ["900\\d{5}", [8]], ["122\\d{6}", [9]], 0, ["(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}", [11, 12]]]], PL: ["48", "00", "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{5})", "$1", ["19"]], ["(\\d{3})(\\d{3})", "$1 $2", ["11|20|64"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["30|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", "30|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]]], 0, 0, 0, 0, 0, 0, [["(?:30|47\\d\\d)\\d{5}|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\d{6}|1(?:[0-8]\\d{5}|9\\d{3}(?:\\d{2})?))", [7, 9]], ["21(?:1[013-5]|2\\d|3[1-9])\\d{5}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}", [9]], ["800\\d{6,7}", [9, 10]], ["70[01346-8]\\d{6}", [9]], 0, 0, ["804\\d{6}", [9]], ["64\\d{4,7}", [6, 7, 8, 9]], ["39\\d{7}", [9]], ["801\\d{6}", [9]]]], PM: ["508", "00", "[78]\\d{8}|[2-9]\\d{5}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["80[6-9]\\d{6}|(?:[236-9]\\d|4[1-35-9]|5[0-47-9])\\d{4}"], ["708(?:4[0-5]|5[0-6])\\d{4}|(?:[236-9]\\d|4[02-489]|5[02-9])\\d{4}"], ["80[0-5]\\d{6}", [9]], ["8[129]\\d{7}", [9]]]], PR: ["1", "011", "(?:[589]\\d\\d|787)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "787|939", [["(?:787|939)[2-9]\\d{6}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], PS: ["970", "00", "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0", 0, 0, 0, 0, 0, [["(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\d{5}", [8]], ["5[69]\\d{7}", [9]], ["1800\\d{6}", [10]], 0, 0, 0, 0, 0, 0, ["1700\\d{6}", [10]]]], PT: ["351", "00", "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]]], 0, 0, 0, 0, 0, 0, [["2(?:[12]\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\d{6}"], ["6(?:[06]92(?:30|9\\d)|[35]92(?:[049]\\d|3[034]))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}"], ["80[02]\\d{6}"], ["(?:6(?:0[178]|4[68])\\d|76(?:0[1-57]|1[2-47]|2[237]))\\d{5}"], ["884[0-4689]\\d{5}"], ["600\\d{6}|6[06]92(?:0\\d|3[349]|49)\\d{3}"], ["70(?:38[01]|596|(?:7\\d|8[17])\\d)\\d{4}"], ["6(?:222\\d|89(?:00|88|99))\\d{4}"], ["30\\d{7}"], ["80(?:8\\d|9[1579])\\d{5}"]]], PW: ["680", "01[12]", "(?:[24-8]\\d\\d|345|900)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\d{4}"], ["(?:(?:46|83)[0-5]|(?:6[2-4689]|78)0)\\d{4}|(?:45|77|88)\\d{5}"]]], PY: ["595", "00", "[36-8]\\d{5,8}|4\\d{6,8}|59\\d{6}|9\\d{5,10}|(?:2\\d|5[0-8])\\d{6,7}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["3[289]|4[246-8]|61|7[1-3]|8[1-36]"], "(0$1)"], ["(\\d{3})(\\d{4,5})", "$1 $2", ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], ["(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]]], "0", 0, 0, 0, 0, 0, [["(?:3[289]|4[246-8]|61|7[1-3]|8[1-36])\\d{5,7}|(?:2(?:[14-68]\\d|2[4-68]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\d)|4(?:1\\d|3[12]|5[13]|9[1-47])|5(?:[1-4]\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\d|6[1-578]|75|8[0-8])|858)\\d{5,6}", [7, 8, 9]], ["9(?:51|6[129]|7[1-6]|8[1-7]|9[1-5])\\d{6}", [9]], ["9800\\d{5,7}", [9, 10, 11]], 0, 0, 0, ["[245]0\\d{6,7}|[36-9]0\\d{4,7}", [6, 7, 8, 9]], 0, ["8700[0-4]\\d{4}", [9]]]], QA: ["974", "00", "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", [7, 8, 9, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["2[136]|8"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[3-7]"]]], 0, 0, 0, 0, 0, 0, [["4(?:(?:[014]\\d\\d|999)\\d|2022)\\d{3}", [8]], ["[35-7]\\d{7}", [8]], ["800\\d{4}|(?:0080[01]|800)\\d{6}", [7, 9, 11]], 0, 0, 0, 0, ["2[136]\\d{5}", [7]]]], RE: ["262", "00", "709\\d{6}|(?:26|[689]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["2631[0-6]\\d{4}|26(?:2\\d|30|88)\\d{5}"], ["(?:69(?:2\\d\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\d{4}"], ["80\\d{7}"], ["89[1-37-9]\\d{6}"], 0, 0, 0, 0, ["9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\d{4}"], ["8(?:1[019]|2[0156]|84|90)\\d{6}"]]], RO: ["40", "00", "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}", [6, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], ["(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[236-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d"], ["(?:630|702)0\\d{5}|(?:6(?:00|2\\d)|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[0-39]))\\d{6}", [9]], ["800\\d{6}", [9]], ["90[0136]\\d{6}", [9]], 0, 0, ["(?:37\\d|80[578])\\d{6}", [9]], 0, 0, ["801\\d{6}", [9]]], 0, " int "], RS: ["381", "00", "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", [6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], ["(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:11[1-9]\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\d))\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\d{4,9}", [7, 8, 9, 10, 11, 12]], ["6(?:[0-689]|7\\d)\\d{6,7}", [8, 9, 10]], ["800\\d{3,9}"], ["(?:78\\d|90[0169])\\d{3,7}", [6, 7, 8, 9, 10]], 0, 0, ["7[06]\\d{4,10}"]]], RU: ["7", "810", "8\\d{13}|[347-9]\\d{9}", [10, 14], [["(\\d{4})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-8]|2[1-9])", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"], "8 ($1)", 1], ["(\\d{5})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-68]|2[1-9])", "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", 1], ["(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"]], "8", 0, 0, 0, 0, "[3489]", [["(?:3(?:0[12]|36|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15-7]|6[0-35-79]|7[1-37-9]))\\d{7}", [10]], ["9\\d{9}", [10]], ["8(?:0[04]|108\\d{3})\\d{7}"], ["80[39]\\d{7}", [10]], ["808\\d{7}", [10]]], "8~10"], RW: ["250", "00", "(?:06|[27]\\d\\d|[89]00)\\d{6}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:06|2[23568]\\d)\\d{6}"], ["7[237-9]\\d{7}", [9]], ["800\\d{6}", [9]], ["900\\d{6}", [9]]]], SA: ["966", "00", "(?:[15]\\d|800|92)\\d{7}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["9"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]], "0", 0, 0, 0, 0, 0, [["1(?:1\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}", [9]], ["579[0-8]\\d{5}|5(?:[013-689]\\d|7[0-8])\\d{6}", [9]], ["800\\d{7}", [10]], ["925\\d{6}", [9]], 0, 0, 0, 0, 0, ["920\\d{6}", [9]]]], SB: ["677", "0[01]", "[6-9]\\d{6}|[1-6]\\d{4}", [5, 7], [["(\\d{2})(\\d{5})", "$1 $2", ["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]], 0, 0, 0, 0, 0, 0, [["(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}", [5]], ["48\\d{3}|(?:(?:6[89]|7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}"], ["1[38]\\d{3}", [5]], 0, 0, 0, 0, 0, ["5[12]\\d{3}", [5]]]], SC: ["248", "010|0[0-2]", "(?:[2489]\\d|64)\\d{5}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], 0, 0, 0, 0, 0, 0, [["4[2-46]\\d{5}"], ["2[125-8]\\d{5}"], ["800[08]\\d{3}"], ["85\\d{5}"], 0, 0, 0, 0, ["971\\d{4}|(?:64|95)\\d{5}"]], "00"], SD: ["249", "00", "[19]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["1(?:5\\d|8[35-7])\\d{6}"], ["(?:1[0-2]|9[0-3569])\\d{7}"]]], SE: ["46", "00", "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", [6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1", 0, "$1 $2"], ["(\\d{2})(\\d{3})(\\d{2})", "$1-$2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3"], ["(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{2,3})(\\d{3})", "$1-$2 $3", ["9(?:00|39|44)"], "0$1", 0, "$1 $2 $3"], ["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["10|7"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4 $5", ["[26]"], "0$1", 0, "$1 $2 $3 $4 $5"]], "0", 0, 0, 0, 0, 0, [["(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\d)\\d|90[1-9])\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\d{5,6}", [7, 8, 9]], ["7[023689]\\d{7}", [9]], ["20\\d{4,7}", [6, 7, 8, 9]], ["649\\d{6}|99[1-59]\\d{4}(?:\\d{3})?|9(?:00|39|44)[1-8]\\d{3,6}", [7, 8, 9, 10]], ["75[1-8]\\d{6}", [9]], ["(?:25[245]|67[3-68])\\d{9}", [12]], ["10[1-8]\\d{6}", [9]], ["74[02-9]\\d{6}", [9]], 0, ["77[0-7]\\d{6}", [9]]]], SG: ["65", "0[0-3]\\d", "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]], 0, 0, 0, 0, 0, 0, [["662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}", [8]], ["80[1-9]\\d{5}|(?:8[1-9]|9[0-8])\\d{6}", [8]], ["(?:18|8)00\\d{7}", [10, 11]], ["1900\\d{7}", [11]], 0, 0, ["7000\\d{7}", [11]], 0, ["(?:3[12]\\d|666)\\d{5}", [8]]]], SH: ["290", "00", "(?:[256]\\d|8)\\d{3}", [4, 5], 0, 0, 0, 0, 0, 0, "[256]", [["2(?:[0-57-9]\\d|6[4-9])\\d\\d"], ["[56]\\d{4}", [5]], 0, 0, 0, 0, 0, 0, ["262\\d\\d", [5]]]], SI: ["386", "00|10(?:22|66|88|99)", "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", [5, 6, 7, 8], [["(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37][01]|4[013]|51|6"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"]], "0", 0, 0, 0, 0, 0, [["(?:[1-357][2-8]|4[24-8])\\d{6}", [8]], ["65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[013]|51|6[489])\\d{6}", [8]], ["80\\d{4,6}", [6, 7, 8]], ["89[1-3]\\d{2,5}|90\\d{4,6}"], 0, 0, 0, 0, ["(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}", [8]]], "00"], SJ: ["47", "00", "0\\d{4}|(?:[489]\\d|79)\\d{6}", [5, 8], 0, 0, 0, 0, 0, 0, "79", [["79\\d{6}", [8]], ["(?:4[015-9]|9\\d)\\d{6}", [8]], ["80[01]\\d{5}", [8]], ["82[09]\\d{5}", [8]], ["880\\d{5}", [8]], ["81[23]\\d{5}", [8]], ["(?:0[235-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}"], 0, ["85[0-5]\\d{5}", [8]], ["810(?:0[0-6]|[2-8]\\d)\\d{3}", [8]]]], SK: ["421", "00", "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", [6, 7, 9], [["(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[3-5]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:2(?:16|[2-9]\\d{3})|(?:(?:[3-5][1-8]\\d|819)\\d|601[1-5])\\d)\\d{4}|(?:2|[3-5][1-8])1[67]\\d{3}|[3-5][1-8]16\\d\\d"], ["909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}", [9]], ["800\\d{6}", [9]], ["9(?:00|[78]\\d)\\d{6}", [9]], 0, 0, ["96\\d{7}", [9]], ["9090\\d{3}", [7]], ["6(?:02|5[0-4]|9[0-6])\\d{6}", [9]], ["8[5-9]\\d{7}", [9]]]], SL: ["232", "00", "(?:[237-9]\\d|66)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], "0", 0, 0, 0, 0, 0, [["22[2-4][2-9]\\d{4}"], ["(?:25|3[0-5]|66|7\\d|8[08]|9[09])\\d{6}"]]], SM: ["378", "00", "(?:0549|[5-7]\\d)\\d{6}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], ["(\\d{4})(\\d{6})", "$1 $2", ["0"]]], 0, 0, "([89]\\d{5})$", "0549$1", 0, 0, [["0549(?:8[0157-9]|9\\d)\\d{4}", [10]], ["6[16]\\d{6}", [8]], 0, ["7[178]\\d{6}", [8]], 0, 0, 0, 0, ["5[158]\\d{6}", [8]]]], SN: ["221", "00", "(?:[378]\\d|93)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]]], 0, 0, 0, 0, 0, 0, [["3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}"], ["7(?:[015-8]\\d|21|90)\\d{6}"], ["800\\d{6}"], ["88[4689]\\d{6}"], 0, 0, 0, 0, ["(?:3(?:392|9[01]\\d)\\d|93(?:3[13]0|929))\\d{4}"], ["81[02468]\\d{6}"]]], SO: ["252", "00", "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", [6, 7, 8, 9], [["(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], ["(\\d{6})", "$1", ["[134]"]], ["(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], ["(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|9[2-9]"]], ["(\\d)(\\d{7})", "$1 $2", ["[267]|904"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[346-9]"]]], "0", 0, 0, 0, 0, 0, [["(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}", [6, 7]], ["(?:(?:15|(?:3[59]|4[89]|6\\d|7[0-35-9]|8[08])\\d|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}", [7, 8, 9]]]], SR: ["597", "00", "(?:[2-5]|[6-9]\\d)\\d{5}", [6, 7], [["(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], ["(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], ["(\\d{3})(\\d{4})", "$1-$2", ["[6-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:2[1-3]|3[0-7]|4\\d|5[2-578])\\d{4}", [6]], ["(?:6[08]|7[1-7]|8[1-9])\\d{5}", [7]], ["80\\d{5}", [7]], ["90\\d{5}", [7]], 0, 0, 0, 0, ["(?:56|91\\d)\\d{4}"]]], SS: ["211", "00", "[19]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["1[89]\\d{7}"], ["(?:12|9[1257-9])\\d{7}"]]], ST: ["239", "00", "(?:22|9\\d)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]], 0, 0, 0, 0, 0, 0, [["22\\d{5}"], ["900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}"]]], SV: ["503", "00", "[25-7]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?", [7, 8, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[25-7]"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]]], 0, 0, 0, 0, 0, 0, [["2(?:79(?:0[0347-9]|[1-9]\\d)|89(?:0[024589]|[1-9]\\d))\\d{3}|2(?:[1-69]\\d|[78][0-8])\\d{5}", [8]], ["[5-7]\\d{7}", [8]], ["800\\d{8}|80[01]\\d{4}", [7, 11]], ["900\\d{4}(?:\\d{4})?", [7, 11]]]], SX: ["1", "011", "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "(5\\d{6})$|1", "721$1", 0, "721", [["7215(?:4[2-8]|8[39]|9[056])\\d{4}"], ["7215(?:1[02]|2\\d|5[034679]|8[0-24-8])\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], SY: ["963", "00", "[1-359]\\d{8}|[1-5]\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-4]|5[1-3]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[59]"], "0$1", 1]], "0", 0, 0, 0, 0, 0, [["21\\d{6,7}|(?:1(?:[14]\\d|[2356])|2[235]|3(?:[13]\\d|4)|4[134]|5[1-3])\\d{6}"], ["(?:50|9[1-9])\\d{7}", [9]]]], SZ: ["268", "00", "0800\\d{4}|(?:[237]\\d|900)\\d{6}", [8, 9], [["(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], ["(\\d{5})(\\d{4})", "$1 $2", ["9"]]], 0, 0, 0, 0, 0, 0, [["[23][2-5]\\d{6}", [8]], ["7[5-9]\\d{6}", [8]], ["0800\\d{4}", [8]], ["900\\d{6}", [9]], 0, 0, 0, 0, ["70\\d{6}", [8]]]], TA: ["290", "00", "8\\d{3}", [4], 0, 0, 0, 0, 0, 0, "8", [["8\\d{3}"]]], TC: ["1", "011", "(?:[58]\\d\\d|649|900)\\d{7}", [10], 0, "1", 0, "([2-479]\\d{6})$|1", "649$1", 0, "649", [["649(?:266|712|9(?:4\\d|50))\\d{4}"], ["649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"], 0, 0, 0, ["649(?:71[01]|966)\\d{4}"]]], TD: ["235", "00|16", "(?:22|[3689]\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[236-9]"]]], 0, 0, 0, 0, 0, 0, [["22(?:[37-9]0|5[0-5]|6[89])\\d{4}"], ["(?:3[01]|[69]\\d|77|8[5-7])\\d{6}"]], "00"], TG: ["228", "00", "[279]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]], 0, 0, 0, 0, 0, 0, [["2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}"], ["(?:7[0-289]|9[0-36-9])\\d{6}"]]], TH: ["66", "00[1-9]", "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", [8, 9, 10, 13], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0", 0, 0, 0, 0, 0, [["(?:1[0689]|2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}", [8]], ["(?:(?:14|[89]\\d)\\d\\d|6(?:[1-6]\\d\\d|7(?:1[0-8]|2[4-7]|3[1-6])))\\d{5}", [9]], ["(?:001800\\d|1800)\\d{6}", [10, 13]], ["1900\\d{6}", [10]], 0, 0, 0, 0, ["6[08]\\d{7}", [9]]]], TJ: ["992", "810", "(?:[0-57-9]\\d|66)\\d{7}", [9], [["(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["44[02-479]|[34]7"]], ["(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3(?:[1245]|3[12])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["\\d"]]], 0, 0, 0, 0, 0, 0, [["(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}"], ["(?:33[03-9]|4(?:1[18]|4[02-479])|81[1-9])\\d{6}|(?:[09]\\d|1[0-27-9]|2[0-27]|3[08]|40|5[05]|66|7[0157-9]|8[07-9])\\d{7}"]], "8~10"], TK: ["690", "00", "[2-47]\\d{3,6}", [4, 5, 6, 7], 0, 0, 0, 0, 0, 0, 0, [["(?:2[2-4]|[34]\\d)\\d{2,5}"], ["7[2-4]\\d{2,5}"]]], TL: ["670", "00", "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], ["(\\d{4})(\\d{4})", "$1 $2", ["7"]]], 0, 0, 0, 0, 0, 0, [["(?:2[1-5]|3[1-9]|4[1-4])\\d{5}", [7]], ["7[2-8]\\d{6}", [8]], ["80\\d{5}", [7]], ["90\\d{5}", [7]], ["70\\d{5}", [7]]]], TM: ["993", "810", "[1-7]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-5]"], "(8 $1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[67]"], "8 $1"]], "8", 0, 0, 0, 0, 0, [["(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}"], ["(?:6\\d|7[12])\\d{6}"]], "8~10"], TN: ["216", "00", "[2-57-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]], 0, 0, 0, 0, 0, 0, [["81200\\d{3}|(?:3[0-2]|7\\d)\\d{6}"], ["3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-8])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}"], ["8010\\d{4}"], ["88\\d{6}"], 0, 0, 0, 0, 0, ["8[12]10\\d{4}"]]], TO: ["676", "00", "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", [5, 7], [["(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], ["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:2\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\d{3}", [5]], ["(?:5(?:4[0-5]|5[4-6])|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}", [7]], ["0800\\d{3}", [7]], 0, 0, 0, 0, 0, ["55[0-37-9]\\d{4}", [7]]]], TR: ["90", "00", "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", [7, 10, 12, 13], [["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[0-79]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", 1], ["(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", 1]], "0", 0, 0, 0, 0, 0, [["(?:2(?:1[26]|[28][2468]|[3-5][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}", [10]], ["561(?:011|61\\d)\\d{4}|5(?:[03-5]\\d|1[06]|24|6[24]|7[245]|9[46])\\d{7}", [10]], ["8(?:00\\d{7}(?:\\d{2,3})?|11\\d{7})", [10, 12, 13]], ["(?:8[89]8|900)\\d{7}", [10]], ["592(?:21[12]|461)\\d{4}", [10]], 0, ["444\\d{4}", [7]], ["512\\d{7}", [10]], ["850\\d{7}", [10]]]], TT: ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-46-8]\\d{6})$|1", "868$1", 0, "868", [["868(?:2(?:01|1[5-9]|[23]\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}"], ["868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}"], ["868800\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"], ["868619\\d{4}"]]], TV: ["688", "00", "(?:2|7\\d\\d|90)\\d{4}", [5, 6, 7], [["(\\d{2})(\\d{3})", "$1 $2", ["2"]], ["(\\d{2})(\\d{4})", "$1 $2", ["90"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]], 0, 0, 0, 0, 0, 0, [["2[02-9]\\d{3}", [5]], ["(?:7[01]\\d|90)\\d{4}", [6, 7]]]], TW: ["886", "0(?:0[25-79]|19)", "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", [7, 8, 9, 10, 11], [["(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["826"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["83"], "0$1"], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["82"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[25]0|37|49|8[09]"], "0$1"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[23568]|4(?:0[02-48]|[1-478])|7[1-9]", "[23568]|4(?:0[2-48]|[1-478])|(?:400|7)[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:2[2-8]\\d|370|55[01]|7[1-9])\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\d)|1[023]\\d)\\d{4,5}|(?:[239]\\d\\d|4(?:0[56]|12|49))\\d{5})|6(?:[01]\\d{7}|4(?:0[56]|12|24|4[09])\\d{4,5})|8(?:(?:2(?:3\\d|4[0-269]|[578]0|66)|36[24-9]|90\\d\\d)\\d{4}|4(?:0[56]|12|24|4[09])\\d{4,5})|(?:2(?:2(?:0\\d\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\d|1[0-4])|(?:4\\d|5[0-49]|6[0-29]|7[0-5])\\d)\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\d\\d|4(?:2(?:[089]\\d|7[1-9])|(?:3[0-4]|[78]\\d|9[01])\\d))\\d)\\d{3}", [8, 9]], ["(?:40001[0-2]|9[0-8]\\d{4})\\d{3}", [9]], ["80[0-79]\\d{6}|800\\d{5}", [8, 9]], ["20(?:[013-9]\\d\\d|2)\\d{4}", [7, 9]], ["99\\d{7}", [9]], 0, ["50[0-46-9]\\d{6}", [9]], 0, ["7010(?:[0-2679]\\d|3[0-7]|8[0-5])\\d{5}|70\\d{8}", [10, 11]]], 0, "#"], TZ: ["255", "00[056]", "(?:[25-8]\\d|41|90)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["5"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["2[2-8]\\d{7}"], ["(?:6[1-35-9]|7\\d)\\d{7}"], ["80[08]\\d{6}"], ["90\\d{7}"], 0, 0, 0, 0, ["41\\d{7}"], ["8(?:40|6[01])\\d{6}"]]], UA: ["380", "00", "[89]\\d{9}|[3-9]\\d{8}", [9, 10], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}", [9]], ["790\\d{6}|(?:39|50|6[36-8]|7[1-357]|9[1-9])\\d{7}", [9]], ["800[1-8]\\d{5,6}"], ["900[239]\\d{5,6}"], 0, 0, 0, 0, ["89[1-579]\\d{6}", [9]]], "0~0"], UG: ["256", "00[057]", "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", [9], [["(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|3[1-4]|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}"], ["7280\\d{5}|7(?:[014-8]\\d|2[01467]|3[0167]|9[0-589])\\d{6}"], ["800[1-3]\\d{5}"], ["90[1-3]\\d{6}"]]], US: ["1", "011", "[2-9]\\d{9}|3\\d{6}", [10], [["(\\d{3})(\\d{4})", "$1-$2", ["310"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], 0, 1, "$1-$2-$3"]], "1", 0, 0, 0, 0, 0, [["(?:472[2-47-9]|983[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[02469]|8[13])|3(?:0[1-57-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-3]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-2478]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], UY: ["598", "0(?:0|1[3-9]\\d)", "0004\\d{2,9}|[1249]\\d{7}|2\\d{3,4}|(?:[49]\\d|80)\\d{5}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [["(\\d{4,5})", "$1", ["21"]], ["(\\d{3})(\\d{3,4})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[49]0|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], ["(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3 $4", ["0"]]], "0", 0, 0, 0, 0, 0, [["(?:1(?:770|9(?:20|[89]7))|(?:2\\d|4[2-7])\\d\\d)\\d{4}", [8]], ["9[1-9]\\d{6}", [8]], ["0004\\d{2,9}|(?:405|80[05])\\d{4}", [6, 7, 8, 9, 10, 11, 12, 13]], ["90[0-8]\\d{4}", [7]], 0, 0, ["21\\d{2,3}", [4, 5]]], "00", " int. "], UZ: ["998", "00", "(?:20|33|[5-9]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|[69]\\d\\d|7(?:[23]\\d|7[69]))|7(?:[168]\\d\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|9(?:22|5[1-9])))\\d{5}"], ["(?:(?:[25]0|33|8[078]|9[0-57-9])\\d{3}|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079])))|7(?:[07]\\d{3}|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}"]]], VA: ["39", "00", "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", [6, 7, 8, 9, 10, 11, 12], 0, 0, 0, 0, 0, 0, "06698", [["06698\\d{1,6}", [6, 7, 8, 9, 10, 11]], ["3[1-9]\\d{8}|3[2-9]\\d{7}", [9, 10]], ["80(?:0\\d{3}|3)\\d{3}", [6, 9]], ["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", [6, 8, 9, 10]], ["1(?:78\\d|99)\\d{6}", [9, 10]], ["3[2-8]\\d{9,10}", [11, 12]], 0, 0, ["55\\d{8}", [10]], ["84(?:[08]\\d{3}|[17])\\d{3}", [6, 9]]]], VC: ["1", "011", "(?:[58]\\d\\d|784|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "784$1", 0, "784", [["784(?:266|3(?:6[6-9]|7\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}"], ["784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"], 0, 0, 0, ["78451[0-2]\\d{4}"]]], VE: ["58", "00", "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", [10], [["(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:2(?:12|3[457-9]|[467]\\d|[58][1-9]|9[1-6])|[4-6]00)\\d{7}"], ["4(?:1[24-8]|2[246])\\d{7}"], ["800\\d{7}"], ["90[01]\\d{7}"], 0, 0, ["501\\d{7}"]]], VG: ["1", "011", "(?:284|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-578]\\d{6})$|1", "284$1", 0, "284", [["284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}"], ["284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\d{4}"], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], VI: ["1", "011", "[58]\\d{9}|(?:34|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "340$1", 0, "340", [["340(?:2(?:0\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|3[23]|44|66|77|88)[2-9]\\d{6}"]]], VN: ["84", "00", "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{6,7}|7\\d{6}", [7, 8, 9, 10], [["(\\d{4})(\\d{4,6})", "$1 $2", ["1(?:2[02]|[89])"], 0, 1], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[26]|6"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", 1]], "0", 0, 0, 0, 0, 0, [["2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\d{7}", [10]], ["121[0-3]\\d{5}|(?:160|(?:3\\d|7[06-9])\\d|5(?:[1689]\\d|2[238]|59)|8(?:[1-8]\\d|9[6-9])|9(?:[0-8]\\d|9[013-9]))\\d{6}", [9]], ["1800\\d{4,6}|12(?:0[13]|28)\\d{4}", [8, 9, 10]], ["1900\\d{4,6}", [8, 9, 10]], 0, 0, ["[17]99\\d{4}|69\\d{5,6}", [7, 8]], 0, ["672\\d{6}", [9]]]], VU: ["678", "00", "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", [5, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]], 0, 0, 0, 0, 0, 0, [["(?:38[0-8]|48[4-9])\\d\\d|(?:2[02-9]|3[4-7]|88)\\d{3}", [5]], ["(?:[58]\\d|7[0-7])\\d{5}", [7]], ["81[18]\\d\\d", [5]], 0, 0, 0, ["(?:3[03]|900\\d)\\d{3}"], 0, ["9(?:0[1-9]|1[01])\\d{4}", [7]]]], WF: ["681", "00", "(?:40|72|8\\d{4})\\d{4}|[89]\\d{5}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[47-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]], 0, 0, 0, 0, 0, 0, [["72\\d{4}", [6]], ["(?:72|8[23])\\d{4}", [6]], ["80[0-5]\\d{6}", [9]], 0, 0, ["[48]0\\d{4}", [6]], 0, 0, ["9[23]\\d{4}", [6]]]], WS: ["685", "0", "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", [5, 6, 7, 10], [["(\\d{5})", "$1", ["[2-5]|6[1-9]"]], ["(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]], 0, 0, 0, 0, 0, 0, [["6[1-9]\\d{3}|(?:[2-5]|60)\\d{4}", [5, 6]], ["(?:7[1-35-8]|8(?:[3-7]|9\\d{3}))\\d{5}", [7, 10]], ["800\\d{3}", [6]]]], XK: ["383", "00", "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2|39"], "0$1"], ["(\\d{2})(\\d{7,10})", "$1 $2", ["3"], "0$1"]], "0", 0, 0, 0, 0, 0, [["38\\d{6,10}|(?:2[89]|39)(?:0\\d{5,6}|[1-9]\\d{5})"], ["4[3-9]\\d{6}", [8]], ["800\\d{5}", [8]], ["900\\d{5}", [8]]]], YE: ["967", "00", "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-6]|7(?:[24-6]|8[0-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"]], "0", 0, 0, 0, 0, 0, [["78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}", [7, 8]], ["7[01378]\\d{7}", [9]]]], YT: ["262", "00", "(?:639\\d|7093)\\d{5}|(?:26|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["26(?:89\\d|9(?:0[0-467]|15|5[0-4]|6\\d|[78]0))\\d{4}"], ["(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\d{4}"], ["80\\d{7}"], 0, 0, 0, 0, 0, ["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]], ZA: ["27", "00", "[1-79]\\d{8}|8\\d{4,9}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}", [9]], ["(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:50[0-2]|[67]\\d\\d)\\d\\d|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}", [5, 6, 7, 8, 9]], ["80\\d{7}", [9]], ["(?:86[2-9]|9[0-2]\\d)\\d{6}", [9]], 0, 0, ["861\\d{6,7}", [9, 10]], 0, ["87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}", [9]], ["860\\d{6}", [9]]]], ZM: ["260", "00", "800\\d{6}|(?:21|[579]\\d|63)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[579]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["21[1-8]\\d{6}"], ["(?:[59][5-8]|7[5-9])\\d{7}"], ["800\\d{6}"], 0, 0, 0, 0, 0, ["63\\d{7}"]]], ZW: ["263", "00", "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", [5, 6, 7, 8, 9, 10], [["(\\d{3})(\\d{3,5})", "$1 $2", ["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"], "0$1"], ["(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"], ["(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:(?:3\\d|9)\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\d\\d|[56](?:[14]\\d\\d|20)|7(?:[089]|2[03]|[35]\\d\\d))\\d|4(?:2\\d\\d|8))\\d|1(?:2|[39]\\d{4}))|3(?:(?:123|(?:29\\d|92)\\d)\\d\\d|7(?:[19]|[56]\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\d{3}|83)|5(?:25\\d\\d|[78])|[689]\\d)|6(?:(?:[16-8]21|28|52[013])\\d\\d|[39])|8(?:[1349]28|523)\\d\\d)\\d{3}|(?:4\\d\\d|9[2-9])\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\d|7[1-7])\\d|2(?:[278]\\d|92)|58(?:2\\d|3))|3(?:[26]|9\\d{3})|5(?:4\\d|5)\\d\\d)\\d|6(?:(?:(?:[0-246]|[78]\\d)\\d|37)\\d|5[2-8]))\\d\\d|(?:2(?:[569]\\d|8[2-57-9])|3(?:[013-59]\\d|8[37])|6[89]8)\\d{3}"], ["7(?:[1278]\\d|3[1-9]|9[01])\\d{6}", [9]], ["80(?:[01]\\d|20|8[0-8])\\d{3}", [7]], 0, 0, 0, 0, 0, ["86(?:1[12]|22|30|44|55|77|8[368])\\d{6}", [10]]]] }, nonGeographic: { "800": ["800", 0, "(?:00|[1-9]\\d)\\d{6}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], 0, 0, 0, 0, 0, 0, [0, 0, ["(?:00|[1-9]\\d)\\d{6}"]]], "808": ["808", 0, "[1-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, ["[1-9]\\d{7}"]]], "870": ["870", 0, "7\\d{11}|[235-7]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-7]"]]], 0, 0, 0, 0, 0, 0, [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"], 0, 0, 0, 0, 0, 0, ["2\\d{8}", [9]]]], "878": ["878", 0, "10\\d{10}", [12], [["(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["10\\d{10}"]]], "881": ["881", 0, "6\\d{9}|[0-36-9]\\d{8}", [9, 10], [["(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-37-9]"]], ["(\\d)(\\d{3})(\\d{5,6})", "$1 $2 $3", ["6"]]], 0, 0, 0, 0, 0, 0, [0, ["6\\d{9}|[0-36-9]\\d{8}"]]], "882": ["882", 0, "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], ["(\\d{2})(\\d{6})", "$1 $2", ["49"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["1[36]|9"]], ["(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["16"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|23|3(?:[15]|4[57])|4|5[12]"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], ["(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-35]"]]], 0, 0, 0, 0, 0, 0, [0, ["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|5(?:0\\d{3}|2[0-2]))\\d{7}", [7, 8, 9, 10, 12]], 0, 0, 0, ["348[57]\\d{7}", [11]], 0, 0, ["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]], "883": ["883", 0, "(?:[1-4]\\d|51)\\d{6,10}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,8})", "$1 $2 $3", ["[14]|2[24-689]|3[02-689]|51[24-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["21"]], ["(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[235]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]], "888": ["888", 0, "\\d{11}", [11], [["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, ["\\d{11}"]]], "979": ["979", 0, "[1359]\\d{8}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, ["[1359]\\d{8}"]]] } }; + } +}); + +// node_modules/libphonenumber-js/build/helpers/isObject.js +var require_isObject = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/isObject.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = isObject; + var objectConstructor = {}.constructor; + function isObject(object) { + return object !== void 0 && object !== null && object.constructor === objectConstructor; + } + __name(isObject, "isObject"); + } +}); + +// node_modules/libphonenumber-js/build/normalizeArguments.js +var require_normalizeArguments = __commonJS({ + "node_modules/libphonenumber-js/build/normalizeArguments.js"(exports2) { + "use strict"; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = normalizeArguments; + var _isObject = _interopRequireDefault(require_isObject()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); + } + __name(_slicedToArray, "_slicedToArray"); + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_nonIterableRest, "_nonIterableRest"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (null != t) { + var e, n, i, u, a = [], f = true, o = false; + try { + if (i = (t = t.call(r)).next, 0 === l) { + if (Object(t) !== t) return; + f = false; + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ; + } catch (r2) { + o = true, n = r2; + } finally { + try { + if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; + } finally { + if (o) throw n; + } + } + return a; + } + } + __name(_iterableToArrayLimit, "_iterableToArrayLimit"); + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; + } + __name(_arrayWithHoles, "_arrayWithHoles"); + function normalizeArguments(args) { + var _Array$prototype$slic = Array.prototype.slice.call(args), _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4), arg_1 = _Array$prototype$slic2[0], arg_2 = _Array$prototype$slic2[1], arg_3 = _Array$prototype$slic2[2], arg_4 = _Array$prototype$slic2[3]; + var text; + var options; + var metadata; + if (typeof arg_1 === "string") { + text = arg_1; + } else throw new TypeError("A text for parsing must be a string."); + if (!arg_2 || typeof arg_2 === "string") { + if (arg_4) { + options = arg_3; + metadata = arg_4; + } else { + options = void 0; + metadata = arg_3; + } + if (arg_2) { + options = _objectSpread({ + defaultCountry: arg_2 + }, options); + } + } else if ((0, _isObject["default"])(arg_2)) { + if (arg_3) { + options = arg_2; + metadata = arg_3; + } else { + metadata = arg_2; + } + } else throw new Error("Invalid second argument: ".concat(arg_2)); + return { + text, + options, + metadata + }; + } + __name(normalizeArguments, "normalizeArguments"); + } +}); + +// node_modules/libphonenumber-js/build/constants.js +var require_constants4 = __commonJS({ + "node_modules/libphonenumber-js/build/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.WHITESPACE = exports2.VALID_PUNCTUATION = exports2.VALID_DIGITS = exports2.PLUS_CHARS = exports2.MIN_LENGTH_FOR_NSN = exports2.MAX_LENGTH_FOR_NSN = exports2.MAX_LENGTH_COUNTRY_CODE = void 0; + var MIN_LENGTH_FOR_NSN = exports2.MIN_LENGTH_FOR_NSN = 2; + var MAX_LENGTH_FOR_NSN = exports2.MAX_LENGTH_FOR_NSN = 17; + var MAX_LENGTH_COUNTRY_CODE = exports2.MAX_LENGTH_COUNTRY_CODE = 3; + var VALID_DIGITS = exports2.VALID_DIGITS = "0-9\uFF10-\uFF19\u0660-\u0669\u06F0-\u06F9"; + var DASHES = "-\u2010-\u2015\u2212\u30FC\uFF0D"; + var SLASHES = "\uFF0F/"; + var DOTS = "\uFF0E."; + var WHITESPACE = exports2.WHITESPACE = " \xA0\xAD\u200B\u2060\u3000"; + var BRACKETS = "()\uFF08\uFF09\uFF3B\uFF3D\\[\\]"; + var TILDES = "~\u2053\u223C\uFF5E"; + var VALID_PUNCTUATION = exports2.VALID_PUNCTUATION = "".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES); + var PLUS_CHARS = exports2.PLUS_CHARS = "+\uFF0B"; + } +}); + +// node_modules/libphonenumber-js/build/ParseError.js +var require_ParseError = __commonJS({ + "node_modules/libphonenumber-js/build/ParseError.js"(exports2) { + "use strict"; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _callSuper(t, o, e) { + return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); + } + __name(_callSuper, "_callSuper"); + function _possibleConstructorReturn(t, e) { + if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; + if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); + return _assertThisInitialized(t); + } + __name(_possibleConstructorReturn, "_possibleConstructorReturn"); + function _assertThisInitialized(e) { + if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return e; + } + __name(_assertThisInitialized, "_assertThisInitialized"); + function _inherits(t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); + t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: true, configurable: true } }), Object.defineProperty(t, "prototype", { writable: false }), e && _setPrototypeOf(t, e); + } + __name(_inherits, "_inherits"); + function _wrapNativeSuper(t) { + var r = "function" == typeof Map ? /* @__PURE__ */ new Map() : void 0; + return _wrapNativeSuper = /* @__PURE__ */ __name(function _wrapNativeSuper2(t2) { + if (null === t2 || !_isNativeFunction(t2)) return t2; + if ("function" != typeof t2) throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== r) { + if (r.has(t2)) return r.get(t2); + r.set(t2, Wrapper); + } + function Wrapper() { + return _construct(t2, arguments, _getPrototypeOf(this).constructor); + } + __name(Wrapper, "Wrapper"); + return Wrapper.prototype = Object.create(t2.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }), _setPrototypeOf(Wrapper, t2); + }, "_wrapNativeSuper"), _wrapNativeSuper(t); + } + __name(_wrapNativeSuper, "_wrapNativeSuper"); + function _construct(t, e, r) { + if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); + var o = [null]; + o.push.apply(o, e); + var p = new (t.bind.apply(t, o))(); + return r && _setPrototypeOf(p, r.prototype), p; + } + __name(_construct, "_construct"); + function _isNativeReflectConstruct() { + try { + var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { + })); + } catch (t2) { + } + return (_isNativeReflectConstruct = /* @__PURE__ */ __name(function _isNativeReflectConstruct2() { + return !!t; + }, "_isNativeReflectConstruct"))(); + } + __name(_isNativeReflectConstruct, "_isNativeReflectConstruct"); + function _isNativeFunction(t) { + try { + return -1 !== Function.toString.call(t).indexOf("[native code]"); + } catch (n) { + return "function" == typeof t; + } + } + __name(_isNativeFunction, "_isNativeFunction"); + function _setPrototypeOf(t, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t2, e2) { + return t2.__proto__ = e2, t2; + }, _setPrototypeOf(t, e); + } + __name(_setPrototypeOf, "_setPrototypeOf"); + function _getPrototypeOf(t) { + return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t2) { + return t2.__proto__ || Object.getPrototypeOf(t2); + }, _getPrototypeOf(t); + } + __name(_getPrototypeOf, "_getPrototypeOf"); + var ParseError = exports2["default"] = /* @__PURE__ */ (function(_Error) { + function ParseError2(code) { + var _this; + _classCallCheck(this, ParseError2); + _this = _callSuper(this, ParseError2, [code]); + Object.setPrototypeOf(_this, ParseError2.prototype); + _this.name = _this.constructor.name; + return _this; + } + __name(ParseError2, "ParseError"); + _inherits(ParseError2, _Error); + return _createClass(ParseError2); + })(/* @__PURE__ */ _wrapNativeSuper(Error)); + } +}); + +// node_modules/libphonenumber-js/build/tools/semver-compare.js +var require_semver_compare = __commonJS({ + "node_modules/libphonenumber-js/build/tools/semver-compare.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = _default; + function _default(a, b) { + a = a.split("-"); + b = b.split("-"); + var pa = a[0].split("."); + var pb = b[0].split("."); + for (var i = 0; i < 3; i++) { + var na = Number(pa[i]); + var nb = Number(pb[i]); + if (na > nb) return 1; + if (nb > na) return -1; + if (!isNaN(na) && isNaN(nb)) return 1; + if (isNaN(na) && !isNaN(nb)) return -1; + } + if (a[1] && b[1]) { + return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0; + } + return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0; + } + __name(_default, "_default"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/isCallingCode.js +var require_isCallingCode = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/isCallingCode.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = isCallingCode; + var CALLING_CODE_REG_EXP = /^\d+$/; + function isCallingCode(string) { + return CALLING_CODE_REG_EXP.test(string); + } + __name(isCallingCode, "isCallingCode"); + } +}); + +// node_modules/libphonenumber-js/build/metadata.js +var require_metadata = __commonJS({ + "node_modules/libphonenumber-js/build/metadata.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + exports2.getCountryCallingCode = getCountryCallingCode; + exports2.getExtPrefix = getExtPrefix; + exports2.isSupportedCountry = isSupportedCountry; + exports2.validateMetadata = validateMetadata; + var _semverCompare = _interopRequireDefault(require_semver_compare()); + var _isObject = _interopRequireDefault(require_isObject()); + var _isCallingCode = _interopRequireDefault(require_isCallingCode()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var V3 = "1.2.0"; + var V4 = "1.7.35"; + var DEFAULT_EXT_PREFIX = " ext. "; + var Metadata = exports2["default"] = /* @__PURE__ */ (function() { + function Metadata2(metadata) { + _classCallCheck(this, Metadata2); + validateMetadata(metadata); + this.metadata = metadata; + setVersion.call(this, metadata); + } + __name(Metadata2, "Metadata"); + return _createClass(Metadata2, [{ + key: "getCountries", + value: /* @__PURE__ */ __name(function getCountries() { + return Object.keys(this.metadata.countries).filter(function(_) { + return _ !== "001"; + }); + }, "getCountries") + }, { + key: "getCountryMetadata", + value: /* @__PURE__ */ __name(function getCountryMetadata(countryCode) { + return this.metadata.countries[countryCode]; + }, "getCountryMetadata") + }, { + key: "nonGeographic", + value: /* @__PURE__ */ __name(function nonGeographic() { + if (this.v1 || this.v2 || this.v3) return; + return this.metadata.nonGeographic || this.metadata.nonGeographical; + }, "nonGeographic") + }, { + key: "hasCountry", + value: /* @__PURE__ */ __name(function hasCountry(country2) { + return this.getCountryMetadata(country2) !== void 0; + }, "hasCountry") + }, { + key: "hasCallingCode", + value: /* @__PURE__ */ __name(function hasCallingCode(callingCode) { + if (this.getCountryCodesForCallingCode(callingCode)) { + return true; + } + if (this.nonGeographic()) { + if (this.nonGeographic()[callingCode]) { + return true; + } + } else { + var countryCodes = this.countryCallingCodes()[callingCode]; + if (countryCodes && countryCodes.length === 1 && countryCodes[0] === "001") { + return true; + } + } + }, "hasCallingCode") + }, { + key: "isNonGeographicCallingCode", + value: /* @__PURE__ */ __name(function isNonGeographicCallingCode(callingCode) { + if (this.nonGeographic()) { + return this.nonGeographic()[callingCode] ? true : false; + } else { + return this.getCountryCodesForCallingCode(callingCode) ? false : true; + } + }, "isNonGeographicCallingCode") + // Deprecated. + }, { + key: "country", + value: /* @__PURE__ */ __name(function country2(countryCode) { + return this.selectNumberingPlan(countryCode); + }, "country") + /** + * Selects a telephone numbering plan based on either a country code or a calling code. + * @param {string} argument — Country code or calling code. + * @param {string} legacyArgumentCallingCode — Legacy argument: calling code, if the first argument is not passed. + */ + }, { + key: "selectNumberingPlan", + value: /* @__PURE__ */ __name(function selectNumberingPlan(argument, legacyArgumentCallingCode) { + var countryCode; + var callingCode; + if (argument) { + if ((0, _isCallingCode["default"])(argument)) { + callingCode = argument; + } else { + countryCode = argument; + } + } + if (legacyArgumentCallingCode) { + callingCode = legacyArgumentCallingCode; + } + if (countryCode && countryCode !== "001") { + var countryMetadata = this.getCountryMetadata(countryCode); + if (!countryMetadata) { + throw new Error("Unknown country: ".concat(countryCode)); + } + this.numberingPlan = new NumberingPlan(countryMetadata, this); + } else if (callingCode) { + if (!this.hasCallingCode(callingCode)) { + throw new Error("Unknown calling code: ".concat(callingCode)); + } + this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this); + } else { + this.numberingPlan = void 0; + } + return this; + }, "selectNumberingPlan") + }, { + key: "getCountryCodesForCallingCode", + value: /* @__PURE__ */ __name(function getCountryCodesForCallingCode(callingCode) { + var countryCodes = this.countryCallingCodes()[callingCode]; + if (countryCodes) { + if (countryCodes.length === 1 && countryCodes[0].length === 3) { + return; + } + return countryCodes; + } + }, "getCountryCodesForCallingCode") + }, { + key: "getCountryCodeForCallingCode", + value: /* @__PURE__ */ __name(function getCountryCodeForCallingCode(callingCode) { + var countryCodes = this.getCountryCodesForCallingCode(callingCode); + if (countryCodes) { + return countryCodes[0]; + } + }, "getCountryCodeForCallingCode") + }, { + key: "getNumberingPlanMetadata", + value: /* @__PURE__ */ __name(function getNumberingPlanMetadata(callingCode) { + var countryCode = this.getCountryCodeForCallingCode(callingCode); + if (countryCode) { + return this.getCountryMetadata(countryCode); + } + if (this.nonGeographic()) { + var metadata = this.nonGeographic()[callingCode]; + if (metadata) { + return metadata; + } + } else { + var countryCodes = this.countryCallingCodes()[callingCode]; + if (countryCodes && countryCodes.length === 1 && countryCodes[0] === "001") { + return this.metadata.countries["001"]; + } + } + }, "getNumberingPlanMetadata") + // Deprecated. + }, { + key: "countryCallingCode", + value: /* @__PURE__ */ __name(function countryCallingCode() { + return this.numberingPlan.callingCode(); + }, "countryCallingCode") + // Deprecated. + }, { + key: "IDDPrefix", + value: /* @__PURE__ */ __name(function IDDPrefix() { + return this.numberingPlan.IDDPrefix(); + }, "IDDPrefix") + // Deprecated. + }, { + key: "defaultIDDPrefix", + value: /* @__PURE__ */ __name(function defaultIDDPrefix() { + return this.numberingPlan.defaultIDDPrefix(); + }, "defaultIDDPrefix") + // Deprecated. + }, { + key: "nationalNumberPattern", + value: /* @__PURE__ */ __name(function nationalNumberPattern() { + return this.numberingPlan.nationalNumberPattern(); + }, "nationalNumberPattern") + // Deprecated. + }, { + key: "possibleLengths", + value: /* @__PURE__ */ __name(function possibleLengths() { + return this.numberingPlan.possibleLengths(); + }, "possibleLengths") + // Deprecated. + }, { + key: "formats", + value: /* @__PURE__ */ __name(function formats() { + return this.numberingPlan.formats(); + }, "formats") + // Deprecated. + }, { + key: "nationalPrefixForParsing", + value: /* @__PURE__ */ __name(function nationalPrefixForParsing() { + return this.numberingPlan.nationalPrefixForParsing(); + }, "nationalPrefixForParsing") + // Deprecated. + }, { + key: "nationalPrefixTransformRule", + value: /* @__PURE__ */ __name(function nationalPrefixTransformRule() { + return this.numberingPlan.nationalPrefixTransformRule(); + }, "nationalPrefixTransformRule") + // Deprecated. + }, { + key: "leadingDigits", + value: /* @__PURE__ */ __name(function leadingDigits() { + return this.numberingPlan.leadingDigits(); + }, "leadingDigits") + // Deprecated. + }, { + key: "hasTypes", + value: /* @__PURE__ */ __name(function hasTypes() { + return this.numberingPlan.hasTypes(); + }, "hasTypes") + // Deprecated. + }, { + key: "type", + value: /* @__PURE__ */ __name(function type(_type) { + return this.numberingPlan.type(_type); + }, "type") + // Deprecated. + }, { + key: "ext", + value: /* @__PURE__ */ __name(function ext() { + return this.numberingPlan.ext(); + }, "ext") + }, { + key: "countryCallingCodes", + value: /* @__PURE__ */ __name(function countryCallingCodes() { + if (this.v1) return this.metadata.country_phone_code_to_countries; + return this.metadata.country_calling_codes; + }, "countryCallingCodes") + // Deprecated. + }, { + key: "chooseCountryByCountryCallingCode", + value: /* @__PURE__ */ __name(function chooseCountryByCountryCallingCode(callingCode) { + return this.selectNumberingPlan(callingCode); + }, "chooseCountryByCountryCallingCode") + }, { + key: "hasSelectedNumberingPlan", + value: /* @__PURE__ */ __name(function hasSelectedNumberingPlan() { + return this.numberingPlan !== void 0; + }, "hasSelectedNumberingPlan") + }]); + })(); + var NumberingPlan = /* @__PURE__ */ (function() { + function NumberingPlan2(metadata, globalMetadataObject) { + _classCallCheck(this, NumberingPlan2); + this.globalMetadataObject = globalMetadataObject; + this.metadata = metadata; + setVersion.call(this, globalMetadataObject.metadata); + } + __name(NumberingPlan2, "NumberingPlan"); + return _createClass(NumberingPlan2, [{ + key: "callingCode", + value: /* @__PURE__ */ __name(function callingCode() { + return this.metadata[0]; + }, "callingCode") + // When multiple countries share the same calling code, + // all phone number formatting rules are included in the metadata + // of the "default" country for that calling code. + // Any other countries' metdata doesn't include any formatting rules. + // Google developers said that such storage architecture was chosen for performance reasons. + // + // For example, for NANPA region ("North American Numbering Plan Administration", + // which includes USA, Canada, Cayman Islands, Bahamas, etc) all formatting rules + // are contained in the metadata of `US` country. + // + // This is not public API. + // + }, { + key: "_getDefaultCountryMetadataForThisCallingCode", + value: /* @__PURE__ */ __name(function _getDefaultCountryMetadataForThisCallingCode() { + return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode()); + }, "_getDefaultCountryMetadataForThisCallingCode") + // Deprecated. + }, { + key: "getDefaultCountryMetadataForRegion", + value: /* @__PURE__ */ __name(function getDefaultCountryMetadataForRegion() { + return this._getDefaultCountryMetadataForThisCallingCode(); + }, "getDefaultCountryMetadataForRegion") + // Is always present. + }, { + key: "IDDPrefix", + value: /* @__PURE__ */ __name(function IDDPrefix() { + if (this.v1 || this.v2) return; + return this.metadata[1]; + }, "IDDPrefix") + // Is only present when a country supports multiple IDD prefixes. + }, { + key: "defaultIDDPrefix", + value: /* @__PURE__ */ __name(function defaultIDDPrefix() { + if (this.v1 || this.v2) return; + return this.metadata[12]; + }, "defaultIDDPrefix") + }, { + key: "nationalNumberPattern", + value: /* @__PURE__ */ __name(function nationalNumberPattern() { + if (this.v1 || this.v2) return this.metadata[1]; + return this.metadata[2]; + }, "nationalNumberPattern") + // "possible length" data is always present in Google's metadata. + }, { + key: "possibleLengths", + value: /* @__PURE__ */ __name(function possibleLengths() { + if (this.v1) return; + return this.metadata[this.v2 ? 2 : 3]; + }, "possibleLengths") + }, { + key: "_getFormats", + value: /* @__PURE__ */ __name(function _getFormats(metadata) { + return metadata[this.v1 ? 2 : this.v2 ? 3 : 4]; + }, "_getFormats") + // For countries of the same region (e.g. NANPA) + // formats are all stored in the "main" country for that region. + // E.g. "RU" and "KZ", "US" and "CA". + }, { + key: "formats", + value: /* @__PURE__ */ __name(function formats() { + var _this = this; + var formats2 = this._getFormats(this.metadata) || this._getFormats(this._getDefaultCountryMetadataForThisCallingCode()) || []; + return formats2.map(function(_) { + return new Format(_, _this); + }); + }, "formats") + }, { + key: "nationalPrefix", + value: /* @__PURE__ */ __name(function nationalPrefix() { + return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5]; + }, "nationalPrefix") + }, { + key: "_getNationalPrefixFormattingRule", + value: /* @__PURE__ */ __name(function _getNationalPrefixFormattingRule(metadata) { + return metadata[this.v1 ? 4 : this.v2 ? 5 : 6]; + }, "_getNationalPrefixFormattingRule") + // For countries of the same region (e.g. NANPA) + // national prefix formatting rule is stored in the "main" country for that region. + // E.g. "RU" and "KZ", "US" and "CA". + }, { + key: "nationalPrefixFormattingRule", + value: /* @__PURE__ */ __name(function nationalPrefixFormattingRule() { + return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this._getDefaultCountryMetadataForThisCallingCode()); + }, "nationalPrefixFormattingRule") + }, { + key: "_nationalPrefixForParsing", + value: /* @__PURE__ */ __name(function _nationalPrefixForParsing() { + return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7]; + }, "_nationalPrefixForParsing") + }, { + key: "nationalPrefixForParsing", + value: /* @__PURE__ */ __name(function nationalPrefixForParsing() { + return this._nationalPrefixForParsing() || this.nationalPrefix(); + }, "nationalPrefixForParsing") + }, { + key: "nationalPrefixTransformRule", + value: /* @__PURE__ */ __name(function nationalPrefixTransformRule() { + return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8]; + }, "nationalPrefixTransformRule") + }, { + key: "_getNationalPrefixIsOptionalWhenFormatting", + value: /* @__PURE__ */ __name(function _getNationalPrefixIsOptionalWhenFormatting() { + return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9]; + }, "_getNationalPrefixIsOptionalWhenFormatting") + // For countries of the same region (e.g. NANPA) + // "national prefix is optional when formatting" flag is + // stored in the "main" country for that region. + // E.g. "RU" and "KZ", "US" and "CA". + }, { + key: "nationalPrefixIsOptionalWhenFormattingInNationalFormat", + value: /* @__PURE__ */ __name(function nationalPrefixIsOptionalWhenFormattingInNationalFormat() { + return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this._getDefaultCountryMetadataForThisCallingCode()); + }, "nationalPrefixIsOptionalWhenFormattingInNationalFormat") + }, { + key: "leadingDigits", + value: /* @__PURE__ */ __name(function leadingDigits() { + return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10]; + }, "leadingDigits") + }, { + key: "types", + value: /* @__PURE__ */ __name(function types() { + return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11]; + }, "types") + }, { + key: "hasTypes", + value: /* @__PURE__ */ __name(function hasTypes() { + if (this.types() && this.types().length === 0) { + return false; + } + return !!this.types(); + }, "hasTypes") + }, { + key: "type", + value: /* @__PURE__ */ __name(function type(_type2) { + if (this.hasTypes() && getType(this.types(), _type2)) { + return new Type(getType(this.types(), _type2), this); + } + }, "type") + }, { + key: "ext", + value: /* @__PURE__ */ __name(function ext() { + if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX; + return this.metadata[13] || DEFAULT_EXT_PREFIX; + }, "ext") + }]); + })(); + var Format = /* @__PURE__ */ (function() { + function Format2(format, metadata) { + _classCallCheck(this, Format2); + this._format = format; + this.metadata = metadata; + } + __name(Format2, "Format"); + return _createClass(Format2, [{ + key: "pattern", + value: /* @__PURE__ */ __name(function pattern() { + return this._format[0]; + }, "pattern") + }, { + key: "format", + value: /* @__PURE__ */ __name(function format() { + return this._format[1]; + }, "format") + }, { + key: "leadingDigitsPatterns", + value: /* @__PURE__ */ __name(function leadingDigitsPatterns() { + return this._format[2] || []; + }, "leadingDigitsPatterns") + }, { + key: "nationalPrefixFormattingRule", + value: /* @__PURE__ */ __name(function nationalPrefixFormattingRule() { + return this._format[3] || this.metadata.nationalPrefixFormattingRule(); + }, "nationalPrefixFormattingRule") + }, { + key: "nationalPrefixIsOptionalWhenFormattingInNationalFormat", + value: /* @__PURE__ */ __name(function nationalPrefixIsOptionalWhenFormattingInNationalFormat() { + return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat(); + }, "nationalPrefixIsOptionalWhenFormattingInNationalFormat") + }, { + key: "nationalPrefixIsMandatoryWhenFormattingInNationalFormat", + value: /* @__PURE__ */ __name(function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() { + return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat(); + }, "nationalPrefixIsMandatoryWhenFormattingInNationalFormat") + // Checks whether national prefix formatting rule contains national prefix. + }, { + key: "usesNationalPrefix", + value: /* @__PURE__ */ __name(function usesNationalPrefix() { + return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a "dummy" one. + !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) ? true : false; + }, "usesNationalPrefix") + }, { + key: "internationalFormat", + value: /* @__PURE__ */ __name(function internationalFormat() { + return this._format[5] || this.format(); + }, "internationalFormat") + }]); + })(); + var FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\(?\$1\)?$/; + var Type = /* @__PURE__ */ (function() { + function Type2(type, metadata) { + _classCallCheck(this, Type2); + this.type = type; + this.metadata = metadata; + } + __name(Type2, "Type"); + return _createClass(Type2, [{ + key: "pattern", + value: /* @__PURE__ */ __name(function pattern() { + if (this.metadata.v1) return this.type; + return this.type[0]; + }, "pattern") + }, { + key: "possibleLengths", + value: /* @__PURE__ */ __name(function possibleLengths() { + if (this.metadata.v1) return; + return this.type[1] || this.metadata.possibleLengths(); + }, "possibleLengths") + }]); + })(); + function getType(types, type) { + switch (type) { + case "FIXED_LINE": + return types[0]; + case "MOBILE": + return types[1]; + case "TOLL_FREE": + return types[2]; + case "PREMIUM_RATE": + return types[3]; + case "PERSONAL_NUMBER": + return types[4]; + case "VOICEMAIL": + return types[5]; + case "UAN": + return types[6]; + case "PAGER": + return types[7]; + case "VOIP": + return types[8]; + case "SHARED_COST": + return types[9]; + } + } + __name(getType, "getType"); + function validateMetadata(metadata) { + if (!metadata) { + throw new Error("[libphonenumber-js] `metadata` argument not passed. Check your arguments."); + } + if (!(0, _isObject["default"])(metadata) || !(0, _isObject["default"])(metadata.countries)) { + throw new Error("[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got ".concat((0, _isObject["default"])(metadata) ? "an object of shape: { " + Object.keys(metadata).join(", ") + " }" : "a " + typeOf(metadata) + ": " + metadata, ".")); + } + } + __name(validateMetadata, "validateMetadata"); + var typeOf = /* @__PURE__ */ __name(function typeOf2(_) { + return _typeof(_); + }, "typeOf"); + function getExtPrefix(country2, metadataJson) { + var metadata = new Metadata(metadataJson); + if (metadata.hasCountry(country2)) { + return metadata.selectNumberingPlan(country2).ext(); + } + return DEFAULT_EXT_PREFIX; + } + __name(getExtPrefix, "getExtPrefix"); + function getCountryCallingCode(country2, metadataJson) { + var metadata = new Metadata(metadataJson); + if (metadata.hasCountry(country2)) { + return metadata.selectNumberingPlan(country2).countryCallingCode(); + } + throw new Error("Unknown country: ".concat(country2)); + } + __name(getCountryCallingCode, "getCountryCallingCode"); + function isSupportedCountry(country2, metadataJson) { + return metadataJson.countries.hasOwnProperty(country2); + } + __name(isSupportedCountry, "isSupportedCountry"); + function setVersion(metadata) { + var version = metadata.version; + if (typeof version === "number") { + this.v1 = version === 1; + this.v2 = version === 2; + this.v3 = version === 3; + this.v4 = version === 4; + } else { + if (!version) { + this.v1 = true; + } else if ((0, _semverCompare["default"])(version, V3) === -1) { + this.v2 = true; + } else if ((0, _semverCompare["default"])(version, V4) === -1) { + this.v3 = true; + } else { + this.v4 = true; + } + } + } + __name(setVersion, "setVersion"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/extension/createExtensionPattern.js +var require_createExtensionPattern = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/extension/createExtensionPattern.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = createExtensionPattern; + var _constants = require_constants4(); + var RFC3966_EXTN_PREFIX = ";ext="; + var getExtensionDigitsPattern = /* @__PURE__ */ __name(function getExtensionDigitsPattern2(maxLength) { + return "([".concat(_constants.VALID_DIGITS, "]{1,").concat(maxLength, "})"); + }, "getExtensionDigitsPattern"); + function createExtensionPattern(purpose) { + var extLimitAfterExplicitLabel = "20"; + var extLimitAfterLikelyLabel = "15"; + var extLimitAfterAmbiguousChar = "9"; + var extLimitWhenNotSure = "6"; + var possibleSeparatorsBetweenNumberAndExtLabel = "[ \xA0\\t,]*"; + var possibleCharsAfterExtLabel = "[:\\.\uFF0E]?[ \xA0\\t,-]*"; + var optionalExtnSuffix = "#?"; + var explicitExtLabels = "(?:e?xt(?:ensi(?:o\u0301?|\xF3))?n?|\uFF45?\uFF58\uFF54\uFF4E?|\u0434\u043E\u0431|anexo)"; + var ambiguousExtLabels = "(?:[x\uFF58#\uFF03~\uFF5E]|int|\uFF49\uFF4E\uFF54)"; + var ambiguousSeparator = "[- ]+"; + var possibleSeparatorsNumberExtLabelNoComma = "[ \xA0\\t]*"; + var autoDiallingAndExtLabelsFound = "(?:,{2}|;)"; + var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel); + var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix; + var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; + var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + "#"; + var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix; + var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + "(?:,)+" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; + return rfcExtn + "|" + explicitExtn + "|" + ambiguousExtn + "|" + americanStyleExtnWithSuffix + "|" + autoDiallingExtn + "|" + onlyCommasExtn; + } + __name(createExtensionPattern, "createExtensionPattern"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/isViablePhoneNumber.js +var require_isViablePhoneNumber = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/isViablePhoneNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.VALID_PHONE_NUMBER_WITH_EXTENSION = exports2.VALID_PHONE_NUMBER = void 0; + exports2["default"] = isViablePhoneNumber; + exports2.isViablePhoneNumberStart = isViablePhoneNumberStart; + var _constants = require_constants4(); + var _createExtensionPattern = _interopRequireDefault(require_createExtensionPattern()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var MIN_LENGTH_PHONE_NUMBER_PATTERN = "[" + _constants.VALID_DIGITS + "]{" + _constants.MIN_LENGTH_FOR_NSN + "}"; + var VALID_PHONE_NUMBER = exports2.VALID_PHONE_NUMBER = "[" + _constants.PLUS_CHARS + "]{0,1}(?:[" + _constants.VALID_PUNCTUATION + "]*[" + _constants.VALID_DIGITS + "]){3,}[" + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + "]*"; + var VALID_PHONE_NUMBER_START_REG_EXP = new RegExp("^[" + _constants.PLUS_CHARS + "]{0,1}(?:[" + _constants.VALID_PUNCTUATION + "]*[" + _constants.VALID_DIGITS + "]){1,2}$", "i"); + var VALID_PHONE_NUMBER_WITH_EXTENSION = exports2.VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions + "(?:" + (0, _createExtensionPattern["default"])() + ")?"; + var VALID_PHONE_NUMBER_PATTERN = new RegExp( + // Either a short two-digit-only phone number + "^" + MIN_LENGTH_PHONE_NUMBER_PATTERN + "$|^" + VALID_PHONE_NUMBER_WITH_EXTENSION + "$", + "i" + ); + function isViablePhoneNumber(number) { + return number.length >= _constants.MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number); + } + __name(isViablePhoneNumber, "isViablePhoneNumber"); + function isViablePhoneNumberStart(number) { + return VALID_PHONE_NUMBER_START_REG_EXP.test(number); + } + __name(isViablePhoneNumberStart, "isViablePhoneNumberStart"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/extension/extractExtension.js +var require_extractExtension = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/extension/extractExtension.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = extractExtension; + var _createExtensionPattern = _interopRequireDefault(require_createExtensionPattern()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var EXTN_PATTERN = new RegExp("(?:" + (0, _createExtensionPattern["default"])() + ")$", "i"); + function extractExtension(number) { + var start = number.search(EXTN_PATTERN); + if (start < 0) { + return {}; + } + var numberWithoutExtension = number.slice(0, start); + var matches = number.match(EXTN_PATTERN); + var i = 1; + while (i < matches.length) { + if (matches[i]) { + return { + number: numberWithoutExtension, + ext: matches[i] + }; + } + i++; + } + } + __name(extractExtension, "extractExtension"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/parseDigits.js +var require_parseDigits = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/parseDigits.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.DIGITS = void 0; + exports2["default"] = parseDigits; + exports2.parseDigit = parseDigit; + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + var DIGITS = exports2.DIGITS = { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "\uFF10": "0", + // Fullwidth digit 0 + "\uFF11": "1", + // Fullwidth digit 1 + "\uFF12": "2", + // Fullwidth digit 2 + "\uFF13": "3", + // Fullwidth digit 3 + "\uFF14": "4", + // Fullwidth digit 4 + "\uFF15": "5", + // Fullwidth digit 5 + "\uFF16": "6", + // Fullwidth digit 6 + "\uFF17": "7", + // Fullwidth digit 7 + "\uFF18": "8", + // Fullwidth digit 8 + "\uFF19": "9", + // Fullwidth digit 9 + "\u0660": "0", + // Arabic-indic digit 0 + "\u0661": "1", + // Arabic-indic digit 1 + "\u0662": "2", + // Arabic-indic digit 2 + "\u0663": "3", + // Arabic-indic digit 3 + "\u0664": "4", + // Arabic-indic digit 4 + "\u0665": "5", + // Arabic-indic digit 5 + "\u0666": "6", + // Arabic-indic digit 6 + "\u0667": "7", + // Arabic-indic digit 7 + "\u0668": "8", + // Arabic-indic digit 8 + "\u0669": "9", + // Arabic-indic digit 9 + "\u06F0": "0", + // Eastern-Arabic digit 0 + "\u06F1": "1", + // Eastern-Arabic digit 1 + "\u06F2": "2", + // Eastern-Arabic digit 2 + "\u06F3": "3", + // Eastern-Arabic digit 3 + "\u06F4": "4", + // Eastern-Arabic digit 4 + "\u06F5": "5", + // Eastern-Arabic digit 5 + "\u06F6": "6", + // Eastern-Arabic digit 6 + "\u06F7": "7", + // Eastern-Arabic digit 7 + "\u06F8": "8", + // Eastern-Arabic digit 8 + "\u06F9": "9" + // Eastern-Arabic digit 9 + }; + function parseDigit(character) { + return DIGITS[character]; + } + __name(parseDigit, "parseDigit"); + function parseDigits(string) { + var result = ""; + for (var _iterator = _createForOfIteratorHelperLoose(string.split("")), _step; !(_step = _iterator()).done; ) { + var character = _step.value; + var digit = parseDigit(character); + if (digit) { + result += digit; + } + } + return result; + } + __name(parseDigits, "parseDigits"); + } +}); + +// node_modules/libphonenumber-js/build/parseIncompletePhoneNumber.js +var require_parseIncompletePhoneNumber = __commonJS({ + "node_modules/libphonenumber-js/build/parseIncompletePhoneNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = parseIncompletePhoneNumber; + exports2.parsePhoneNumberCharacter = parsePhoneNumberCharacter; + var _parseDigits = require_parseDigits(); + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function parseIncompletePhoneNumber(string) { + var result = ""; + for (var _iterator = _createForOfIteratorHelperLoose(string.split("")), _step; !(_step = _iterator()).done; ) { + var character = _step.value; + result += parsePhoneNumberCharacter(character, result) || ""; + } + return result; + } + __name(parseIncompletePhoneNumber, "parseIncompletePhoneNumber"); + function parsePhoneNumberCharacter(character, prevParsedCharacters, eventListener) { + if (character === "+") { + if (prevParsedCharacters) { + if (typeof eventListener === "function") { + eventListener("end"); + } + return; + } + return "+"; + } + return (0, _parseDigits.parseDigit)(character); + } + __name(parsePhoneNumberCharacter, "parsePhoneNumberCharacter"); + } +}); + +// node_modules/libphonenumber-js/build/getCountryCallingCode.js +var require_getCountryCallingCode = __commonJS({ + "node_modules/libphonenumber-js/build/getCountryCallingCode.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + Object.defineProperty(exports2, "default", { + enumerable: true, + get: /* @__PURE__ */ __name(function get() { + return _metadata.getCountryCallingCode; + }, "get") + }); + var _metadata = require_metadata(); + } +}); + +// node_modules/libphonenumber-js/build/helpers/mergeArrays.js +var require_mergeArrays = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/mergeArrays.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = mergeArrays; + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function mergeArrays(a, b) { + var merged = a.slice(); + for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done; ) { + var element = _step.value; + if (a.indexOf(element) < 0) { + merged.push(element); + } + } + return merged.sort(function(a2, b2) { + return a2 - b2; + }); + } + __name(mergeArrays, "mergeArrays"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/checkNumberLength.js +var require_checkNumberLength = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/checkNumberLength.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.checkNumberLengthForType = checkNumberLengthForType; + exports2["default"] = checkNumberLength; + var _metadata = _interopRequireDefault(require_metadata()); + var _mergeArrays = _interopRequireDefault(require_mergeArrays()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function checkNumberLength(nationalNumber, country2, metadata) { + return checkNumberLengthForType(nationalNumber, void 0, country2, metadata); + } + __name(checkNumberLength, "checkNumberLength"); + function checkNumberLengthForType(nationalNumber, type, country2, metadata) { + if (country2) { + metadata = new _metadata["default"](metadata.metadata); + metadata.selectNumberingPlan(country2); + } + var type_info = metadata.type(type); + var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); + if (!possible_lengths) { + return "IS_POSSIBLE"; + } + if (type === "FIXED_LINE_OR_MOBILE") { + if (!metadata.type("FIXED_LINE")) { + return checkNumberLengthForType(nationalNumber, "MOBILE", country2, metadata); + } + var mobile_type = metadata.type("MOBILE"); + if (mobile_type) { + possible_lengths = (0, _mergeArrays["default"])(possible_lengths, mobile_type.possibleLengths()); + } + } else if (type && !type_info) { + return "INVALID_LENGTH"; + } + var actual_length = nationalNumber.length; + var minimum_length = possible_lengths[0]; + if (minimum_length === actual_length) { + return "IS_POSSIBLE"; + } + if (minimum_length > actual_length) { + return "TOO_SHORT"; + } + if (possible_lengths[possible_lengths.length - 1] < actual_length) { + return "TOO_LONG"; + } + return possible_lengths.indexOf(actual_length, 1) >= 0 ? "IS_POSSIBLE" : "INVALID_LENGTH"; + } + __name(checkNumberLengthForType, "checkNumberLengthForType"); + } +}); + +// node_modules/libphonenumber-js/build/isPossible.js +var require_isPossible = __commonJS({ + "node_modules/libphonenumber-js/build/isPossible.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = isPossiblePhoneNumber; + exports2.isPossibleNumber = isPossibleNumber; + var _metadata = _interopRequireDefault(require_metadata()); + var _checkNumberLength = _interopRequireDefault(require_checkNumberLength()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isPossiblePhoneNumber(input, options, metadataJson) { + if (options === void 0) { + options = {}; + } + var metadata = new _metadata["default"](metadataJson); + if (options.v2) { + if (!input.countryCallingCode) { + throw new Error("Invalid phone number object passed"); + } + metadata.selectNumberingPlan(input.country || input.countryCallingCode); + } else { + if (!input.phone) { + return false; + } + if (input.country) { + if (!metadata.hasCountry(input.country)) { + throw new Error("Unknown country: ".concat(input.country)); + } + metadata.selectNumberingPlan(input.country); + } else { + if (!input.countryCallingCode) { + throw new Error("Invalid phone number object passed"); + } + metadata.selectNumberingPlan(input.countryCallingCode); + } + } + if (metadata.possibleLengths()) { + return isPossibleNumber(input.phone || input.nationalNumber, metadata); + } + if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) { + return true; + } + throw new Error('Missing "possibleLengths" in metadata. Perhaps the metadata has been generated before v1.0.18.'); + } + __name(isPossiblePhoneNumber, "isPossiblePhoneNumber"); + function isPossibleNumber(nationalNumber, metadata) { + switch ((0, _checkNumberLength["default"])(nationalNumber, void 0, metadata)) { + case "IS_POSSIBLE": + return true; + // This library ignores "local-only" phone numbers (for simplicity). + // See the readme for more info on what are "local-only" phone numbers. + // case 'IS_POSSIBLE_LOCAL_ONLY': + // return !isInternational + default: + return false; + } + } + __name(isPossibleNumber, "isPossibleNumber"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/matchesEntirely.js +var require_matchesEntirely = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/matchesEntirely.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = matchesEntirely; + function matchesEntirely(text, regularExpressionText) { + text = text || ""; + return new RegExp("^(?:" + regularExpressionText + ")$").test(text); + } + __name(matchesEntirely, "matchesEntirely"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/getNumberType.js +var require_getNumberType = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/getNumberType.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = getNumberType; + exports2.isNumberTypeEqualTo = isNumberTypeEqualTo; + var _metadata = _interopRequireDefault(require_metadata()); + var _matchesEntirely = _interopRequireDefault(require_matchesEntirely()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + var NON_FIXED_LINE_PHONE_TYPES = ["MOBILE", "PREMIUM_RATE", "TOLL_FREE", "SHARED_COST", "VOIP", "PERSONAL_NUMBER", "PAGER", "UAN", "VOICEMAIL"]; + function getNumberType(input, options, metadataJson) { + options = options || {}; + if (!input.country && !input.countryCallingCode) { + return; + } + var metadata = new _metadata["default"](metadataJson); + metadata.selectNumberingPlan(input.country || input.countryCallingCode); + var nationalNumber = options.v2 ? input.nationalNumber : input.phone; + if (!(0, _matchesEntirely["default"])(nationalNumber, metadata.nationalNumberPattern())) { + return; + } + if (isNumberTypeEqualTo(nationalNumber, "FIXED_LINE", metadata)) { + if (metadata.type("MOBILE") && metadata.type("MOBILE").pattern() === "") { + return "FIXED_LINE_OR_MOBILE"; + } + if (!metadata.type("MOBILE")) { + return "FIXED_LINE_OR_MOBILE"; + } + if (isNumberTypeEqualTo(nationalNumber, "MOBILE", metadata)) { + return "FIXED_LINE_OR_MOBILE"; + } + return "FIXED_LINE"; + } + for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done; ) { + var type = _step.value; + if (isNumberTypeEqualTo(nationalNumber, type, metadata)) { + return type; + } + } + } + __name(getNumberType, "getNumberType"); + function isNumberTypeEqualTo(nationalNumber, type, metadata) { + var typeDefinition = metadata.type(type); + if (!typeDefinition || !typeDefinition.pattern()) { + return false; + } + if (typeDefinition.possibleLengths() && typeDefinition.possibleLengths().indexOf(nationalNumber.length) < 0) { + return false; + } + return (0, _matchesEntirely["default"])(nationalNumber, typeDefinition.pattern()); + } + __name(isNumberTypeEqualTo, "isNumberTypeEqualTo"); + } +}); + +// node_modules/libphonenumber-js/build/isValid.js +var require_isValid = __commonJS({ + "node_modules/libphonenumber-js/build/isValid.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = isValidNumber; + var _metadata = _interopRequireDefault(require_metadata()); + var _matchesEntirely = _interopRequireDefault(require_matchesEntirely()); + var _getNumberType = _interopRequireDefault(require_getNumberType()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isValidNumber(input, options, metadataJson) { + options = options || {}; + var metadata = new _metadata["default"](metadataJson); + metadata.selectNumberingPlan(input.country || input.countryCallingCode); + if (metadata.hasTypes()) { + return (0, _getNumberType["default"])(input, options, metadata.metadata) !== void 0; + } + var nationalNumber = options.v2 ? input.nationalNumber : input.phone; + return (0, _matchesEntirely["default"])(nationalNumber, metadata.nationalNumberPattern()); + } + __name(isValidNumber, "isValidNumber"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/isCountryCode.js +var require_isCountryCode = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/isCountryCode.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = isCountryCode; + var COUNTRY_CODE_REG_EXP = /^[A-Z]{2}$/; + function isCountryCode(string) { + return COUNTRY_CODE_REG_EXP.test(string); + } + __name(isCountryCode, "isCountryCode"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/getCountryAndCallingCodeFromOneOfThem.js +var require_getCountryAndCallingCodeFromOneOfThem = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/getCountryAndCallingCodeFromOneOfThem.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = getCountryAndCallingCodeFromOneOfThem; + var _metadata = _interopRequireDefault(require_metadata()); + var _isCountryCode = _interopRequireDefault(require_isCountryCode()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; + function getCountryAndCallingCodeFromOneOfThem(countryOrCallingCode, metadataJson) { + var country2; + var callingCode; + var metadata = new _metadata["default"](metadataJson); + if ((0, _isCountryCode["default"])(countryOrCallingCode)) { + country2 = countryOrCallingCode; + metadata.selectNumberingPlan(country2); + callingCode = metadata.countryCallingCode(); + } else { + callingCode = countryOrCallingCode; + if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) { + if (metadata.isNonGeographicCallingCode(callingCode)) { + country2 = "001"; + } + } + } + return { + country: country2, + callingCode + }; + } + __name(getCountryAndCallingCodeFromOneOfThem, "getCountryAndCallingCodeFromOneOfThem"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/getPossibleCountriesForNumber.js +var require_getPossibleCountriesForNumber = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/getPossibleCountriesForNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = getPossibleCountriesForNumber; + var _metadata2 = _interopRequireDefault(require_metadata()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) { + var _metadata = new _metadata2["default"](metadata); + var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode); + if (!possibleCountries) { + return []; + } + return possibleCountries.filter(function(country2) { + return couldNationalNumberBelongToCountry(nationalNumber, country2, metadata); + }); + } + __name(getPossibleCountriesForNumber, "getPossibleCountriesForNumber"); + function couldNationalNumberBelongToCountry(nationalNumber, country2, metadataJson) { + var metadata = new _metadata2["default"](metadataJson); + metadata.selectNumberingPlan(country2); + return metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0; + } + __name(couldNationalNumberBelongToCountry, "couldNationalNumberBelongToCountry"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/stripIddPrefix.js +var require_stripIddPrefix = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/stripIddPrefix.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = stripIddPrefix; + var _metadata = _interopRequireDefault(require_metadata()); + var _constants = require_constants4(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var CAPTURING_DIGIT_PATTERN = new RegExp("([" + _constants.VALID_DIGITS + "])"); + function stripIddPrefix(number, country2, callingCode, metadataJson) { + if (!country2) { + return; + } + var metadata = new _metadata["default"](metadataJson); + metadata.selectNumberingPlan(country2 || callingCode); + var IDDPrefixPattern = new RegExp(metadata.IDDPrefix()); + if (number.search(IDDPrefixPattern) !== 0) { + return; + } + number = number.slice(number.match(IDDPrefixPattern)[0].length); + var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN); + if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) { + if (matchedGroups[1] === "0") { + return; + } + } + return number; + } + __name(stripIddPrefix, "stripIddPrefix"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js +var require_extractNationalNumberFromPossiblyIncompleteNumber = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = extractNationalNumberFromPossiblyIncompleteNumber; + function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) { + if (number && metadata.numberingPlan.nationalPrefixForParsing()) { + var prefixPattern = new RegExp("^(?:" + metadata.numberingPlan.nationalPrefixForParsing() + ")"); + var prefixMatch = prefixPattern.exec(number); + if (prefixMatch) { + var nationalNumber; + var carrierCode; + var capturedGroupsCount = prefixMatch.length - 1; + var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount]; + if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) { + nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); + if (capturedGroupsCount > 1) { + carrierCode = prefixMatch[1]; + } + } else { + var prefixBeforeNationalNumber = prefixMatch[0]; + nationalNumber = number.slice(prefixBeforeNationalNumber.length); + if (hasCapturedGroups) { + carrierCode = prefixMatch[1]; + } + } + var nationalPrefix; + if (hasCapturedGroups) { + var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]); + var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); + if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) { + nationalPrefix = metadata.numberingPlan.nationalPrefix(); + } + } else { + nationalPrefix = prefixMatch[0]; + } + return { + nationalNumber, + nationalPrefix, + carrierCode + }; + } + } + return { + nationalNumber: number + }; + } + __name(extractNationalNumberFromPossiblyIncompleteNumber, "extractNationalNumberFromPossiblyIncompleteNumber"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/getCountryByNationalNumber.js +var require_getCountryByNationalNumber = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/getCountryByNationalNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = getCountryByNationalNumber; + var _metadata = _interopRequireDefault(require_metadata()); + var _getNumberType = _interopRequireDefault(require_getNumberType()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function getCountryByNationalNumber(nationalNumber, countries, metadataJson) { + var metadata = new _metadata["default"](metadataJson); + for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done; ) { + var country2 = _step.value; + metadata.selectNumberingPlan(country2); + if (metadata.leadingDigits()) { + if (nationalNumber && nationalNumber.search(metadata.leadingDigits()) === 0) { + return country2; + } + } else if ((0, _getNumberType["default"])({ + phone: nationalNumber, + country: country2 + }, void 0, metadata.metadata)) { + return country2; + } + } + } + __name(getCountryByNationalNumber, "getCountryByNationalNumber"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/getCountryByCallingCode.js +var require_getCountryByCallingCode = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/getCountryByCallingCode.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = getCountryByCallingCode; + var _getCountryByNationalNumber = _interopRequireDefault(require_getCountryByNationalNumber()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; + function getCountryByCallingCode(callingCode, _ref) { + var nationalNumber = _ref.nationalNumber, metadata = _ref.metadata; + if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) { + if (metadata.isNonGeographicCallingCode(callingCode)) { + return "001"; + } + } + var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode); + if (!possibleCountries) { + return; + } + if (possibleCountries.length === 1) { + return possibleCountries[0]; + } + return (0, _getCountryByNationalNumber["default"])(nationalNumber, possibleCountries, metadata.metadata); + } + __name(getCountryByCallingCode, "getCountryByCallingCode"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/extractNationalNumber.js +var require_extractNationalNumber = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/extractNationalNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = extractNationalNumber; + var _extractNationalNumberFromPossiblyIncompleteNumber = _interopRequireDefault(require_extractNationalNumberFromPossiblyIncompleteNumber()); + var _matchesEntirely = _interopRequireDefault(require_matchesEntirely()); + var _checkNumberLength = _interopRequireDefault(require_checkNumberLength()); + var _getCountryByCallingCode = _interopRequireDefault(require_getCountryByCallingCode()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function extractNationalNumber(number, country2, metadata) { + var _extractNationalNumbe = (0, _extractNationalNumberFromPossiblyIncompleteNumber["default"])(number, metadata), carrierCode = _extractNationalNumbe.carrierCode, nationalNumber = _extractNationalNumbe.nationalNumber; + if (nationalNumber !== number) { + if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) { + return { + nationalNumber: number + }; + } + if (metadata.numberingPlan.possibleLengths()) { + if (!country2) { + country2 = (0, _getCountryByCallingCode["default"])(metadata.numberingPlan.callingCode(), { + nationalNumber, + metadata + }); + } + if (!isPossibleIncompleteNationalNumber(nationalNumber, country2, metadata)) { + return { + nationalNumber: number + }; + } + } + } + return { + nationalNumber, + carrierCode + }; + } + __name(extractNationalNumber, "extractNationalNumber"); + function shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) { + if ((0, _matchesEntirely["default"])(nationalNumberBefore, metadata.nationalNumberPattern()) && !(0, _matchesEntirely["default"])(nationalNumberAfter, metadata.nationalNumberPattern())) { + return false; + } + return true; + } + __name(shouldHaveExtractedNationalPrefix, "shouldHaveExtractedNationalPrefix"); + function isPossibleIncompleteNationalNumber(nationalNumber, country2, metadata) { + switch ((0, _checkNumberLength["default"])(nationalNumber, country2, metadata)) { + case "TOO_SHORT": + case "INVALID_LENGTH": + return false; + default: + return true; + } + } + __name(isPossibleIncompleteNationalNumber, "isPossibleIncompleteNationalNumber"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js +var require_extractCountryCallingCodeFromInternationalNumberWithoutPlusSign = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign; + var _metadata = _interopRequireDefault(require_metadata()); + var _matchesEntirely = _interopRequireDefault(require_matchesEntirely()); + var _extractNationalNumber = _interopRequireDefault(require_extractNationalNumber()); + var _checkNumberLength = _interopRequireDefault(require_checkNumberLength()); + var _getCountryCallingCode = _interopRequireDefault(require_getCountryCallingCode()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country2, defaultCountry, defaultCallingCode, metadataJson) { + if (!(country2 || defaultCountry || defaultCallingCode)) { + return { + number + }; + } + var countryCallingCode = country2 || defaultCountry ? (0, _getCountryCallingCode["default"])(country2 || defaultCountry, metadataJson) : defaultCallingCode; + if (number.indexOf(countryCallingCode) === 0) { + var metadata = new _metadata["default"](metadataJson); + metadata.selectNumberingPlan(country2 || defaultCountry || defaultCallingCode); + var possibleShorterNumber = number.slice(countryCallingCode.length); + var _extractNationalNumbe = (0, _extractNationalNumber["default"])(possibleShorterNumber, void 0, metadata), possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber; + var _extractNationalNumbe2 = (0, _extractNationalNumber["default"])(number, void 0, metadata), nationalNumber = _extractNationalNumbe2.nationalNumber; + if (!(0, _matchesEntirely["default"])(nationalNumber, metadata.nationalNumberPattern()) && (0, _matchesEntirely["default"])(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || (0, _checkNumberLength["default"])(nationalNumber, void 0, metadata) === "TOO_LONG") { + return { + countryCallingCode, + number: possibleShorterNumber + }; + } + } + return { + number + }; + } + __name(extractCountryCallingCodeFromInternationalNumberWithoutPlusSign, "extractCountryCallingCodeFromInternationalNumberWithoutPlusSign"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/extractCountryCallingCode.js +var require_extractCountryCallingCode = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/extractCountryCallingCode.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = extractCountryCallingCode; + var _stripIddPrefix = _interopRequireDefault(require_stripIddPrefix()); + var _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign = _interopRequireDefault(require_extractCountryCallingCodeFromInternationalNumberWithoutPlusSign()); + var _metadata = _interopRequireDefault(require_metadata()); + var _constants = require_constants4(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function extractCountryCallingCode(number, country2, defaultCountry, defaultCallingCode, metadataJson) { + if (!number) { + return {}; + } + var isNumberWithIddPrefix; + if (number[0] !== "+") { + var numberWithoutIDD = (0, _stripIddPrefix["default"])(number, country2 || defaultCountry, defaultCallingCode, metadataJson); + if (numberWithoutIDD && numberWithoutIDD !== number) { + isNumberWithIddPrefix = true; + number = "+" + numberWithoutIDD; + } else { + if (country2 || defaultCountry || defaultCallingCode) { + var _extractCountryCallin = (0, _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign["default"])(number, country2, defaultCountry, defaultCallingCode, metadataJson), countryCallingCode = _extractCountryCallin.countryCallingCode, shorterNumber = _extractCountryCallin.number; + if (countryCallingCode) { + return { + countryCallingCodeSource: "FROM_NUMBER_WITHOUT_PLUS_SIGN", + countryCallingCode, + number: shorterNumber + }; + } + } + return { + // No need to set it to `UNSPECIFIED`. It can be just `undefined`. + // countryCallingCodeSource: 'UNSPECIFIED', + number + }; + } + } + if (number[1] === "0") { + return {}; + } + var metadata = new _metadata["default"](metadataJson); + var i = 2; + while (i - 1 <= _constants.MAX_LENGTH_COUNTRY_CODE && i <= number.length) { + var _countryCallingCode = number.slice(1, i); + if (metadata.hasCallingCode(_countryCallingCode)) { + metadata.selectNumberingPlan(_countryCallingCode); + return { + countryCallingCodeSource: isNumberWithIddPrefix ? "FROM_NUMBER_WITH_IDD" : "FROM_NUMBER_WITH_PLUS_SIGN", + countryCallingCode: _countryCallingCode, + number: number.slice(i) + }; + } + i++; + } + return {}; + } + __name(extractCountryCallingCode, "extractCountryCallingCode"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/applyInternationalSeparatorStyle.js +var require_applyInternationalSeparatorStyle = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/applyInternationalSeparatorStyle.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = applyInternationalSeparatorStyle; + var _constants = require_constants4(); + function applyInternationalSeparatorStyle(formattedNumber) { + return formattedNumber.replace(new RegExp("[".concat(_constants.VALID_PUNCTUATION, "]+"), "g"), " ").trim(); + } + __name(applyInternationalSeparatorStyle, "applyInternationalSeparatorStyle"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/formatNationalNumberUsingFormat.js +var require_formatNationalNumberUsingFormat = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/formatNationalNumberUsingFormat.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.FIRST_GROUP_PATTERN = void 0; + exports2["default"] = formatNationalNumberUsingFormat; + var _applyInternationalSeparatorStyle = _interopRequireDefault(require_applyInternationalSeparatorStyle()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var FIRST_GROUP_PATTERN = exports2.FIRST_GROUP_PATTERN = /(\$\d)/; + function formatNationalNumberUsingFormat(number, format, _ref) { + var useInternationalFormat = _ref.useInternationalFormat, withNationalPrefix = _ref.withNationalPrefix, carrierCode = _ref.carrierCode, metadata = _ref.metadata; + var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : ( + // This library doesn't use `domestic_carrier_code_formatting_rule`, + // because that one is only used when formatting phone numbers + // for dialing from a mobile phone, and this is not a dialing library. + // carrierCode && format.domesticCarrierCodeFormattingRule() + // // First, replace the $CC in the formatting rule with the desired carrier code. + // // Then, replace the $FG in the formatting rule with the first group + // // and the carrier code combined in the appropriate way. + // ? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode)) + // : ( + // withNationalPrefix && format.nationalPrefixFormattingRule() + // ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) + // : format.format() + // ) + withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format() + )); + if (useInternationalFormat) { + return (0, _applyInternationalSeparatorStyle["default"])(formattedNumber); + } + return formattedNumber; + } + __name(formatNationalNumberUsingFormat, "formatNationalNumberUsingFormat"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/getIddPrefix.js +var require_getIddPrefix = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/getIddPrefix.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = getIddPrefix; + var _metadata = _interopRequireDefault(require_metadata()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var SINGLE_IDD_PREFIX_REG_EXP = /^[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?$/; + function getIddPrefix(country2, callingCode, metadata) { + var countryMetadata = new _metadata["default"](metadata); + countryMetadata.selectNumberingPlan(country2 || callingCode); + if (countryMetadata.defaultIDDPrefix()) { + return countryMetadata.defaultIDDPrefix(); + } + if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) { + return countryMetadata.IDDPrefix(); + } + } + __name(getIddPrefix, "getIddPrefix"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/RFC3966.js +var require_RFC3966 = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/RFC3966.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.formatRFC3966 = formatRFC3966; + exports2.parseRFC3966 = parseRFC3966; + var _isViablePhoneNumber = _interopRequireDefault(require_isViablePhoneNumber()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); + } + __name(_slicedToArray, "_slicedToArray"); + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_nonIterableRest, "_nonIterableRest"); + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (null != t) { + var e, n, i, u, a = [], f = true, o = false; + try { + if (i = (t = t.call(r)).next, 0 === l) { + if (Object(t) !== t) return; + f = false; + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ; + } catch (r2) { + o = true, n = r2; + } finally { + try { + if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; + } finally { + if (o) throw n; + } + } + return a; + } + } + __name(_iterableToArrayLimit, "_iterableToArrayLimit"); + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; + } + __name(_arrayWithHoles, "_arrayWithHoles"); + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function parseRFC3966(text) { + var number; + var ext; + text = text.replace(/^tel:/, "tel="); + for (var _iterator = _createForOfIteratorHelperLoose(text.split(";")), _step; !(_step = _iterator()).done; ) { + var part = _step.value; + var _part$split = part.split("="), _part$split2 = _slicedToArray(_part$split, 2), name = _part$split2[0], value = _part$split2[1]; + switch (name) { + case "tel": + number = value; + break; + case "ext": + ext = value; + break; + case "phone-context": + if (value[0] === "+") { + number = value + number; + } + break; + } + } + if (!(0, _isViablePhoneNumber["default"])(number)) { + return {}; + } + var result = { + number + }; + if (ext) { + result.ext = ext; + } + return result; + } + __name(parseRFC3966, "parseRFC3966"); + function formatRFC3966(_ref) { + var number = _ref.number, ext = _ref.ext; + if (!number) { + return ""; + } + if (number[0] !== "+") { + throw new Error('"formatRFC3966()" expects "number" to be in E.164 format.'); + } + return "tel:".concat(number).concat(ext ? ";ext=" + ext : ""); + } + __name(formatRFC3966, "formatRFC3966"); + } +}); + +// node_modules/libphonenumber-js/build/format.js +var require_format = __commonJS({ + "node_modules/libphonenumber-js/build/format.js"(exports2) { + "use strict"; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.chooseFormatForNumber = chooseFormatForNumber; + exports2["default"] = formatNumber2; + var _matchesEntirely = _interopRequireDefault(require_matchesEntirely()); + var _formatNationalNumberUsingFormat = _interopRequireDefault(require_formatNationalNumberUsingFormat()); + var _metadata = _interopRequireWildcard(require_metadata()); + var _getIddPrefix = _interopRequireDefault(require_getIddPrefix()); + var _RFC = require_RFC3966(); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, "default": e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var DEFAULT_OPTIONS = { + formatExtension: /* @__PURE__ */ __name(function formatExtension(formattedNumber, extension, metadata) { + return "".concat(formattedNumber).concat(metadata.ext()).concat(extension); + }, "formatExtension") + }; + function formatNumber2(input, format, options, metadataJson) { + if (options) { + options = merge({}, DEFAULT_OPTIONS, options); + } else { + options = DEFAULT_OPTIONS; + } + var metadata = new _metadata["default"](metadataJson); + if (input.country && input.country !== "001") { + if (!metadata.hasCountry(input.country)) { + throw new Error("Unknown country: ".concat(input.country)); + } + metadata.selectNumberingPlan(input.country); + } else if (input.countryCallingCode) { + metadata.selectNumberingPlan(input.countryCallingCode); + } else return input.phone || ""; + var countryCallingCode = metadata.countryCallingCode(); + var nationalNumber = options.v2 ? input.nationalNumber : input.phone; + var number; + switch (format) { + case "NATIONAL": + if (!nationalNumber) { + return ""; + } + number = formatNationalNumber(nationalNumber, input.carrierCode, "NATIONAL", metadata, options); + return addExtension(number, input.ext, metadata, options.formatExtension); + case "INTERNATIONAL": + if (!nationalNumber) { + return "+".concat(countryCallingCode); + } + number = formatNationalNumber(nationalNumber, null, "INTERNATIONAL", metadata, options); + number = "+".concat(countryCallingCode, " ").concat(number); + return addExtension(number, input.ext, metadata, options.formatExtension); + case "E.164": + return "+".concat(countryCallingCode).concat(nationalNumber); + case "RFC3966": + return (0, _RFC.formatRFC3966)({ + number: "+".concat(countryCallingCode).concat(nationalNumber), + ext: input.ext + }); + // For reference, here's Google's IDD formatter: + // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546 + // Not saying that this IDD formatter replicates it 1:1, but it seems to work. + // Who would even need to format phone numbers in IDD format anyway? + case "IDD": + if (!options.fromCountry) { + return; + } + var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata); + if (!formattedNumber) { + return; + } + return addExtension(formattedNumber, input.ext, metadata, options.formatExtension); + default: + throw new Error('Unknown "format" argument passed to "formatNumber()": "'.concat(format, '"')); + } + } + __name(formatNumber2, "formatNumber"); + function formatNationalNumber(number, carrierCode, formatAs, metadata, options) { + var format = chooseFormatForNumber(metadata.formats(), number); + if (!format) { + return number; + } + return (0, _formatNationalNumberUsingFormat["default"])(number, format, { + useInternationalFormat: formatAs === "INTERNATIONAL", + withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true, + carrierCode, + metadata + }); + } + __name(formatNationalNumber, "formatNationalNumber"); + function chooseFormatForNumber(availableFormats, nationalNumber) { + return pickFirstMatchingElement(availableFormats, function(format) { + if (format.leadingDigitsPatterns().length > 0) { + var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; + if (nationalNumber.search(lastLeadingDigitsPattern) !== 0) { + return false; + } + } + return (0, _matchesEntirely["default"])(nationalNumber, format.pattern()); + }); + } + __name(chooseFormatForNumber, "chooseFormatForNumber"); + function addExtension(formattedNumber, ext, metadata, formatExtension) { + return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber; + } + __name(addExtension, "addExtension"); + function formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) { + var fromCountryCallingCode = (0, _metadata.getCountryCallingCode)(fromCountry, metadata.metadata); + if (fromCountryCallingCode === countryCallingCode) { + var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, "NATIONAL", metadata); + if (countryCallingCode === "1") { + return countryCallingCode + " " + formattedNumber; + } + return formattedNumber; + } + var iddPrefix = (0, _getIddPrefix["default"])(fromCountry, void 0, metadata.metadata); + if (iddPrefix) { + return "".concat(iddPrefix, " ").concat(countryCallingCode, " ").concat(formatNationalNumber(nationalNumber, null, "INTERNATIONAL", metadata)); + } + } + __name(formatIDD, "formatIDD"); + function merge() { + var i = 1; + for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) { + objects[_key] = arguments[_key]; + } + while (i < objects.length) { + if (objects[i]) { + for (var key in objects[i]) { + objects[0][key] = objects[i][key]; + } + } + i++; + } + return objects[0]; + } + __name(merge, "merge"); + function pickFirstMatchingElement(elements, testFunction) { + var i = 0; + while (i < elements.length) { + if (testFunction(elements[i])) { + return elements[i]; + } + i++; + } + } + __name(pickFirstMatchingElement, "pickFirstMatchingElement"); + } +}); + +// node_modules/libphonenumber-js/build/PhoneNumber.js +var require_PhoneNumber = __commonJS({ + "node_modules/libphonenumber-js/build/PhoneNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + var _metadata = _interopRequireWildcard(require_metadata()); + var _isPossible = _interopRequireDefault(require_isPossible()); + var _isValid = _interopRequireDefault(require_isValid()); + var _getNumberType = _interopRequireDefault(require_getNumberType()); + var _getCountryAndCallingCodeFromOneOfThem = _interopRequireDefault(require_getCountryAndCallingCodeFromOneOfThem()); + var _getPossibleCountriesForNumber = _interopRequireDefault(require_getPossibleCountriesForNumber()); + var _extractCountryCallingCode = _interopRequireDefault(require_extractCountryCallingCode()); + var _isObject = _interopRequireDefault(require_isObject()); + var _format2 = _interopRequireDefault(require_format()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, "default": e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var PhoneNumber = exports2["default"] = /* @__PURE__ */ (function() { + function PhoneNumber2(countryOrCountryCallingCode, nationalNumber, metadata) { + _classCallCheck(this, PhoneNumber2); + if (!countryOrCountryCallingCode) { + throw new TypeError("First argument is required"); + } + if (typeof countryOrCountryCallingCode !== "string") { + throw new TypeError("First argument must be a string"); + } + if (countryOrCountryCallingCode[0] === "+" && !nationalNumber) { + throw new TypeError("`metadata` argument not passed"); + } + if ((0, _isObject["default"])(nationalNumber) && (0, _isObject["default"])(nationalNumber.countries)) { + metadata = nationalNumber; + var e164Number = countryOrCountryCallingCode; + if (!E164_NUMBER_REGEXP.test(e164Number)) { + throw new Error('Invalid `number` argument passed: must consist of a "+" followed by digits'); + } + var _extractCountryCallin = (0, _extractCountryCallingCode["default"])(e164Number, void 0, void 0, void 0, metadata), _countryCallingCode = _extractCountryCallin.countryCallingCode, number = _extractCountryCallin.number; + nationalNumber = number; + countryOrCountryCallingCode = _countryCallingCode; + if (!nationalNumber) { + throw new Error("Invalid `number` argument passed: too short"); + } + } + if (!nationalNumber) { + throw new TypeError("`nationalNumber` argument is required"); + } + if (typeof nationalNumber !== "string") { + throw new TypeError("`nationalNumber` argument must be a string"); + } + (0, _metadata.validateMetadata)(metadata); + var _getCountryAndCalling = (0, _getCountryAndCallingCodeFromOneOfThem["default"])(countryOrCountryCallingCode, metadata), country2 = _getCountryAndCalling.country, countryCallingCode = _getCountryAndCalling.callingCode; + this.country = country2; + this.countryCallingCode = countryCallingCode; + this.nationalNumber = nationalNumber; + this.number = "+" + this.countryCallingCode + this.nationalNumber; + this.getMetadata = function() { + return metadata; + }; + } + __name(PhoneNumber2, "PhoneNumber"); + return _createClass(PhoneNumber2, [{ + key: "setExt", + value: /* @__PURE__ */ __name(function setExt(ext) { + this.ext = ext; + }, "setExt") + }, { + key: "getPossibleCountries", + value: /* @__PURE__ */ __name(function getPossibleCountries() { + if (this.country) { + return [this.country]; + } + return (0, _getPossibleCountriesForNumber["default"])(this.countryCallingCode, this.nationalNumber, this.getMetadata()); + }, "getPossibleCountries") + }, { + key: "isPossible", + value: /* @__PURE__ */ __name(function isPossible() { + return (0, _isPossible["default"])(this, { + v2: true + }, this.getMetadata()); + }, "isPossible") + }, { + key: "isValid", + value: /* @__PURE__ */ __name(function isValid() { + return (0, _isValid["default"])(this, { + v2: true + }, this.getMetadata()); + }, "isValid") + }, { + key: "isNonGeographic", + value: /* @__PURE__ */ __name(function isNonGeographic() { + var metadata = new _metadata["default"](this.getMetadata()); + return metadata.isNonGeographicCallingCode(this.countryCallingCode); + }, "isNonGeographic") + }, { + key: "isEqual", + value: /* @__PURE__ */ __name(function isEqual(phoneNumber) { + return this.number === phoneNumber.number && this.ext === phoneNumber.ext; + }, "isEqual") + // `validateLength()` method was originally meant to be an equivalent for `validatePhoneNumberLength()`. + // + // Later, it became apparent that it's not really a true equivalent. + // The reason is that a `PhoneNumber` instance is not created + // when the phone number string is too short for it to be considered a valid phone number: + // * When there must be at least 2 national (significant) number digits: `"1"`. + // * When the country calling code part of an international number is incomplete: `"+12"`. + // + // So leaving this `validateLength()` method here would suggest a hidden anti-pattern + // of using it instead of `validatePhoneNumberLength()` while ignoring + // the "too short to be even possible" case from phone number length validation. + // And ignoring that case wouldn't make any sense in a real-world application + // because it would still be a valid case that should be handled. + // + // Because of that, this method was eventually commented out in order to not introduce + // that kind of an anti-pattern. + // + // validateLength() { + // const result = checkNumberLength( + // this.nationalNumber, + // undefined, + // this.getMetadata() + // ) + // if (result !== 'IS_POSSIBLE') { + // return result + // } + // } + }, { + key: "getType", + value: /* @__PURE__ */ __name(function getType() { + return (0, _getNumberType["default"])(this, { + v2: true + }, this.getMetadata()); + }, "getType") + }, { + key: "format", + value: /* @__PURE__ */ __name(function format(_format, options) { + return (0, _format2["default"])(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, { + v2: true + }) : { + v2: true + }, this.getMetadata()); + }, "format") + }, { + key: "formatNational", + value: /* @__PURE__ */ __name(function formatNational(options) { + return this.format("NATIONAL", options); + }, "formatNational") + }, { + key: "formatInternational", + value: /* @__PURE__ */ __name(function formatInternational(options) { + return this.format("INTERNATIONAL", options); + }, "formatInternational") + }, { + key: "getURI", + value: /* @__PURE__ */ __name(function getURI(options) { + return this.format("RFC3966", options); + }, "getURI") + }]); + })(); + var E164_NUMBER_REGEXP = /^\+\d+$/; + } +}); + +// node_modules/libphonenumber-js/build/helpers/extractPhoneContext.js +var require_extractPhoneContext = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/extractPhoneContext.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.RFC3966_PREFIX_ = exports2.RFC3966_PHONE_CONTEXT_ = exports2.RFC3966_ISDN_SUBADDRESS_ = exports2.PLUS_SIGN = void 0; + exports2["default"] = extractPhoneContext; + exports2.isPhoneContextValid = isPhoneContextValid; + var _constants = require_constants4(); + var PLUS_SIGN = exports2.PLUS_SIGN = "+"; + var RFC3966_VISUAL_SEPARATOR_ = "[\\-\\.\\(\\)]?"; + var RFC3966_PHONE_DIGIT_ = "([" + _constants.VALID_DIGITS + "]|" + RFC3966_VISUAL_SEPARATOR_ + ")"; + var RFC3966_GLOBAL_NUMBER_DIGITS_ = "^\\" + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + "*[" + _constants.VALID_DIGITS + "]" + RFC3966_PHONE_DIGIT_ + "*$"; + var RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, "g"); + var ALPHANUM_ = _constants.VALID_DIGITS; + var RFC3966_DOMAINLABEL_ = "[" + ALPHANUM_ + "]+((\\-)*[" + ALPHANUM_ + "])*"; + var VALID_ALPHA_ = "a-zA-Z"; + var RFC3966_TOPLABEL_ = "[" + VALID_ALPHA_ + "]+((\\-)*[" + ALPHANUM_ + "])*"; + var RFC3966_DOMAINNAME_ = "^(" + RFC3966_DOMAINLABEL_ + "\\.)*" + RFC3966_TOPLABEL_ + "\\.?$"; + var RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, "g"); + var RFC3966_PREFIX_ = exports2.RFC3966_PREFIX_ = "tel:"; + var RFC3966_PHONE_CONTEXT_ = exports2.RFC3966_PHONE_CONTEXT_ = ";phone-context="; + var RFC3966_ISDN_SUBADDRESS_ = exports2.RFC3966_ISDN_SUBADDRESS_ = ";isub="; + function extractPhoneContext(numberToExtractFrom) { + var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); + if (indexOfPhoneContext < 0) { + return null; + } + var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; + if (phoneContextStart >= numberToExtractFrom.length) { + return ""; + } + var phoneContextEnd = numberToExtractFrom.indexOf(";", phoneContextStart); + if (phoneContextEnd >= 0) { + return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd); + } else { + return numberToExtractFrom.substring(phoneContextStart); + } + } + __name(extractPhoneContext, "extractPhoneContext"); + function isPhoneContextValid(phoneContext) { + if (phoneContext === null) { + return true; + } + if (phoneContext.length === 0) { + return false; + } + return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext); + } + __name(isPhoneContextValid, "isPhoneContextValid"); + } +}); + +// node_modules/libphonenumber-js/build/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js +var require_extractFormattedPhoneNumberFromPossibleRfc3966NumberUri = __commonJS({ + "node_modules/libphonenumber-js/build/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js"(exports2) { + "use strict"; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri; + var _extractPhoneContext = _interopRequireWildcard(require_extractPhoneContext()); + var _ParseError = _interopRequireDefault(require_ParseError()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, "default": e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) { + var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber; + var phoneContext = (0, _extractPhoneContext["default"])(numberToParse); + if (!(0, _extractPhoneContext.isPhoneContextValid)(phoneContext)) { + throw new _ParseError["default"]("NOT_A_NUMBER"); + } + var phoneNumberString; + if (phoneContext === null) { + phoneNumberString = extractFormattedPhoneNumber(numberToParse) || ""; + } else { + phoneNumberString = ""; + if (phoneContext.charAt(0) === _extractPhoneContext.PLUS_SIGN) { + phoneNumberString += phoneContext; + } + var indexOfRfc3966Prefix = numberToParse.indexOf(_extractPhoneContext.RFC3966_PREFIX_); + var indexOfNationalNumber; + if (indexOfRfc3966Prefix >= 0) { + indexOfNationalNumber = indexOfRfc3966Prefix + _extractPhoneContext.RFC3966_PREFIX_.length; + } else { + indexOfNationalNumber = 0; + } + var indexOfPhoneContext = numberToParse.indexOf(_extractPhoneContext.RFC3966_PHONE_CONTEXT_); + phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext); + } + var indexOfIsdn = phoneNumberString.indexOf(_extractPhoneContext.RFC3966_ISDN_SUBADDRESS_); + if (indexOfIsdn > 0) { + phoneNumberString = phoneNumberString.substring(0, indexOfIsdn); + } + if (phoneNumberString !== "") { + return phoneNumberString; + } + } + __name(extractFormattedPhoneNumberFromPossibleRfc3966NumberUri, "extractFormattedPhoneNumberFromPossibleRfc3966NumberUri"); + } +}); + +// node_modules/libphonenumber-js/build/parse.js +var require_parse = __commonJS({ + "node_modules/libphonenumber-js/build/parse.js"(exports2) { + "use strict"; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = parse; + var _constants = require_constants4(); + var _ParseError = _interopRequireDefault(require_ParseError()); + var _metadata = _interopRequireDefault(require_metadata()); + var _isViablePhoneNumber = _interopRequireWildcard(require_isViablePhoneNumber()); + var _extractExtension = _interopRequireDefault(require_extractExtension()); + var _parseIncompletePhoneNumber = _interopRequireDefault(require_parseIncompletePhoneNumber()); + var _getCountryCallingCode = _interopRequireDefault(require_getCountryCallingCode()); + var _isPossible = require_isPossible(); + var _PhoneNumber = _interopRequireDefault(require_PhoneNumber()); + var _matchesEntirely = _interopRequireDefault(require_matchesEntirely()); + var _extractCountryCallingCode = _interopRequireDefault(require_extractCountryCallingCode()); + var _extractNationalNumber = _interopRequireDefault(require_extractNationalNumber()); + var _getCountryByCallingCode = _interopRequireDefault(require_getCountryByCallingCode()); + var _extractFormattedPhoneNumberFromPossibleRfc3966NumberUri = _interopRequireDefault(require_extractFormattedPhoneNumberFromPossibleRfc3966NumberUri()); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, "default": e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var MAX_INPUT_STRING_LENGTH = 250; + var PHONE_NUMBER_START_PATTERN = new RegExp("[" + _constants.PLUS_CHARS + _constants.VALID_DIGITS + "]"); + var AFTER_PHONE_NUMBER_END_PATTERN = new RegExp("[^" + _constants.VALID_DIGITS + "#]+$"); + var USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; + function parse(text, options, metadataJson) { + options = options || {}; + var metadata = new _metadata["default"](metadataJson); + if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) { + if (options.v2) { + throw new _ParseError["default"]("INVALID_COUNTRY"); + } + throw new Error("Unknown country: ".concat(options.defaultCountry)); + } + var _parseInput = parseInput(text, options.v2, options.extract), formattedPhoneNumber = _parseInput.number, ext = _parseInput.ext, error = _parseInput.error; + if (!formattedPhoneNumber) { + if (options.v2) { + if (error === "TOO_SHORT") { + throw new _ParseError["default"]("TOO_SHORT"); + } + throw new _ParseError["default"]("NOT_A_NUMBER"); + } + return {}; + } + var _parsePhoneNumber = parsePhoneNumber( + formattedPhoneNumber, + options.defaultCountry, + options.defaultCallingCode, + // If `country` is returned, its numbering plan will also be selected in `metadata`. + // Otherwise, if `countryCallingCode` is returned, its numbering plan will also be selected in `metadata`. + // Otherwise, if neither `country` nor `countryCallingCode` are returned, no numbering plan will be selected in `metadata`. + metadata + ), country2 = _parsePhoneNumber.country, nationalNumber = _parsePhoneNumber.nationalNumber, countryCallingCode = _parsePhoneNumber.countryCallingCode, countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource, carrierCode = _parsePhoneNumber.carrierCode; + if (!metadata.hasSelectedNumberingPlan()) { + if (options.v2) { + throw new _ParseError["default"]("INVALID_COUNTRY"); + } + return {}; + } + if (!nationalNumber || nationalNumber.length < _constants.MIN_LENGTH_FOR_NSN) { + if (options.v2) { + throw new _ParseError["default"]("TOO_SHORT"); + } + return {}; + } + if (nationalNumber.length > _constants.MAX_LENGTH_FOR_NSN) { + if (options.v2) { + throw new _ParseError["default"]("TOO_LONG"); + } + return {}; + } + if (options.v2) { + var phoneNumber = new _PhoneNumber["default"](countryCallingCode, nationalNumber, metadata.metadata); + if (country2) { + phoneNumber.country = country2; + } + if (carrierCode) { + phoneNumber.carrierCode = carrierCode; + } + if (ext) { + phoneNumber.ext = ext; + } + phoneNumber.__countryCallingCodeSource = countryCallingCodeSource; + return phoneNumber; + } + var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country2) ? (0, _matchesEntirely["default"])(nationalNumber, metadata.nationalNumberPattern()) : false; + if (!options.extended) { + return valid ? result(country2, nationalNumber, ext) : {}; + } + return { + country: country2, + countryCallingCode, + carrierCode, + valid, + possible: valid ? true : options.extended === true && metadata.possibleLengths() && (0, _isPossible.isPossibleNumber)(nationalNumber, metadata) ? true : false, + phone: nationalNumber, + ext + }; + } + __name(parse, "parse"); + function _extractFormattedPhoneNumber(text, extract, throwOnError) { + if (!text) { + return; + } + if (text.length > MAX_INPUT_STRING_LENGTH) { + if (throwOnError) { + throw new _ParseError["default"]("TOO_LONG"); + } + return; + } + if (extract === false) { + return text; + } + var startsAt = text.search(PHONE_NUMBER_START_PATTERN); + if (startsAt < 0) { + return; + } + return text.slice(startsAt).replace(AFTER_PHONE_NUMBER_END_PATTERN, ""); + } + __name(_extractFormattedPhoneNumber, "_extractFormattedPhoneNumber"); + function parseInput(text, v2, extract) { + var number = (0, _extractFormattedPhoneNumberFromPossibleRfc3966NumberUri["default"])(text, { + extractFormattedPhoneNumber: /* @__PURE__ */ __name(function extractFormattedPhoneNumber(text2) { + return _extractFormattedPhoneNumber(text2, extract, v2); + }, "extractFormattedPhoneNumber") + }); + if (!number) { + return {}; + } + if (!(0, _isViablePhoneNumber["default"])(number)) { + if ((0, _isViablePhoneNumber.isViablePhoneNumberStart)(number)) { + return { + error: "TOO_SHORT" + }; + } + return {}; + } + var withExtensionStripped = (0, _extractExtension["default"])(number); + if (withExtensionStripped.ext) { + return withExtensionStripped; + } + return { + number + }; + } + __name(parseInput, "parseInput"); + function result(country2, nationalNumber, ext) { + var result2 = { + country: country2, + phone: nationalNumber + }; + if (ext) { + result2.ext = ext; + } + return result2; + } + __name(result, "result"); + function parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) { + var _extractCountryCallin = (0, _extractCountryCallingCode["default"])( + (0, _parseIncompletePhoneNumber["default"])(formattedPhoneNumber), + void 0, + // `defaultCountry` and `defaultCallingCode` are only used to detect + // if it's an "international" phone number or not. They won't be used + // to derive the resulting `countryCallingCode` from them, or anything like that. + defaultCountry, + defaultCallingCode, + metadata.metadata + ), countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource, countryCallingCode = _extractCountryCallin.countryCallingCode, number = _extractCountryCallin.number; + var country2; + if (countryCallingCode) { + metadata.selectNumberingPlan(countryCallingCode); + } else if (number && (defaultCountry || defaultCallingCode)) { + if (defaultCountry) { + country2 = defaultCountry; + metadata.selectNumberingPlan(defaultCountry); + countryCallingCode = metadata.numberingPlan.callingCode(); + } else { + metadata.selectNumberingPlan(defaultCallingCode); + countryCallingCode = defaultCallingCode; + if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) { + if (metadata.isNonGeographicCallingCode(countryCallingCode)) { + country2 = "001"; + } + } + } + } else return {}; + if (!number) { + return { + countryCallingCodeSource, + countryCallingCode + }; + } + var _extractNationalNumbe = (0, _extractNationalNumber["default"])((0, _parseIncompletePhoneNumber["default"])(number), void 0, metadata), nationalNumber = _extractNationalNumbe.nationalNumber, carrierCode = _extractNationalNumbe.carrierCode; + var exactCountry = (0, _getCountryByCallingCode["default"])(countryCallingCode, { + nationalNumber, + metadata + }); + if (exactCountry) { + country2 = exactCountry; + if (exactCountry === "001") { + } else { + metadata.selectNumberingPlan(country2); + } + } + return { + country: country2, + countryCallingCode, + countryCallingCodeSource, + nationalNumber, + carrierCode + }; + } + __name(parsePhoneNumber, "parsePhoneNumber"); + } +}); + +// node_modules/libphonenumber-js/build/parsePhoneNumberWithError_.js +var require_parsePhoneNumberWithError = __commonJS({ + "node_modules/libphonenumber-js/build/parsePhoneNumberWithError_.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = parsePhoneNumberWithError; + var _parse = _interopRequireDefault(require_parse()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function parsePhoneNumberWithError(text, options, metadata) { + return (0, _parse["default"])(text, _objectSpread(_objectSpread({}, options), {}, { + v2: true + }), metadata); + } + __name(parsePhoneNumberWithError, "parsePhoneNumberWithError"); + } +}); + +// node_modules/libphonenumber-js/build/parsePhoneNumber_.js +var require_parsePhoneNumber = __commonJS({ + "node_modules/libphonenumber-js/build/parsePhoneNumber_.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = parsePhoneNumber; + var _parsePhoneNumberWithError_ = _interopRequireDefault(require_parsePhoneNumberWithError()); + var _ParseError = _interopRequireDefault(require_ParseError()); + var _metadata = require_metadata(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function parsePhoneNumber(text, options, metadata) { + if (options && options.defaultCountry && !(0, _metadata.isSupportedCountry)(options.defaultCountry, metadata)) { + options = _objectSpread(_objectSpread({}, options), {}, { + defaultCountry: void 0 + }); + } + try { + return (0, _parsePhoneNumberWithError_["default"])(text, options, metadata); + } catch (error) { + if (error instanceof _ParseError["default"]) { + } else { + throw error; + } + } + } + __name(parsePhoneNumber, "parsePhoneNumber"); + } +}); + +// node_modules/libphonenumber-js/build/parsePhoneNumber.js +var require_parsePhoneNumber2 = __commonJS({ + "node_modules/libphonenumber-js/build/parsePhoneNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = parsePhoneNumber; + var _normalizeArguments2 = _interopRequireDefault(require_normalizeArguments()); + var _parsePhoneNumber_ = _interopRequireDefault(require_parsePhoneNumber()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function parsePhoneNumber() { + var _normalizeArguments = (0, _normalizeArguments2["default"])(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata = _normalizeArguments.metadata; + return (0, _parsePhoneNumber_["default"])(text, options, metadata); + } + __name(parsePhoneNumber, "parsePhoneNumber"); + } +}); + +// node_modules/libphonenumber-js/build/parsePhoneNumberWithError.js +var require_parsePhoneNumberWithError2 = __commonJS({ + "node_modules/libphonenumber-js/build/parsePhoneNumberWithError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = parsePhoneNumberWithError; + var _parsePhoneNumberWithError_ = _interopRequireDefault(require_parsePhoneNumberWithError()); + var _normalizeArguments2 = _interopRequireDefault(require_normalizeArguments()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function parsePhoneNumberWithError() { + var _normalizeArguments = (0, _normalizeArguments2["default"])(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata = _normalizeArguments.metadata; + return (0, _parsePhoneNumberWithError_["default"])(text, options, metadata); + } + __name(parsePhoneNumberWithError, "parsePhoneNumberWithError"); + } +}); + +// node_modules/libphonenumber-js/build/isValidPhoneNumber.js +var require_isValidPhoneNumber = __commonJS({ + "node_modules/libphonenumber-js/build/isValidPhoneNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = isValidPhoneNumber; + var _normalizeArguments2 = _interopRequireDefault(require_normalizeArguments()); + var _parsePhoneNumber_ = _interopRequireDefault(require_parsePhoneNumber()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function isValidPhoneNumber() { + var _normalizeArguments = (0, _normalizeArguments2["default"])(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata = _normalizeArguments.metadata; + options = _objectSpread(_objectSpread({}, options), {}, { + extract: false + }); + var phoneNumber = (0, _parsePhoneNumber_["default"])(text, options, metadata); + return phoneNumber && phoneNumber.isValid() || false; + } + __name(isValidPhoneNumber, "isValidPhoneNumber"); + } +}); + +// node_modules/libphonenumber-js/build/isPossiblePhoneNumber.js +var require_isPossiblePhoneNumber = __commonJS({ + "node_modules/libphonenumber-js/build/isPossiblePhoneNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = isPossiblePhoneNumber; + var _normalizeArguments2 = _interopRequireDefault(require_normalizeArguments()); + var _parsePhoneNumber_ = _interopRequireDefault(require_parsePhoneNumber()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function isPossiblePhoneNumber() { + var _normalizeArguments = (0, _normalizeArguments2["default"])(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata = _normalizeArguments.metadata; + options = _objectSpread(_objectSpread({}, options), {}, { + extract: false + }); + var phoneNumber = (0, _parsePhoneNumber_["default"])(text, options, metadata); + return phoneNumber && phoneNumber.isPossible() || false; + } + __name(isPossiblePhoneNumber, "isPossiblePhoneNumber"); + } +}); + +// node_modules/libphonenumber-js/build/validatePhoneNumberLength.js +var require_validatePhoneNumberLength = __commonJS({ + "node_modules/libphonenumber-js/build/validatePhoneNumberLength.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = validatePhoneNumberLength; + var _normalizeArguments2 = _interopRequireDefault(require_normalizeArguments()); + var _parsePhoneNumberWithError_ = _interopRequireDefault(require_parsePhoneNumberWithError()); + var _ParseError = _interopRequireDefault(require_ParseError()); + var _metadata = _interopRequireDefault(require_metadata()); + var _checkNumberLength = _interopRequireDefault(require_checkNumberLength()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function validatePhoneNumberLength() { + var _normalizeArguments = (0, _normalizeArguments2["default"])(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata = _normalizeArguments.metadata; + options = _objectSpread(_objectSpread({}, options), {}, { + extract: false + }); + try { + var phoneNumber = (0, _parsePhoneNumberWithError_["default"])(text, options, metadata); + var metadataInstance = new _metadata["default"](metadata); + metadataInstance.selectNumberingPlan(phoneNumber.country || phoneNumber.countryCallingCode); + var result = (0, _checkNumberLength["default"])(phoneNumber.nationalNumber, void 0, metadataInstance); + if (result !== "IS_POSSIBLE") { + return result; + } + } catch (error) { + if (error instanceof _ParseError["default"]) { + return error.message; + } else { + throw error; + } + } + } + __name(validatePhoneNumberLength, "validatePhoneNumberLength"); + } +}); + +// node_modules/libphonenumber-js/build/findNumbers/LRUCache.js +var require_LRUCache = __commonJS({ + "node_modules/libphonenumber-js/build/findNumbers/LRUCache.js"(exports2) { + "use strict"; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + var Node = /* @__PURE__ */ _createClass(/* @__PURE__ */ __name(function Node2(key, value) { + var next = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null; + var prev = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null; + _classCallCheck(this, Node2); + this.key = key; + this.value = value; + this.next = next; + this.prev = prev; + }, "Node")); + var LRUCache = exports2["default"] = /* @__PURE__ */ (function() { + function LRUCache2() { + var limit = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 10; + _classCallCheck(this, LRUCache2); + this.size = 0; + this.limit = limit; + this.head = null; + this.tail = null; + this.cache = {}; + } + __name(LRUCache2, "LRUCache"); + return _createClass(LRUCache2, [{ + key: "put", + value: /* @__PURE__ */ __name(function put(key, value) { + this.ensureLimit(); + if (!this.head) { + this.head = this.tail = new Node(key, value); + } else { + var node = new Node(key, value, this.head); + this.head.prev = node; + this.head = node; + } + this.cache[key] = this.head; + this.size++; + }, "put") + // Read from cache map and make that node as new Head of LinkedList + }, { + key: "get", + value: /* @__PURE__ */ __name(function get(key) { + if (this.cache[key]) { + var value = this.cache[key].value; + this.remove(key); + this.put(key, value); + return value; + } + console.log("Item not available in cache for key ".concat(key)); + }, "get") + }, { + key: "ensureLimit", + value: /* @__PURE__ */ __name(function ensureLimit() { + if (this.size === this.limit) { + this.remove(this.tail.key); + } + }, "ensureLimit") + }, { + key: "remove", + value: /* @__PURE__ */ __name(function remove(key) { + var node = this.cache[key]; + if (node.prev !== null) { + node.prev.next = node.next; + } else { + this.head = node.next; + } + if (node.next !== null) { + node.next.prev = node.prev; + } else { + this.tail = node.prev; + } + delete this.cache[key]; + this.size--; + }, "remove") + }, { + key: "clear", + value: /* @__PURE__ */ __name(function clear() { + this.head = null; + this.tail = null; + this.size = 0; + this.cache = {}; + }, "clear") + // // Invokes the callback function with every node of the chain and the index of the node. + // forEach(fn) { + // let node = this.head; + // let counter = 0; + // while (node) { + // fn(node, counter); + // node = node.next; + // counter++; + // } + // } + // // To iterate over LRU with a 'for...of' loop + // *[Symbol.iterator]() { + // let node = this.head; + // while (node) { + // yield node; + // node = node.next; + // } + // } + }]); + })(); + } +}); + +// node_modules/libphonenumber-js/build/findNumbers/RegExpCache.js +var require_RegExpCache = __commonJS({ + "node_modules/libphonenumber-js/build/findNumbers/RegExpCache.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + var _LRUCache = _interopRequireDefault(require_LRUCache()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var RegExpCache = exports2["default"] = /* @__PURE__ */ (function() { + function RegExpCache2(size) { + _classCallCheck(this, RegExpCache2); + this.cache = new _LRUCache["default"](size); + } + __name(RegExpCache2, "RegExpCache"); + return _createClass(RegExpCache2, [{ + key: "getPatternForRegExp", + value: /* @__PURE__ */ __name(function getPatternForRegExp(pattern) { + var regExp = this.cache.get(pattern); + if (!regExp) { + regExp = new RegExp("^" + pattern); + this.cache.put(pattern, regExp); + } + return regExp; + }, "getPatternForRegExp") + }]); + })(); + } +}); + +// node_modules/libphonenumber-js/build/findNumbers/util.js +var require_util = __commonJS({ + "node_modules/libphonenumber-js/build/findNumbers/util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.endsWith = endsWith; + exports2.limit = limit; + exports2.startsWith = startsWith; + exports2.trimAfterFirstMatch = trimAfterFirstMatch; + function limit(lower, upper) { + if (lower < 0 || upper <= 0 || upper < lower) { + throw new TypeError(); + } + return "{".concat(lower, ",").concat(upper, "}"); + } + __name(limit, "limit"); + function trimAfterFirstMatch(regexp, string) { + var index = string.search(regexp); + if (index >= 0) { + return string.slice(0, index); + } + return string; + } + __name(trimAfterFirstMatch, "trimAfterFirstMatch"); + function startsWith(string, substring) { + return string.indexOf(substring) === 0; + } + __name(startsWith, "startsWith"); + function endsWith(string, substring) { + return string.indexOf(substring, string.length - substring.length) === string.length - substring.length; + } + __name(endsWith, "endsWith"); + } +}); + +// node_modules/libphonenumber-js/build/findNumbers/utf-8.js +var require_utf_8 = __commonJS({ + "node_modules/libphonenumber-js/build/findNumbers/utf-8.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2._pN = exports2._pL = exports2.PZ = void 0; + exports2.isInvalidPunctuationSymbol = isInvalidPunctuationSymbol; + exports2.isLatinLetter = isLatinLetter; + exports2.pZ = exports2.pNd = void 0; + var _pZ = " \xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000"; + var pZ = exports2.pZ = "[".concat(_pZ, "]"); + var PZ = exports2.PZ = "[^".concat(_pZ, "]"); + var _pN = exports2._pN = "0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D66-\u0D75\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19"; + var _pNd = "0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19"; + var pNd = exports2.pNd = "[".concat(_pNd, "]"); + var _pL = exports2._pL = "A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"; + var pL = "[".concat(_pL, "]"); + var pL_regexp = new RegExp(pL); + var _pSc = "$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20B9\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6"; + var pSc = "[".concat(_pSc, "]"); + var pSc_regexp = new RegExp(pSc); + var _pMn = "\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u08FE\u0900-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1DC0-\u1DE6\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE26"; + var pMn = "[".concat(_pMn, "]"); + var pMn_regexp = new RegExp(pMn); + var _InBasic_Latin = "\0-\x7F"; + var _InLatin_1_Supplement = "\x80-\xFF"; + var _InLatin_Extended_A = "\u0100-\u017F"; + var _InLatin_Extended_Additional = "\u1E00-\u1EFF"; + var _InLatin_Extended_B = "\u0180-\u024F"; + var _InCombining_Diacritical_Marks = "\u0300-\u036F"; + var latinLetterRegexp = new RegExp("[" + _InBasic_Latin + _InLatin_1_Supplement + _InLatin_Extended_A + _InLatin_Extended_Additional + _InLatin_Extended_B + _InCombining_Diacritical_Marks + "]"); + function isLatinLetter(letter) { + if (!pL_regexp.test(letter) && !pMn_regexp.test(letter)) { + return false; + } + return latinLetterRegexp.test(letter); + } + __name(isLatinLetter, "isLatinLetter"); + function isInvalidPunctuationSymbol(character) { + return character === "%" || pSc_regexp.test(character); + } + __name(isInvalidPunctuationSymbol, "isInvalidPunctuationSymbol"); + } +}); + +// node_modules/libphonenumber-js/build/findNumbers/matchPhoneNumberStringAgainstPhoneNumber.js +var require_matchPhoneNumberStringAgainstPhoneNumber = __commonJS({ + "node_modules/libphonenumber-js/build/findNumbers/matchPhoneNumberStringAgainstPhoneNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = matchPhoneNumberStringAgainstPhoneNumber; + var _parsePhoneNumber = _interopRequireDefault(require_parsePhoneNumber2()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function matchPhoneNumberStringAgainstPhoneNumber(phoneNumberString, phoneNumber, metadata) { + var phoneNumberStringContainsCallingCode = true; + var parsedPhoneNumber = (0, _parsePhoneNumber["default"])(phoneNumberString, metadata); + if (!parsedPhoneNumber) { + phoneNumberStringContainsCallingCode = false; + parsedPhoneNumber = (0, _parsePhoneNumber["default"])(phoneNumberString, { + defaultCallingCode: phoneNumber.countryCallingCode + }, metadata); + } + if (!parsedPhoneNumber) { + return "INVALID_NUMBER"; + } + if (phoneNumber.ext) { + if (parsedPhoneNumber.ext !== phoneNumber.ext) { + return "NO_MATCH"; + } + } else { + if (parsedPhoneNumber.ext) { + return "NO_MATCH"; + } + } + if (phoneNumberStringContainsCallingCode) { + if (phoneNumber.countryCallingCode !== parsedPhoneNumber.countryCallingCode) { + return "NO_MATCH"; + } + } + if (phoneNumber.number === parsedPhoneNumber.number) { + if (phoneNumberStringContainsCallingCode) { + return "EXACT_MATCH"; + } else { + return "NSN_MATCH"; + } + } + if (phoneNumber.nationalNumber.indexOf(parsedPhoneNumber.nationalNumber) === 0 || parsedPhoneNumber.nationalNumber.indexOf(phoneNumber.nationalNumber) === 0) { + return "SHORT_NSN_MATCH"; + } + return "NO_MATCH"; + } + __name(matchPhoneNumberStringAgainstPhoneNumber, "matchPhoneNumberStringAgainstPhoneNumber"); + } +}); + +// node_modules/libphonenumber-js/build/findNumbers/Leniency.js +var require_Leniency = __commonJS({ + "node_modules/libphonenumber-js/build/findNumbers/Leniency.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.containsMoreThanOneSlashInNationalNumber = containsMoreThanOneSlashInNationalNumber; + exports2["default"] = void 0; + var _parseDigits = _interopRequireDefault(require_parseDigits()); + var _matchPhoneNumberStringAgainstPhoneNumber = _interopRequireDefault(require_matchPhoneNumberStringAgainstPhoneNumber()); + var _metadata2 = _interopRequireDefault(require_metadata()); + var _getCountryByCallingCode = _interopRequireDefault(require_getCountryByCallingCode()); + var _format = require_format(); + var _util = require_util(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + var _default = exports2["default"] = { + /** + * Phone numbers accepted are "possible", but not necessarily "valid". + */ + POSSIBLE: /* @__PURE__ */ __name(function POSSIBLE(phoneNumber, _ref) { + var candidate = _ref.candidate, metadata = _ref.metadata; + return true; + }, "POSSIBLE"), + /** + * Phone numbers accepted are "possible" and "valid". + * Numbers written in national format must have their national-prefix + * present if it is usually written for a number of this type. + */ + VALID: /* @__PURE__ */ __name(function VALID(phoneNumber, _ref2) { + var candidate = _ref2.candidate, defaultCountry = _ref2.defaultCountry, metadata = _ref2.metadata; + if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata)) { + return false; + } + return true; + }, "VALID"), + /** + * Phone numbers accepted are "valid" and + * are grouped in a possible way for this locale. For example, a US number written as + * "65 02 53 00 00" and "650253 0000" are not accepted at this leniency level, whereas + * "650 253 0000", "650 2530000" or "6502530000" are. + * Numbers with more than one '/' symbol in the national significant number + * are also dropped at this level. + * + * Warning: This level might result in lower coverage especially for regions outside of + * country code "+1". If you are not sure about which level to use, + * email the discussion group libphonenumber-discuss@googlegroups.com. + */ + STRICT_GROUPING: /* @__PURE__ */ __name(function STRICT_GROUPING(phoneNumber, _ref3) { + var candidate = _ref3.candidate, defaultCountry = _ref3.defaultCountry, metadata = _ref3.metadata, regExpCache = _ref3.regExpCache; + if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata) || containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) || !isNationalPrefixPresentIfRequired(phoneNumber, { + defaultCountry, + metadata + })) { + return false; + } + return checkNumberGroupingIsValid(phoneNumber, candidate, metadata, allNumberGroupsRemainGrouped, regExpCache); + }, "STRICT_GROUPING"), + /** + * Phone numbers accepted are "valid" and are grouped in the same way + * that we would have formatted it, or as a single block. + * For example, a US number written as "650 2530000" is not accepted + * at this leniency level, whereas "650 253 0000" or "6502530000" are. + * Numbers with more than one '/' symbol are also dropped at this level. + * + * Warning: This level might result in lower coverage especially for regions outside of + * country code "+1". If you are not sure about which level to use, email the discussion group + * libphonenumber-discuss@googlegroups.com. + */ + EXACT_GROUPING: /* @__PURE__ */ __name(function EXACT_GROUPING(phoneNumber, _ref4) { + var candidate = _ref4.candidate, defaultCountry = _ref4.defaultCountry, metadata = _ref4.metadata, regExpCache = _ref4.regExpCache; + if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata) || containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) || !isNationalPrefixPresentIfRequired(phoneNumber, { + defaultCountry, + metadata + })) { + return false; + } + return checkNumberGroupingIsValid(phoneNumber, candidate, metadata, allNumberGroupsAreExactlyPresent, regExpCache); + }, "EXACT_GROUPING") + }; + function containsOnlyValidXChars(phoneNumber, candidate, metadata) { + for (var index = 0; index < candidate.length - 1; index++) { + var charAtIndex = candidate.charAt(index); + if (charAtIndex === "x" || charAtIndex === "X") { + var charAtNextIndex = candidate.charAt(index + 1); + if (charAtNextIndex === "x" || charAtNextIndex === "X") { + index++; + if ((0, _matchPhoneNumberStringAgainstPhoneNumber["default"])(candidate.substring(index), phoneNumber, metadata) !== "NSN_MATCH") { + return false; + } + } else { + var ext = (0, _parseDigits["default"])(candidate.substring(index)); + if (ext) { + if (phoneNumber.ext !== ext) { + return false; + } + } else { + if (phoneNumber.ext) { + return false; + } + } + } + } + } + return true; + } + __name(containsOnlyValidXChars, "containsOnlyValidXChars"); + function isNationalPrefixPresentIfRequired(phoneNumber, _ref5) { + var defaultCountry = _ref5.defaultCountry, _metadata = _ref5.metadata; + if (phoneNumber.__countryCallingCodeSource !== "FROM_DEFAULT_COUNTRY") { + return true; + } + var metadata = new _metadata2["default"](_metadata); + metadata.selectNumberingPlan(phoneNumber.countryCallingCode); + var phoneNumberRegion = phoneNumber.country || (0, _getCountryByCallingCode["default"])(phoneNumber.countryCallingCode, { + nationalNumber: phoneNumber.nationalNumber, + metadata + }); + var nationalNumber = phoneNumber.nationalNumber; + var format = (0, _format.chooseFormatForNumber)(metadata.numberingPlan.formats(), nationalNumber); + if (format.nationalPrefixFormattingRule()) { + if (metadata.numberingPlan.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) { + return true; + } + if (!format.usesNationalPrefix()) { + return true; + } + return Boolean(phoneNumber.nationalPrefix); + } + return true; + } + __name(isNationalPrefixPresentIfRequired, "isNationalPrefixPresentIfRequired"); + function containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) { + var firstSlashInBodyIndex = candidate.indexOf("/"); + if (firstSlashInBodyIndex < 0) { + return false; + } + var secondSlashInBodyIndex = candidate.indexOf("/", firstSlashInBodyIndex + 1); + if (secondSlashInBodyIndex < 0) { + return false; + } + var candidateHasCountryCode = phoneNumber.__countryCallingCodeSource === "FROM_NUMBER_WITH_PLUS_SIGN" || phoneNumber.__countryCallingCodeSource === "FROM_NUMBER_WITHOUT_PLUS_SIGN"; + if (candidateHasCountryCode && (0, _parseDigits["default"])(candidate.substring(0, firstSlashInBodyIndex)) === phoneNumber.countryCallingCode) { + return candidate.slice(secondSlashInBodyIndex + 1).indexOf("/") >= 0; + } + return true; + } + __name(containsMoreThanOneSlashInNationalNumber, "containsMoreThanOneSlashInNationalNumber"); + function checkNumberGroupingIsValid(number, candidate, metadata, checkGroups, regExpCache) { + throw new Error("This part of code hasn't been ported"); + var normalizedCandidate = normalizeDigits( + candidate, + true + /* keep non-digits */ + ); + var formattedNumberGroups = getNationalNumberGroups(metadata, number, null); + if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) { + return true; + } + var alternateFormats = MetadataManager.getAlternateFormatsForCountry(number.getCountryCode()); + var nationalSignificantNumber = util.getNationalSignificantNumber(number); + if (alternateFormats) { + for (var _iterator = _createForOfIteratorHelperLoose(alternateFormats.numberFormats()), _step; !(_step = _iterator()).done; ) { + var alternateFormat = _step.value; + if (alternateFormat.leadingDigitsPatterns().length > 0) { + var leadingDigitsRegExp = regExpCache.getPatternForRegExp("^" + alternateFormat.leadingDigitsPatterns()[0]); + if (!leadingDigitsRegExp.test(nationalSignificantNumber)) { + continue; + } + } + formattedNumberGroups = getNationalNumberGroups(metadata, number, alternateFormat); + if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) { + return true; + } + } + } + return false; + } + __name(checkNumberGroupingIsValid, "checkNumberGroupingIsValid"); + function getNationalNumberGroups(metadata, number, formattingPattern) { + throw new Error("This part of code hasn't been ported"); + if (formattingPattern) { + var nationalSignificantNumber = util.getNationalSignificantNumber(number); + return util.formatNsnUsingPattern(nationalSignificantNumber, formattingPattern, "RFC3966", metadata).split("-"); + } + var rfc3966Format = formatNumber(number, "RFC3966", metadata); + var endIndex = rfc3966Format.indexOf(";"); + if (endIndex < 0) { + endIndex = rfc3966Format.length; + } + var startIndex = rfc3966Format.indexOf("-") + 1; + return rfc3966Format.slice(startIndex, endIndex).split("-"); + } + __name(getNationalNumberGroups, "getNationalNumberGroups"); + function allNumberGroupsAreExactlyPresent(metadata, number, normalizedCandidate, formattedNumberGroups) { + throw new Error("This part of code hasn't been ported"); + var candidateGroups = normalizedCandidate.split(NON_DIGITS_PATTERN); + var candidateNumberGroupIndex = number.hasExtension() ? candidateGroups.length - 2 : candidateGroups.length - 1; + if (candidateGroups.length == 1 || candidateGroups[candidateNumberGroupIndex].contains(util.getNationalSignificantNumber(number))) { + return true; + } + var formattedNumberGroupIndex = formattedNumberGroups.length - 1; + while (formattedNumberGroupIndex > 0 && candidateNumberGroupIndex >= 0) { + if (candidateGroups[candidateNumberGroupIndex] !== formattedNumberGroups[formattedNumberGroupIndex]) { + return false; + } + formattedNumberGroupIndex--; + candidateNumberGroupIndex--; + } + return candidateNumberGroupIndex >= 0 && (0, _util.endsWith)(candidateGroups[candidateNumberGroupIndex], formattedNumberGroups[0]); + } + __name(allNumberGroupsAreExactlyPresent, "allNumberGroupsAreExactlyPresent"); + function allNumberGroupsRemainGrouped(metadata, number, normalizedCandidate, formattedNumberGroups) { + throw new Error("This part of code hasn't been ported"); + var fromIndex = 0; + if (number.getCountryCodeSource() !== CountryCodeSource.FROM_DEFAULT_COUNTRY) { + var countryCode = String(number.getCountryCode()); + fromIndex = normalizedCandidate.indexOf(countryCode) + countryCode.length(); + } + for (var i = 0; i < formattedNumberGroups.length; i++) { + fromIndex = normalizedCandidate.indexOf(formattedNumberGroups[i], fromIndex); + if (fromIndex < 0) { + return false; + } + fromIndex += formattedNumberGroups[i].length(); + if (i == 0 && fromIndex < normalizedCandidate.length()) { + var region = util.getRegionCodeForCountryCode(number.getCountryCode()); + if (util.getNddPrefixForRegion(region, true) != null && Character.isDigit(normalizedCandidate.charAt(fromIndex))) { + var nationalSignificantNumber = util.getNationalSignificantNumber(number); + return (0, _util.startsWith)(normalizedCandidate.slice(fromIndex - formattedNumberGroups[i].length), nationalSignificantNumber); + } + } + } + return normalizedCandidate.slice(fromIndex).contains(number.getExtension()); + } + __name(allNumberGroupsRemainGrouped, "allNumberGroupsRemainGrouped"); + } +}); + +// node_modules/libphonenumber-js/build/findNumbers/parsePreCandidate.js +var require_parsePreCandidate = __commonJS({ + "node_modules/libphonenumber-js/build/findNumbers/parsePreCandidate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = parsePreCandidate; + var _util = require_util(); + var SECOND_NUMBER_START_PATTERN = /[\\/] *x/; + function parsePreCandidate(candidate) { + return (0, _util.trimAfterFirstMatch)(SECOND_NUMBER_START_PATTERN, candidate); + } + __name(parsePreCandidate, "parsePreCandidate"); + } +}); + +// node_modules/libphonenumber-js/build/findNumbers/isValidPreCandidate.js +var require_isValidPreCandidate = __commonJS({ + "node_modules/libphonenumber-js/build/findNumbers/isValidPreCandidate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = isValidPreCandidate; + var SLASH_SEPARATED_DATES = /(?:(?:[0-3]?\d\/[01]?\d)|(?:[01]?\d\/[0-3]?\d))\/(?:[12]\d)?\d{2}/; + var TIME_STAMPS = /[12]\d{3}[-/]?[01]\d[-/]?[0-3]\d +[0-2]\d$/; + var TIME_STAMPS_SUFFIX_LEADING = /^:[0-5]\d/; + function isValidPreCandidate(candidate, offset, text) { + if (SLASH_SEPARATED_DATES.test(candidate)) { + return false; + } + if (TIME_STAMPS.test(candidate)) { + var followingText = text.slice(offset + candidate.length); + if (TIME_STAMPS_SUFFIX_LEADING.test(followingText)) { + return false; + } + } + return true; + } + __name(isValidPreCandidate, "isValidPreCandidate"); + } +}); + +// node_modules/libphonenumber-js/build/findNumbers/isValidCandidate.js +var require_isValidCandidate = __commonJS({ + "node_modules/libphonenumber-js/build/findNumbers/isValidCandidate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.LEAD_CLASS = void 0; + exports2["default"] = isValidCandidate; + var _constants = require_constants4(); + var _util = require_util(); + var _utf = require_utf_8(); + var OPENING_PARENS = "(\\[\uFF08\uFF3B"; + var CLOSING_PARENS = ")\\]\uFF09\uFF3D"; + var NON_PARENS = "[^".concat(OPENING_PARENS).concat(CLOSING_PARENS, "]"); + var LEAD_CLASS = exports2.LEAD_CLASS = "[".concat(OPENING_PARENS).concat(_constants.PLUS_CHARS, "]"); + var LEAD_CLASS_LEADING = new RegExp("^" + LEAD_CLASS); + var BRACKET_PAIR_LIMIT = (0, _util.limit)(0, 3); + var MATCHING_BRACKETS_ENTIRE = new RegExp("^(?:[" + OPENING_PARENS + "])?(?:" + NON_PARENS + "+[" + CLOSING_PARENS + "])?" + NON_PARENS + "+(?:[" + OPENING_PARENS + "]" + NON_PARENS + "+[" + CLOSING_PARENS + "])" + BRACKET_PAIR_LIMIT + NON_PARENS + "*$"); + var PUB_PAGES = /\d{1,5}-+\d{1,5}\s{0,4}\(\d{1,4}/; + function isValidCandidate(candidate, offset, text, leniency) { + if (!MATCHING_BRACKETS_ENTIRE.test(candidate) || PUB_PAGES.test(candidate)) { + return; + } + if (leniency !== "POSSIBLE") { + if (offset > 0 && !LEAD_CLASS_LEADING.test(candidate)) { + var previousChar = text[offset - 1]; + if ((0, _utf.isInvalidPunctuationSymbol)(previousChar) || (0, _utf.isLatinLetter)(previousChar)) { + return false; + } + } + var lastCharIndex = offset + candidate.length; + if (lastCharIndex < text.length) { + var nextChar = text[lastCharIndex]; + if ((0, _utf.isInvalidPunctuationSymbol)(nextChar) || (0, _utf.isLatinLetter)(nextChar)) { + return false; + } + } + } + return true; + } + __name(isValidCandidate, "isValidCandidate"); + } +}); + +// node_modules/libphonenumber-js/build/PhoneNumberMatcher.js +var require_PhoneNumberMatcher = __commonJS({ + "node_modules/libphonenumber-js/build/PhoneNumberMatcher.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + var _constants = require_constants4(); + var _createExtensionPattern = _interopRequireDefault(require_createExtensionPattern()); + var _RegExpCache = _interopRequireDefault(require_RegExpCache()); + var _util = require_util(); + var _utf = require_utf_8(); + var _Leniency = _interopRequireDefault(require_Leniency()); + var _parsePreCandidate = _interopRequireDefault(require_parsePreCandidate()); + var _isValidPreCandidate = _interopRequireDefault(require_isValidPreCandidate()); + var _isValidCandidate = _interopRequireWildcard(require_isValidCandidate()); + var _metadata = require_metadata(); + var _parsePhoneNumber = _interopRequireDefault(require_parsePhoneNumber2()); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, "default": e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; + var EXTN_PATTERNS_FOR_MATCHING = (0, _createExtensionPattern["default"])("matching"); + var INNER_MATCHES = [ + // Breaks on the slash - e.g. "651-234-2345/332-445-1234" + "/+(.*)", + // Note that the bracket here is inside the capturing group, since we consider it part of the + // phone number. Will match a pattern like "(650) 223 3345 (754) 223 3321". + "(\\([^(]*)", + // Breaks on a hyphen - e.g. "12345 - 332-445-1234 is my number." + // We require a space on either side of the hyphen for it to be considered a separator. + "(?:".concat(_utf.pZ, "-|-").concat(_utf.pZ, ")").concat(_utf.pZ, "*(.+)"), + // Various types of wide hyphens. Note we have decided not to enforce a space here, since it's + // possible that it's supposed to be used to break two numbers without spaces, and we haven't + // seen many instances of it used within a number. + "[\u2012-\u2015\uFF0D]".concat(_utf.pZ, "*(.+)"), + // Breaks on a full stop - e.g. "12345. 332-445-1234 is my number." + "\\.+".concat(_utf.pZ, "*([^.]+)"), + // Breaks on space - e.g. "3324451234 8002341234" + "".concat(_utf.pZ, "+(").concat(_utf.PZ, "+)") + ]; + var leadLimit = (0, _util.limit)(0, 2); + var punctuationLimit = (0, _util.limit)(0, 4); + var digitBlockLimit = _constants.MAX_LENGTH_FOR_NSN + _constants.MAX_LENGTH_COUNTRY_CODE; + var blockLimit = (0, _util.limit)(0, digitBlockLimit); + var punctuation = "[".concat(_constants.VALID_PUNCTUATION, "]") + punctuationLimit; + var digitSequence = _utf.pNd + (0, _util.limit)(1, digitBlockLimit); + var PATTERN = "(?:" + _isValidCandidate.LEAD_CLASS + punctuation + ")" + leadLimit + digitSequence + "(?:" + punctuation + digitSequence + ")" + blockLimit + "(?:" + EXTN_PATTERNS_FOR_MATCHING + ")?"; + var UNWANTED_END_CHAR_PATTERN = new RegExp("[^".concat(_utf._pN).concat(_utf._pL, "#]+$")); + var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1; + var PhoneNumberMatcher = exports2["default"] = /* @__PURE__ */ (function() { + function PhoneNumberMatcher2() { + var text = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ""; + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + var metadata = arguments.length > 2 ? arguments[2] : void 0; + _classCallCheck(this, PhoneNumberMatcher2); + options = { + v2: options.v2, + defaultCallingCode: options.defaultCallingCode, + defaultCountry: options.defaultCountry && (0, _metadata.isSupportedCountry)(options.defaultCountry, metadata) ? options.defaultCountry : void 0, + // Here it should've assigned a default value only if `options.leniency === undefined`. + leniency: options.leniency || (options.extended ? "POSSIBLE" : "VALID"), + // Here it should've assigned a default value only if `options.maxTries === undefined`. + maxTries: options.maxTries || MAX_SAFE_INTEGER + }; + if (!_Leniency["default"][options.leniency]) { + throw new TypeError('Unknown leniency: "'.concat(options.leniency, '"')); + } + if (options.leniency !== "POSSIBLE" && options.leniency !== "VALID") { + throw new TypeError('Invalid `leniency`: "'.concat(options.leniency, '". Supported values: "POSSIBLE", "VALID".')); + } + if (options.maxTries < 0) { + throw new TypeError("`maxTries` must be `>= 0`"); + } + this.text = text; + this.options = options; + this.metadata = metadata; + this.leniency = _Leniency["default"][options.leniency]; + this.maxTries = options.maxTries; + this.PATTERN = new RegExp(PATTERN, "ig"); + this.INNER_MATCHES = INNER_MATCHES.map(function(pattern) { + return new RegExp(pattern, "g"); + }); + this.state = "NOT_READY"; + this.searchIndex = 0; + this.regExpCache = new _RegExpCache["default"](32); + } + __name(PhoneNumberMatcher2, "PhoneNumberMatcher"); + return _createClass(PhoneNumberMatcher2, [{ + key: "find", + value: /* @__PURE__ */ __name(function find(index) { + this.PATTERN.lastIndex = index; + var matches; + while (this.maxTries > 0 && (matches = this.PATTERN.exec(this.text)) !== null) { + var candidate = matches[0]; + var offset = matches.index; + candidate = (0, _parsePreCandidate["default"])(candidate); + if ((0, _isValidPreCandidate["default"])(candidate, offset, this.text)) { + var match = ( + // Try to come up with a valid match given the entire candidate. + this.parseAndVerify(candidate, offset, this.text) || this.extractInnerMatch(candidate, offset, this.text) + ); + if (match) { + if (this.options.v2) { + return { + startsAt: match.startsAt, + endsAt: match.endsAt, + number: match.phoneNumber + }; + } else { + var phoneNumber = match.phoneNumber; + var result = { + startsAt: match.startsAt, + endsAt: match.endsAt, + phone: phoneNumber.nationalNumber + }; + if (phoneNumber.country) { + if (USE_NON_GEOGRAPHIC_COUNTRY_CODE && country === "001") { + result.countryCallingCode = phoneNumber.countryCallingCode; + } else { + result.country = phoneNumber.country; + } + } else { + result.countryCallingCode = phoneNumber.countryCallingCode; + } + if (phoneNumber.ext) { + result.ext = phoneNumber.ext; + } + return result; + } + } + } + this.maxTries--; + } + }, "find") + /** + * Attempts to extract a match from `substring` + * if the substring itself does not qualify as a match. + */ + }, { + key: "extractInnerMatch", + value: /* @__PURE__ */ __name(function extractInnerMatch(substring, offset, text) { + for (var _iterator = _createForOfIteratorHelperLoose(this.INNER_MATCHES), _step; !(_step = _iterator()).done; ) { + var innerMatchRegExp = _step.value; + innerMatchRegExp.lastIndex = 0; + var isFirstMatch = true; + var candidateMatch = void 0; + while (this.maxTries > 0 && (candidateMatch = innerMatchRegExp.exec(substring)) !== null) { + if (isFirstMatch) { + var _candidate = (0, _util.trimAfterFirstMatch)(UNWANTED_END_CHAR_PATTERN, substring.slice(0, candidateMatch.index)); + var _match = this.parseAndVerify(_candidate, offset, text); + if (_match) { + return _match; + } + this.maxTries--; + isFirstMatch = false; + } + var candidate = (0, _util.trimAfterFirstMatch)(UNWANTED_END_CHAR_PATTERN, candidateMatch[1]); + var candidateIndexGuess = substring.indexOf(candidate, candidateMatch.index); + var match = this.parseAndVerify(candidate, offset + candidateIndexGuess, text); + if (match) { + return match; + } + this.maxTries--; + } + } + }, "extractInnerMatch") + /** + * Parses a phone number from the `candidate` using `parse` and + * verifies it matches the requested `leniency`. If parsing and verification succeed, + * a corresponding `PhoneNumberMatch` is returned, otherwise this method returns `null`. + * + * @param candidate the candidate match + * @param offset the offset of {@code candidate} within {@link #text} + * @return the parsed and validated phone number match, or null + */ + }, { + key: "parseAndVerify", + value: /* @__PURE__ */ __name(function parseAndVerify(candidate, offset, text) { + if (!(0, _isValidCandidate["default"])(candidate, offset, text, this.options.leniency)) { + return; + } + var phoneNumber = (0, _parsePhoneNumber["default"])(candidate, { + extended: true, + defaultCountry: this.options.defaultCountry, + defaultCallingCode: this.options.defaultCallingCode + }, this.metadata); + if (!phoneNumber) { + return; + } + if (!phoneNumber.isPossible()) { + return; + } + if (this.leniency(phoneNumber, { + candidate, + defaultCountry: this.options.defaultCountry, + metadata: this.metadata, + regExpCache: this.regExpCache + })) { + return { + startsAt: offset, + endsAt: offset + candidate.length, + phoneNumber + }; + } + }, "parseAndVerify") + }, { + key: "hasNext", + value: /* @__PURE__ */ __name(function hasNext() { + if (this.state === "NOT_READY") { + this.lastMatch = this.find(this.searchIndex); + if (this.lastMatch) { + this.searchIndex = this.lastMatch.endsAt; + this.state = "READY"; + } else { + this.state = "DONE"; + } + } + return this.state === "READY"; + }, "hasNext") + }, { + key: "next", + value: /* @__PURE__ */ __name(function next() { + if (!this.hasNext()) { + throw new Error("No next element"); + } + var result = this.lastMatch; + this.lastMatch = null; + this.state = "NOT_READY"; + return result; + }, "next") + }]); + })(); + } +}); + +// node_modules/libphonenumber-js/build/legacy/findNumbers.js +var require_findNumbers = __commonJS({ + "node_modules/libphonenumber-js/build/legacy/findNumbers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = findNumbers; + var _PhoneNumberMatcher = _interopRequireDefault(require_PhoneNumberMatcher()); + var _normalizeArguments2 = _interopRequireDefault(require_normalizeArguments()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function findNumbers() { + var _normalizeArguments = (0, _normalizeArguments2["default"])(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata = _normalizeArguments.metadata; + var matcher = new _PhoneNumberMatcher["default"](text, options, metadata); + var results = []; + while (matcher.hasNext()) { + results.push(matcher.next()); + } + return results; + } + __name(findNumbers, "findNumbers"); + } +}); + +// node_modules/libphonenumber-js/build/legacy/searchNumbers.js +var require_searchNumbers = __commonJS({ + "node_modules/libphonenumber-js/build/legacy/searchNumbers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = searchNumbers; + var _normalizeArguments2 = _interopRequireDefault(require_normalizeArguments()); + var _PhoneNumberMatcher = _interopRequireDefault(require_PhoneNumberMatcher()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function searchNumbers() { + var _normalizeArguments = (0, _normalizeArguments2["default"])(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata = _normalizeArguments.metadata; + var matcher = new _PhoneNumberMatcher["default"](text, options, metadata); + return _defineProperty({}, Symbol.iterator, function() { + return { + next: /* @__PURE__ */ __name(function next() { + if (matcher.hasNext()) { + return { + done: false, + value: matcher.next() + }; + } + return { + done: true + }; + }, "next") + }; + }); + } + __name(searchNumbers, "searchNumbers"); + } +}); + +// node_modules/libphonenumber-js/build/findPhoneNumbersInText.js +var require_findPhoneNumbersInText = __commonJS({ + "node_modules/libphonenumber-js/build/findPhoneNumbersInText.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = findPhoneNumbersInText; + var _PhoneNumberMatcher = _interopRequireDefault(require_PhoneNumberMatcher()); + var _normalizeArguments2 = _interopRequireDefault(require_normalizeArguments()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function findPhoneNumbersInText() { + var _normalizeArguments = (0, _normalizeArguments2["default"])(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata = _normalizeArguments.metadata; + var matcher = new _PhoneNumberMatcher["default"](text, _objectSpread(_objectSpread({}, options), {}, { + v2: true + }), metadata); + var results = []; + while (matcher.hasNext()) { + results.push(matcher.next()); + } + return results; + } + __name(findPhoneNumbersInText, "findPhoneNumbersInText"); + } +}); + +// node_modules/libphonenumber-js/build/searchPhoneNumbersInText.js +var require_searchPhoneNumbersInText = __commonJS({ + "node_modules/libphonenumber-js/build/searchPhoneNumbersInText.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = searchPhoneNumbersInText; + var _PhoneNumberMatcher = _interopRequireDefault(require_PhoneNumberMatcher()); + var _normalizeArguments2 = _interopRequireDefault(require_normalizeArguments()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + function searchPhoneNumbersInText() { + var _normalizeArguments = (0, _normalizeArguments2["default"])(arguments), text = _normalizeArguments.text, options = _normalizeArguments.options, metadata = _normalizeArguments.metadata; + var matcher = new _PhoneNumberMatcher["default"](text, _objectSpread(_objectSpread({}, options), {}, { + v2: true + }), metadata); + return _defineProperty({}, Symbol.iterator, function() { + return { + next: /* @__PURE__ */ __name(function next() { + if (matcher.hasNext()) { + return { + done: false, + value: matcher.next() + }; + } + return { + done: true + }; + }, "next") + }; + }); + } + __name(searchPhoneNumbersInText, "searchPhoneNumbersInText"); + } +}); + +// node_modules/libphonenumber-js/build/AsYouTypeState.js +var require_AsYouTypeState = __commonJS({ + "node_modules/libphonenumber-js/build/AsYouTypeState.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var AsYouTypeState = exports2["default"] = /* @__PURE__ */ (function() { + function AsYouTypeState2(_ref) { + var onCountryChange = _ref.onCountryChange, onCallingCodeChange = _ref.onCallingCodeChange; + _classCallCheck(this, AsYouTypeState2); + this.onCountryChange = onCountryChange; + this.onCallingCodeChange = onCallingCodeChange; + } + __name(AsYouTypeState2, "AsYouTypeState"); + return _createClass(AsYouTypeState2, [{ + key: "reset", + value: /* @__PURE__ */ __name(function reset(_ref2) { + var country2 = _ref2.country, callingCode = _ref2.callingCode; + this.international = false; + this.missingPlus = false; + this.IDDPrefix = void 0; + this.callingCode = void 0; + this.digits = ""; + this.resetNationalSignificantNumber(); + this.initCountryAndCallingCode(country2, callingCode); + }, "reset") + }, { + key: "resetNationalSignificantNumber", + value: /* @__PURE__ */ __name(function resetNationalSignificantNumber() { + this.nationalSignificantNumber = this.getNationalDigits(); + this.nationalSignificantNumberIsModified = false; + this.nationalPrefix = void 0; + this.carrierCode = void 0; + this.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = void 0; + }, "resetNationalSignificantNumber") + }, { + key: "update", + value: /* @__PURE__ */ __name(function update(properties) { + for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) { + var key = _Object$keys[_i]; + this[key] = properties[key]; + } + }, "update") + }, { + key: "initCountryAndCallingCode", + value: /* @__PURE__ */ __name(function initCountryAndCallingCode(country2, callingCode) { + this.setCountry(country2); + this.setCallingCode(callingCode); + }, "initCountryAndCallingCode") + }, { + key: "setCountry", + value: /* @__PURE__ */ __name(function setCountry(country2) { + this.country = country2; + this.onCountryChange(country2); + }, "setCountry") + }, { + key: "setCallingCode", + value: /* @__PURE__ */ __name(function setCallingCode(callingCode) { + this.callingCode = callingCode; + this.onCallingCodeChange(callingCode, this.country); + }, "setCallingCode") + }, { + key: "startInternationalNumber", + value: /* @__PURE__ */ __name(function startInternationalNumber(country2, callingCode) { + this.international = true; + this.initCountryAndCallingCode(country2, callingCode); + }, "startInternationalNumber") + }, { + key: "appendDigits", + value: /* @__PURE__ */ __name(function appendDigits(nextDigits) { + this.digits += nextDigits; + }, "appendDigits") + }, { + key: "appendNationalSignificantNumberDigits", + value: /* @__PURE__ */ __name(function appendNationalSignificantNumberDigits(nextDigits) { + this.nationalSignificantNumber += nextDigits; + }, "appendNationalSignificantNumberDigits") + /** + * Returns the part of `this.digits` that corresponds to the national number. + * Basically, all digits that have been input by the user, except for the + * international prefix and the country calling code part + * (if the number is an international one). + * @return {string} + */ + }, { + key: "getNationalDigits", + value: /* @__PURE__ */ __name(function getNationalDigits() { + if (this.international) { + return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0)); + } + return this.digits; + }, "getNationalDigits") + }, { + key: "getDigitsWithoutInternationalPrefix", + value: /* @__PURE__ */ __name(function getDigitsWithoutInternationalPrefix() { + if (this.international) { + if (this.IDDPrefix) { + return this.digits.slice(this.IDDPrefix.length); + } + } + return this.digits; + }, "getDigitsWithoutInternationalPrefix") + }]); + })(); + } +}); + +// node_modules/libphonenumber-js/build/AsYouTypeFormatter.util.js +var require_AsYouTypeFormatter_util = __commonJS({ + "node_modules/libphonenumber-js/build/AsYouTypeFormatter.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.DIGIT_PLACEHOLDER = void 0; + exports2.closeNonPairedParens = closeNonPairedParens; + exports2.countOccurences = countOccurences; + exports2.cutAndStripNonPairedParens = cutAndStripNonPairedParens; + exports2.populateTemplateWithDigits = populateTemplateWithDigits; + exports2.repeat = repeat; + exports2.stripNonPairedParens = stripNonPairedParens; + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + var DIGIT_PLACEHOLDER = exports2.DIGIT_PLACEHOLDER = "x"; + var DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); + function countOccurences(symbol, string) { + var count = 0; + for (var _iterator = _createForOfIteratorHelperLoose(string.split("")), _step; !(_step = _iterator()).done; ) { + var character = _step.value; + if (character === symbol) { + count++; + } + } + return count; + } + __name(countOccurences, "countOccurences"); + function repeat(string, times) { + if (times < 1) { + return ""; + } + var result = ""; + while (times > 1) { + if (times & 1) { + result += string; + } + times >>= 1; + string += string; + } + return result + string; + } + __name(repeat, "repeat"); + function cutAndStripNonPairedParens(string, cutBeforeIndex) { + if (string[cutBeforeIndex] === ")") { + cutBeforeIndex++; + } + return stripNonPairedParens(string.slice(0, cutBeforeIndex)); + } + __name(cutAndStripNonPairedParens, "cutAndStripNonPairedParens"); + function closeNonPairedParens(template, cut_before) { + var retained_template = template.slice(0, cut_before); + var opening_braces = countOccurences("(", retained_template); + var closing_braces = countOccurences(")", retained_template); + var dangling_braces = opening_braces - closing_braces; + while (dangling_braces > 0 && cut_before < template.length) { + if (template[cut_before] === ")") { + dangling_braces--; + } + cut_before++; + } + return template.slice(0, cut_before); + } + __name(closeNonPairedParens, "closeNonPairedParens"); + function stripNonPairedParens(string) { + var dangling_braces = []; + var i = 0; + while (i < string.length) { + if (string[i] === "(") { + dangling_braces.push(i); + } else if (string[i] === ")") { + dangling_braces.pop(); + } + i++; + } + var start = 0; + var cleared_string = ""; + dangling_braces.push(string.length); + for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) { + var index = _dangling_braces[_i]; + cleared_string += string.slice(start, index); + start = index + 1; + } + return cleared_string; + } + __name(stripNonPairedParens, "stripNonPairedParens"); + function populateTemplateWithDigits(template, position, digits) { + for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split("")), _step2; !(_step2 = _iterator2()).done; ) { + var digit = _step2.value; + if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) { + return; + } + position = template.search(DIGIT_PLACEHOLDER_MATCHER); + template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit); + } + return [template, position]; + } + __name(populateTemplateWithDigits, "populateTemplateWithDigits"); + } +}); + +// node_modules/libphonenumber-js/build/AsYouTypeFormatter.complete.js +var require_AsYouTypeFormatter_complete = __commonJS({ + "node_modules/libphonenumber-js/build/AsYouTypeFormatter.complete.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.canFormatCompleteNumber = canFormatCompleteNumber; + exports2["default"] = formatCompleteNumber; + var _checkNumberLength = _interopRequireDefault(require_checkNumberLength()); + var _parseDigits = _interopRequireDefault(require_parseDigits()); + var _formatNationalNumberUsingFormat = _interopRequireDefault(require_formatNationalNumberUsingFormat()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function formatCompleteNumber(state, format, _ref) { + var metadata = _ref.metadata, shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule, getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix; + var matcher = new RegExp("^(?:".concat(format.pattern(), ")$")); + if (matcher.test(state.nationalSignificantNumber)) { + return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, { + metadata, + shouldTryNationalPrefixFormattingRule, + getSeparatorAfterNationalPrefix + }); + } + } + __name(formatCompleteNumber, "formatCompleteNumber"); + function canFormatCompleteNumber(nationalSignificantNumber, metadata) { + return (0, _checkNumberLength["default"])(nationalSignificantNumber, void 0, metadata) === "IS_POSSIBLE"; + } + __name(canFormatCompleteNumber, "canFormatCompleteNumber"); + function formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) { + var metadata = _ref2.metadata, shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule, getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix; + var nationalSignificantNumber = state.nationalSignificantNumber, international = state.international, nationalPrefix = state.nationalPrefix, carrierCode = state.carrierCode; + if (shouldTryNationalPrefixFormattingRule(format)) { + var formattedNumber = formatNationalNumber(state, format, { + useNationalPrefixFormattingRule: true, + getSeparatorAfterNationalPrefix, + metadata + }); + if (formattedNumber) { + return formattedNumber; + } + } + return formatNationalNumber(state, format, { + useNationalPrefixFormattingRule: false, + getSeparatorAfterNationalPrefix, + metadata + }); + } + __name(formatNationalNumberWithAndWithoutNationalPrefixFormattingRule, "formatNationalNumberWithAndWithoutNationalPrefixFormattingRule"); + function formatNationalNumber(state, format, _ref3) { + var metadata = _ref3.metadata, useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule, getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix; + var formattedNationalNumber = (0, _formatNationalNumberUsingFormat["default"])(state.nationalSignificantNumber, format, { + carrierCode: state.carrierCode, + useInternationalFormat: state.international, + withNationalPrefix: useNationalPrefixFormattingRule, + metadata + }); + if (!useNationalPrefixFormattingRule) { + if (state.nationalPrefix) { + formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber; + } else if (state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) { + formattedNationalNumber = state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix + " " + formattedNationalNumber; + } + } + if (isValidFormattedNationalNumber(formattedNationalNumber, state)) { + return formattedNationalNumber; + } + } + __name(formatNationalNumber, "formatNationalNumber"); + function isValidFormattedNationalNumber(formattedNationalNumber, state) { + return (0, _parseDigits["default"])(formattedNationalNumber) === state.getNationalDigits(); + } + __name(isValidFormattedNationalNumber, "isValidFormattedNationalNumber"); + } +}); + +// node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternParser.js +var require_AsYouTypeFormatter_PatternParser = __commonJS({ + "node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternParser.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var PatternParser = exports2["default"] = /* @__PURE__ */ (function() { + function PatternParser2() { + _classCallCheck(this, PatternParser2); + } + __name(PatternParser2, "PatternParser"); + return _createClass(PatternParser2, [{ + key: "parse", + value: /* @__PURE__ */ __name(function parse(pattern) { + this.context = [{ + or: true, + instructions: [] + }]; + this.parsePattern(pattern); + if (this.context.length !== 1) { + throw new Error("Non-finalized contexts left when pattern parse ended"); + } + var _this$context$ = this.context[0], branches = _this$context$.branches, instructions = _this$context$.instructions; + if (branches) { + return { + op: "|", + args: branches.concat([expandSingleElementArray(instructions)]) + }; + } + if (instructions.length === 0) { + throw new Error("Pattern is required"); + } + if (instructions.length === 1) { + return instructions[0]; + } + return instructions; + }, "parse") + }, { + key: "startContext", + value: /* @__PURE__ */ __name(function startContext(context) { + this.context.push(context); + }, "startContext") + }, { + key: "endContext", + value: /* @__PURE__ */ __name(function endContext() { + this.context.pop(); + }, "endContext") + }, { + key: "getContext", + value: /* @__PURE__ */ __name(function getContext() { + return this.context[this.context.length - 1]; + }, "getContext") + }, { + key: "parsePattern", + value: /* @__PURE__ */ __name(function parsePattern(pattern) { + if (!pattern) { + throw new Error("Pattern is required"); + } + var match = pattern.match(OPERATOR); + if (!match) { + if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) { + throw new Error("Illegal characters found in a pattern: ".concat(pattern)); + } + this.getContext().instructions = this.getContext().instructions.concat(pattern.split("")); + return; + } + var operator = match[1]; + var before = pattern.slice(0, match.index); + var rightPart = pattern.slice(match.index + operator.length); + switch (operator) { + case "(?:": + if (before) { + this.parsePattern(before); + } + this.startContext({ + or: true, + instructions: [], + branches: [] + }); + break; + case ")": + if (!this.getContext().or) { + throw new Error('")" operator must be preceded by "(?:" operator'); + } + if (before) { + this.parsePattern(before); + } + if (this.getContext().instructions.length === 0) { + throw new Error('No instructions found after "|" operator in an "or" group'); + } + var _this$getContext = this.getContext(), branches = _this$getContext.branches; + branches.push(expandSingleElementArray(this.getContext().instructions)); + this.endContext(); + this.getContext().instructions.push({ + op: "|", + args: branches + }); + break; + case "|": + if (!this.getContext().or) { + throw new Error('"|" operator can only be used inside "or" groups'); + } + if (before) { + this.parsePattern(before); + } + if (!this.getContext().branches) { + if (this.context.length === 1) { + this.getContext().branches = []; + } else { + throw new Error('"branches" not found in an "or" group context'); + } + } + this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions)); + this.getContext().instructions = []; + break; + case "[": + if (before) { + this.parsePattern(before); + } + this.startContext({ + oneOfSet: true + }); + break; + case "]": + if (!this.getContext().oneOfSet) { + throw new Error('"]" operator must be preceded by "[" operator'); + } + this.endContext(); + this.getContext().instructions.push({ + op: "[]", + args: parseOneOfSet(before) + }); + break; + /* istanbul ignore next */ + default: + throw new Error("Unknown operator: ".concat(operator)); + } + if (rightPart) { + this.parsePattern(rightPart); + } + }, "parsePattern") + }]); + })(); + function parseOneOfSet(pattern) { + var values = []; + var i = 0; + while (i < pattern.length) { + if (pattern[i] === "-") { + if (i === 0 || i === pattern.length - 1) { + throw new Error("Couldn't parse a one-of set pattern: ".concat(pattern)); + } + var prevValue = pattern[i - 1].charCodeAt(0) + 1; + var nextValue = pattern[i + 1].charCodeAt(0) - 1; + var value = prevValue; + while (value <= nextValue) { + values.push(String.fromCharCode(value)); + value++; + } + } else { + values.push(pattern[i]); + } + i++; + } + return values; + } + __name(parseOneOfSet, "parseOneOfSet"); + var ILLEGAL_CHARACTER_REGEXP = /[\(\)\[\]\?\:\|]/; + var OPERATOR = new RegExp( + // any of: + "(\\||\\(\\?\\:|\\)|\\[|\\])" + ); + function expandSingleElementArray(array) { + if (array.length === 1) { + return array[0]; + } + return array; + } + __name(expandSingleElementArray, "expandSingleElementArray"); + } +}); + +// node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternMatcher.js +var require_AsYouTypeFormatter_PatternMatcher = __commonJS({ + "node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternMatcher.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + var _AsYouTypeFormatterPatternParser = _interopRequireDefault(require_AsYouTypeFormatter_PatternParser()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var PatternMatcher = exports2["default"] = /* @__PURE__ */ (function() { + function PatternMatcher2(pattern) { + _classCallCheck(this, PatternMatcher2); + this.matchTree = new _AsYouTypeFormatterPatternParser["default"]().parse(pattern); + } + __name(PatternMatcher2, "PatternMatcher"); + return _createClass(PatternMatcher2, [{ + key: "match", + value: /* @__PURE__ */ __name(function match(string) { + var _ref = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, allowOverflow = _ref.allowOverflow; + if (!string) { + throw new Error("String is required"); + } + var result = _match(string.split(""), this.matchTree, true); + if (result && result.match) { + delete result.matchedChars; + } + if (result && result.overflow) { + if (!allowOverflow) { + return; + } + } + return result; + }, "match") + }]); + })(); + function _match(characters, tree, last) { + if (typeof tree === "string") { + var characterString = characters.join(""); + if (tree.indexOf(characterString) === 0) { + if (characters.length === tree.length) { + return { + match: true, + matchedChars: characters + }; + } + return { + partialMatch: true + // matchedChars: characters + }; + } + if (characterString.indexOf(tree) === 0) { + if (last) { + if (characters.length > tree.length) { + return { + overflow: true + }; + } + } + return { + match: true, + matchedChars: characters.slice(0, tree.length) + }; + } + return; + } + if (Array.isArray(tree)) { + var restCharacters = characters.slice(); + var i = 0; + while (i < tree.length) { + var subtree = tree[i]; + var result = _match(restCharacters, subtree, last && i === tree.length - 1); + if (!result) { + return; + } else if (result.overflow) { + return result; + } else if (result.match) { + restCharacters = restCharacters.slice(result.matchedChars.length); + if (restCharacters.length === 0) { + if (i === tree.length - 1) { + return { + match: true, + matchedChars: characters + }; + } else { + return { + partialMatch: true + // matchedChars: characters + }; + } + } + } else { + if (result.partialMatch) { + return { + partialMatch: true + // matchedChars: characters + }; + } else { + throw new Error("Unsupported match result:\n".concat(JSON.stringify(result, null, 2))); + } + } + i++; + } + if (last) { + return { + overflow: true + }; + } + return { + match: true, + matchedChars: characters.slice(0, characters.length - restCharacters.length) + }; + } + switch (tree.op) { + case "|": + var partialMatch; + for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done; ) { + var branch = _step.value; + var _result = _match(characters, branch, last); + if (_result) { + if (_result.overflow) { + return _result; + } else if (_result.match) { + return { + match: true, + matchedChars: _result.matchedChars + }; + } else { + if (_result.partialMatch) { + partialMatch = true; + } else { + throw new Error("Unsupported match result:\n".concat(JSON.stringify(_result, null, 2))); + } + } + } + } + if (partialMatch) { + return { + partialMatch: true + // matchedChars: ... + }; + } + return; + case "[]": + for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done; ) { + var _char = _step2.value; + if (characters[0] === _char) { + if (characters.length === 1) { + return { + match: true, + matchedChars: characters + }; + } + if (last) { + return { + overflow: true + }; + } + return { + match: true, + matchedChars: [_char] + }; + } + } + return; + /* istanbul ignore next */ + default: + throw new Error("Unsupported instruction tree: ".concat(tree)); + } + } + __name(_match, "_match"); + } +}); + +// node_modules/libphonenumber-js/build/AsYouTypeFormatter.js +var require_AsYouTypeFormatter = __commonJS({ + "node_modules/libphonenumber-js/build/AsYouTypeFormatter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + Object.defineProperty(exports2, "DIGIT_PLACEHOLDER", { + enumerable: true, + get: /* @__PURE__ */ __name(function get() { + return _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER; + }, "get") + }); + exports2["default"] = void 0; + var _AsYouTypeFormatterUtil = require_AsYouTypeFormatter_util(); + var _AsYouTypeFormatterComplete = _interopRequireWildcard(require_AsYouTypeFormatter_complete()); + var _AsYouTypeFormatterPatternMatcher = _interopRequireDefault(require_AsYouTypeFormatter_PatternMatcher()); + var _parseDigits = _interopRequireDefault(require_parseDigits()); + var _formatNationalNumberUsingFormat = require_formatNationalNumberUsingFormat(); + var _constants = require_constants4(); + var _applyInternationalSeparatorStyle = _interopRequireDefault(require_applyInternationalSeparatorStyle()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, "default": e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function() { + return o >= r.length ? { done: true } : { done: false, value: r[o++] }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var DUMMY_DIGIT = "9"; + var LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; + var LONGEST_DUMMY_PHONE_NUMBER = (0, _AsYouTypeFormatterUtil.repeat)(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); + var NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; + var SUPPORT_LEGACY_FORMATTING_PATTERNS = true; + var CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function() { + return /\[([^\[\]])*\]/g; + }; + var CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function() { + return /\d(?=[^,}][^,}])/g; + }; + var NON_ALTERING_FORMAT_REG_EXP = new RegExp("[" + _constants.VALID_PUNCTUATION + "]*\\$1[" + _constants.VALID_PUNCTUATION + "]*(\\$\\d[" + _constants.VALID_PUNCTUATION + "]*)*$"); + var MIN_LEADING_DIGITS_LENGTH = 3; + var AsYouTypeFormatter = exports2["default"] = /* @__PURE__ */ (function() { + function AsYouTypeFormatter2(_ref) { + var state = _ref.state, metadata = _ref.metadata; + _classCallCheck(this, AsYouTypeFormatter2); + this.metadata = metadata; + this.resetFormat(); + } + __name(AsYouTypeFormatter2, "AsYouTypeFormatter"); + return _createClass(AsYouTypeFormatter2, [{ + key: "resetFormat", + value: /* @__PURE__ */ __name(function resetFormat() { + this.chosenFormat = void 0; + this.template = void 0; + this.nationalNumberTemplate = void 0; + this.populatedNationalNumberTemplate = void 0; + this.populatedNationalNumberTemplatePosition = -1; + }, "resetFormat") + }, { + key: "reset", + value: /* @__PURE__ */ __name(function reset(numberingPlan, state) { + this.resetFormat(); + if (numberingPlan) { + this.isNANP = numberingPlan.callingCode() === "1"; + this.matchingFormats = numberingPlan.formats(); + if (state.nationalSignificantNumber) { + this.narrowDownMatchingFormats(state); + } + } else { + this.isNANP = void 0; + this.matchingFormats = []; + } + }, "reset") + /** + * Formats an updated phone number. + * @param {string} nextDigits — Additional phone number digits. + * @param {object} state — `AsYouType` state. + * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats. + */ + }, { + key: "format", + value: /* @__PURE__ */ __name(function format(nextDigits, state) { + var _this = this; + if ((0, _AsYouTypeFormatterComplete.canFormatCompleteNumber)(state.nationalSignificantNumber, this.metadata)) { + for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done; ) { + var _format = _step.value; + var formattedCompleteNumber = (0, _AsYouTypeFormatterComplete["default"])(state, _format, { + metadata: this.metadata, + shouldTryNationalPrefixFormattingRule: /* @__PURE__ */ __name(function shouldTryNationalPrefixFormattingRule(format2) { + return _this.shouldTryNationalPrefixFormattingRule(format2, { + international: state.international, + nationalPrefix: state.nationalPrefix + }); + }, "shouldTryNationalPrefixFormattingRule"), + getSeparatorAfterNationalPrefix: /* @__PURE__ */ __name(function getSeparatorAfterNationalPrefix(format2) { + return _this.getSeparatorAfterNationalPrefix(format2); + }, "getSeparatorAfterNationalPrefix") + }); + if (formattedCompleteNumber) { + this.resetFormat(); + this.chosenFormat = _format; + this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\d/g, _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER), state); + this.populatedNationalNumberTemplate = formattedCompleteNumber; + this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER); + return formattedCompleteNumber; + } + } + } + return this.formatNationalNumberWithNextDigits(nextDigits, state); + }, "format") + // Formats the next phone number digits. + }, { + key: "formatNationalNumberWithNextDigits", + value: /* @__PURE__ */ __name(function formatNationalNumberWithNextDigits(nextDigits, state) { + var previouslyChosenFormat = this.chosenFormat; + var newlyChosenFormat = this.chooseFormat(state); + if (newlyChosenFormat) { + if (newlyChosenFormat === previouslyChosenFormat) { + return this.formatNextNationalNumberDigits(nextDigits); + } else { + return this.formatNextNationalNumberDigits(state.getNationalDigits()); + } + } + }, "formatNationalNumberWithNextDigits") + }, { + key: "narrowDownMatchingFormats", + value: /* @__PURE__ */ __name(function narrowDownMatchingFormats(_ref2) { + var _this2 = this; + var nationalSignificantNumber = _ref2.nationalSignificantNumber, nationalPrefix = _ref2.nationalPrefix, international = _ref2.international; + var leadingDigits = nationalSignificantNumber; + var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH; + if (leadingDigitsPatternIndex < 0) { + leadingDigitsPatternIndex = 0; + } + this.matchingFormats = this.matchingFormats.filter(function(format) { + return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex); + }); + if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) { + this.resetFormat(); + } + }, "narrowDownMatchingFormats") + }, { + key: "formatSuits", + value: /* @__PURE__ */ __name(function formatSuits(format, international, nationalPrefix) { + if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() && + !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) { + return false; + } + if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) { + return false; + } + return true; + }, "formatSuits") + }, { + key: "formatMatches", + value: /* @__PURE__ */ __name(function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) { + var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; + if (leadingDigitsPatternsCount === 0) { + return true; + } + leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1); + var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; + if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) { + try { + return new _AsYouTypeFormatterPatternMatcher["default"](leadingDigitsPattern).match(leadingDigits, { + allowOverflow: true + }) !== void 0; + } catch (error) { + console.error(error); + return true; + } + } + return new RegExp("^(".concat(leadingDigitsPattern, ")")).test(leadingDigits); + }, "formatMatches") + }, { + key: "getFormatFormat", + value: /* @__PURE__ */ __name(function getFormatFormat(format, international) { + return international ? format.internationalFormat() : format.format(); + }, "getFormatFormat") + }, { + key: "chooseFormat", + value: /* @__PURE__ */ __name(function chooseFormat(state) { + var _this3 = this; + var _loop = /* @__PURE__ */ __name(function _loop2() { + var format = _step2.value; + if (_this3.chosenFormat === format) { + return 0; + } + if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) { + return 1; + } + if (!_this3.createTemplateForFormat(format, state)) { + _this3.matchingFormats = _this3.matchingFormats.filter(function(_) { + return _ !== format; + }); + return 1; + } + _this3.chosenFormat = format; + return 0; + }, "_loop"), _ret; + for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done; ) { + _ret = _loop(); + if (_ret === 0) break; + if (_ret === 1) continue; + } + if (!this.chosenFormat) { + this.resetFormat(); + } + return this.chosenFormat; + }, "chooseFormat") + }, { + key: "createTemplateForFormat", + value: /* @__PURE__ */ __name(function createTemplateForFormat(format, state) { + if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf("|") >= 0) { + return; + } + var template = this.getTemplateForFormat(format, state); + if (template) { + this.setNationalNumberTemplate(template, state); + return true; + } + }, "createTemplateForFormat") + }, { + key: "getSeparatorAfterNationalPrefix", + value: /* @__PURE__ */ __name(function getSeparatorAfterNationalPrefix(format) { + if (this.isNANP) { + return " "; + } + if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) { + return " "; + } + return ""; + }, "getSeparatorAfterNationalPrefix") + }, { + key: "getInternationalPrefixBeforeCountryCallingCode", + value: /* @__PURE__ */ __name(function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) { + var IDDPrefix = _ref3.IDDPrefix, missingPlus = _ref3.missingPlus; + if (IDDPrefix) { + return options && options.spacing === false ? IDDPrefix : IDDPrefix + " "; + } + if (missingPlus) { + return ""; + } + return "+"; + }, "getInternationalPrefixBeforeCountryCallingCode") + }, { + key: "getTemplate", + value: /* @__PURE__ */ __name(function getTemplate(state) { + if (!this.template) { + return; + } + var index = -1; + var i = 0; + var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, { + spacing: false + }) : ""; + while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) { + index = this.template.indexOf(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, index + 1); + i++; + } + return (0, _AsYouTypeFormatterUtil.cutAndStripNonPairedParens)(this.template, index + 1); + }, "getTemplate") + }, { + key: "setNationalNumberTemplate", + value: /* @__PURE__ */ __name(function setNationalNumberTemplate(template, state) { + this.nationalNumberTemplate = template; + this.populatedNationalNumberTemplate = template; + this.populatedNationalNumberTemplatePosition = -1; + if (state.international) { + this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\d\+]/g, _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER) + (0, _AsYouTypeFormatterUtil.repeat)(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, state.callingCode.length) + " " + template; + } else { + this.template = template; + } + }, "setNationalNumberTemplate") + /** + * Generates formatting template for a national phone number, + * optionally containing a national prefix, for a format. + * @param {Format} format + * @param {string} nationalPrefix + * @return {string} + */ + }, { + key: "getTemplateForFormat", + value: /* @__PURE__ */ __name(function getTemplateForFormat(format, _ref4) { + var nationalSignificantNumber = _ref4.nationalSignificantNumber, international = _ref4.international, nationalPrefix = _ref4.nationalPrefix, prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = _ref4.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix; + var pattern = format.pattern(); + if (SUPPORT_LEGACY_FORMATTING_PATTERNS) { + pattern = pattern.replace(CREATE_CHARACTER_CLASS_PATTERN(), "\\d").replace(CREATE_STANDALONE_DIGIT_PATTERN(), "\\d"); + } + var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; + if (nationalSignificantNumber.length > digits.length) { + return; + } + var strictPattern = new RegExp("^" + pattern + "$"); + var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\d/g, DUMMY_DIGIT); + if (strictPattern.test(nationalNumberDummyDigits)) { + digits = nationalNumberDummyDigits; + } + var numberFormat = this.getFormatFormat(format, international); + var nationalPrefixIncludedInTemplate; + if (this.shouldTryNationalPrefixFormattingRule(format, { + international, + nationalPrefix + })) { + var numberFormatWithNationalPrefix = numberFormat.replace(_formatNationalNumberUsingFormat.FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); + if ((0, _parseDigits["default"])(format.nationalPrefixFormattingRule()) === (nationalPrefix || "") + (0, _parseDigits["default"])("$1")) { + numberFormat = numberFormatWithNationalPrefix; + nationalPrefixIncludedInTemplate = true; + if (nationalPrefix) { + var i = nationalPrefix.length; + while (i > 0) { + numberFormat = numberFormat.replace(/\d/, _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER); + i--; + } + } + } + } + var template = digits.replace(new RegExp(pattern), numberFormat).replace(new RegExp(DUMMY_DIGIT, "g"), _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER); + if (!nationalPrefixIncludedInTemplate) { + if (prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) { + template = (0, _AsYouTypeFormatterUtil.repeat)(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix.length) + " " + template; + } else if (nationalPrefix) { + template = (0, _AsYouTypeFormatterUtil.repeat)(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template; + } + } + if (international) { + template = (0, _applyInternationalSeparatorStyle["default"])(template); + } + return template; + }, "getTemplateForFormat") + }, { + key: "formatNextNationalNumberDigits", + value: /* @__PURE__ */ __name(function formatNextNationalNumberDigits(digits) { + var result = (0, _AsYouTypeFormatterUtil.populateTemplateWithDigits)(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits); + if (!result) { + this.resetFormat(); + return; + } + this.populatedNationalNumberTemplate = result[0]; + this.populatedNationalNumberTemplatePosition = result[1]; + return (0, _AsYouTypeFormatterUtil.cutAndStripNonPairedParens)(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); + }, "formatNextNationalNumberDigits") + }, { + key: "shouldTryNationalPrefixFormattingRule", + value: /* @__PURE__ */ __name(function shouldTryNationalPrefixFormattingRule(format, _ref5) { + var international = _ref5.international, nationalPrefix = _ref5.nationalPrefix; + if (format.nationalPrefixFormattingRule()) { + var usesNationalPrefix = format.usesNationalPrefix(); + if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) { + return true; + } + } + }, "shouldTryNationalPrefixFormattingRule") + }]); + })(); + } +}); + +// node_modules/libphonenumber-js/build/AsYouTypeParser.js +var require_AsYouTypeParser = __commonJS({ + "node_modules/libphonenumber-js/build/AsYouTypeParser.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + exports2.extractFormattedDigitsAndPlus = extractFormattedDigitsAndPlus; + var _extractCountryCallingCode2 = _interopRequireDefault(require_extractCountryCallingCode()); + var _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign = _interopRequireDefault(require_extractCountryCallingCodeFromInternationalNumberWithoutPlusSign()); + var _extractNationalNumberFromPossiblyIncompleteNumber = _interopRequireDefault(require_extractNationalNumberFromPossiblyIncompleteNumber()); + var _stripIddPrefix = _interopRequireDefault(require_stripIddPrefix()); + var _parseDigits = _interopRequireDefault(require_parseDigits()); + var _constants = require_constants4(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); + } + __name(_slicedToArray, "_slicedToArray"); + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_nonIterableRest, "_nonIterableRest"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (null != t) { + var e, n, i, u, a = [], f = true, o = false; + try { + if (i = (t = t.call(r)).next, 0 === l) { + if (Object(t) !== t) return; + f = false; + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ; + } catch (r2) { + o = true, n = r2; + } finally { + try { + if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; + } finally { + if (o) throw n; + } + } + return a; + } + } + __name(_iterableToArrayLimit, "_iterableToArrayLimit"); + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; + } + __name(_arrayWithHoles, "_arrayWithHoles"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = "[" + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + "]+"; + var VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp("^" + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + "$", "i"); + var VALID_FORMATTED_PHONE_NUMBER_PART = "(?:[" + _constants.PLUS_CHARS + "][" + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + "]*|[" + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + "]+)"; + var AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp("[^" + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + "]+.*$"); + var COMPLEX_NATIONAL_PREFIX = /[^\d\[\]]/; + var AsYouTypeParser = exports2["default"] = /* @__PURE__ */ (function() { + function AsYouTypeParser2(_ref) { + var defaultCountry = _ref.defaultCountry, defaultCallingCode = _ref.defaultCallingCode, metadata = _ref.metadata, onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange; + _classCallCheck(this, AsYouTypeParser2); + this.defaultCountry = defaultCountry; + this.defaultCallingCode = defaultCallingCode; + this.metadata = metadata; + this.onNationalSignificantNumberChange = onNationalSignificantNumberChange; + } + __name(AsYouTypeParser2, "AsYouTypeParser"); + return _createClass(AsYouTypeParser2, [{ + key: "input", + value: /* @__PURE__ */ __name(function input(text, state) { + var _extractFormattedDigi = extractFormattedDigitsAndPlus(text), _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2), formattedDigits = _extractFormattedDigi2[0], hasPlus = _extractFormattedDigi2[1]; + var digits = (0, _parseDigits["default"])(formattedDigits); + var justLeadingPlus; + if (hasPlus) { + if (!state.digits) { + state.startInternationalNumber(void 0, void 0); + if (!digits) { + justLeadingPlus = true; + } + } + } + if (digits) { + this.inputDigits(digits, state); + } + return { + digits, + justLeadingPlus + }; + }, "input") + /** + * Inputs "next" phone number digits. + * @param {string} digits + * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means "don't format the national phone number at this stage". + */ + }, { + key: "inputDigits", + value: /* @__PURE__ */ __name(function inputDigits(nextDigits, state) { + var digits = state.digits; + var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; + state.appendDigits(nextDigits); + if (hasReceivedThreeLeadingDigits) { + this.extractIddPrefix(state); + } + if (this.isWaitingForCountryCallingCode(state)) { + if (!this.extractCountryCallingCode(state)) { + return; + } + } else { + state.appendNationalSignificantNumberDigits(nextDigits); + } + if (!state.international) { + if (!this.hasExtractedNationalSignificantNumber) { + this.extractNationalSignificantNumber(state.getNationalDigits(), function(stateUpdate) { + return state.update(stateUpdate); + }); + } + } + }, "inputDigits") + }, { + key: "isWaitingForCountryCallingCode", + value: /* @__PURE__ */ __name(function isWaitingForCountryCallingCode(_ref2) { + var international = _ref2.international, callingCode = _ref2.callingCode; + return international && !callingCode; + }, "isWaitingForCountryCallingCode") + // Extracts a country calling code from a number + // being entered in internatonal format. + }, { + key: "extractCountryCallingCode", + value: /* @__PURE__ */ __name(function extractCountryCallingCode(state) { + var _extractCountryCallin = (0, _extractCountryCallingCode2["default"])("+" + state.getDigitsWithoutInternationalPrefix(), state.country, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata), countryCallingCode = _extractCountryCallin.countryCallingCode, number = _extractCountryCallin.number; + if (countryCallingCode) { + state.setCallingCode(countryCallingCode); + state.update({ + nationalSignificantNumber: number + }); + return true; + } + }, "extractCountryCallingCode") + }, { + key: "reset", + value: /* @__PURE__ */ __name(function reset(numberingPlan) { + if (numberingPlan) { + this.hasSelectedNumberingPlan = true; + var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing(); + this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing); + } else { + this.hasSelectedNumberingPlan = void 0; + this.couldPossiblyExtractAnotherNationalSignificantNumber = void 0; + } + }, "reset") + /** + * Extracts a national (significant) number from user input. + * Google's library is different in that it only applies `national_prefix_for_parsing` + * and doesn't apply `national_prefix_transform_rule` after that. + * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539 + * @return {boolean} [extracted] + */ + }, { + key: "extractNationalSignificantNumber", + value: /* @__PURE__ */ __name(function extractNationalSignificantNumber(nationalDigits, setState) { + if (!this.hasSelectedNumberingPlan) { + return; + } + var _extractNationalNumbe = (0, _extractNationalNumberFromPossiblyIncompleteNumber["default"])(nationalDigits, this.metadata), nationalPrefix = _extractNationalNumbe.nationalPrefix, nationalNumber = _extractNationalNumbe.nationalNumber, carrierCode = _extractNationalNumbe.carrierCode; + if (nationalNumber === nationalDigits) { + return; + } + this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState); + return true; + }, "extractNationalSignificantNumber") + /** + * In Google's code this function is called "attempt to extract longer NDD". + * "Some national prefixes are a substring of others", they say. + * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were. + */ + }, { + key: "extractAnotherNationalSignificantNumber", + value: /* @__PURE__ */ __name(function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) { + if (!this.hasExtractedNationalSignificantNumber) { + return this.extractNationalSignificantNumber(nationalDigits, setState); + } + if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) { + return; + } + var _extractNationalNumbe2 = (0, _extractNationalNumberFromPossiblyIncompleteNumber["default"])(nationalDigits, this.metadata), nationalPrefix = _extractNationalNumbe2.nationalPrefix, nationalNumber = _extractNationalNumbe2.nationalNumber, carrierCode = _extractNationalNumbe2.carrierCode; + if (nationalNumber === prevNationalSignificantNumber) { + return; + } + this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState); + return true; + }, "extractAnotherNationalSignificantNumber") + }, { + key: "onExtractedNationalNumber", + value: /* @__PURE__ */ __name(function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) { + var nationalSignificantNumberIsModified = false; + var prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix; + var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); + if (nationalSignificantNumberIndex < 0 || nationalSignificantNumberIndex !== nationalDigits.length - nationalSignificantNumber.length) { + nationalSignificantNumberIsModified = true; + } else { + var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); + if (prefixBeforeNationalNumber) { + if (prefixBeforeNationalNumber !== nationalPrefix) { + prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = prefixBeforeNationalNumber; + } + } + } + setState({ + nationalPrefix, + carrierCode, + nationalSignificantNumber, + nationalSignificantNumberIsModified, + prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix + }); + this.hasExtractedNationalSignificantNumber = true; + this.onNationalSignificantNumberChange(); + }, "onExtractedNationalNumber") + }, { + key: "reExtractNationalSignificantNumber", + value: /* @__PURE__ */ __name(function reExtractNationalSignificantNumber(state) { + if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function(stateUpdate) { + return state.update(stateUpdate); + })) { + return true; + } + if (this.extractIddPrefix(state)) { + this.extractCallingCodeAndNationalSignificantNumber(state); + return true; + } + if (this.fixMissingPlus(state)) { + this.extractCallingCodeAndNationalSignificantNumber(state); + return true; + } + }, "reExtractNationalSignificantNumber") + }, { + key: "extractIddPrefix", + value: /* @__PURE__ */ __name(function extractIddPrefix(state) { + var international = state.international, IDDPrefix = state.IDDPrefix, digits = state.digits, nationalSignificantNumber = state.nationalSignificantNumber; + if (international || IDDPrefix) { + return; + } + var numberWithoutIDD = (0, _stripIddPrefix["default"])(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata); + if (numberWithoutIDD !== void 0 && numberWithoutIDD !== digits) { + state.update({ + IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length) + }); + this.startInternationalNumber(state, { + country: void 0, + callingCode: void 0 + }); + return true; + } + }, "extractIddPrefix") + }, { + key: "fixMissingPlus", + value: /* @__PURE__ */ __name(function fixMissingPlus(state) { + if (!state.international) { + var _extractCountryCallin2 = (0, _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign["default"])(state.digits, state.country, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata), newCallingCode = _extractCountryCallin2.countryCallingCode; + if (newCallingCode) { + state.update({ + missingPlus: true + }); + this.startInternationalNumber(state, { + country: state.country, + callingCode: newCallingCode + }); + return true; + } + } + }, "fixMissingPlus") + }, { + key: "startInternationalNumber", + value: /* @__PURE__ */ __name(function startInternationalNumber(state, _ref3) { + var country2 = _ref3.country, callingCode = _ref3.callingCode; + state.startInternationalNumber(country2, callingCode); + if (state.nationalSignificantNumber) { + state.resetNationalSignificantNumber(); + this.onNationalSignificantNumberChange(); + this.hasExtractedNationalSignificantNumber = void 0; + } + }, "startInternationalNumber") + }, { + key: "extractCallingCodeAndNationalSignificantNumber", + value: /* @__PURE__ */ __name(function extractCallingCodeAndNationalSignificantNumber(state) { + if (this.extractCountryCallingCode(state)) { + this.extractNationalSignificantNumber(state.getNationalDigits(), function(stateUpdate) { + return state.update(stateUpdate); + }); + } + }, "extractCallingCodeAndNationalSignificantNumber") + }]); + })(); + function extractFormattedPhoneNumber(text) { + var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART); + if (startsAt < 0) { + return; + } + text = text.slice(startsAt); + var hasPlus; + if (text[0] === "+") { + hasPlus = true; + text = text.slice("+".length); + } + text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ""); + if (hasPlus) { + text = "+" + text; + } + return text; + } + __name(extractFormattedPhoneNumber, "extractFormattedPhoneNumber"); + function _extractFormattedDigitsAndPlus(text) { + var extractedNumber = extractFormattedPhoneNumber(text) || ""; + if (extractedNumber[0] === "+") { + return [extractedNumber.slice("+".length), true]; + } + return [extractedNumber]; + } + __name(_extractFormattedDigitsAndPlus, "_extractFormattedDigitsAndPlus"); + function extractFormattedDigitsAndPlus(text) { + var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text), _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2), formattedDigits = _extractFormattedDigi4[0], hasPlus = _extractFormattedDigi4[1]; + if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) { + formattedDigits = ""; + } + return [formattedDigits, hasPlus]; + } + __name(extractFormattedDigitsAndPlus, "extractFormattedDigitsAndPlus"); + } +}); + +// node_modules/libphonenumber-js/build/AsYouType.js +var require_AsYouType = __commonJS({ + "node_modules/libphonenumber-js/build/AsYouType.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = void 0; + var _metadata = _interopRequireDefault(require_metadata()); + var _PhoneNumber = _interopRequireDefault(require_PhoneNumber()); + var _checkNumberLength = _interopRequireDefault(require_checkNumberLength()); + var _AsYouTypeState = _interopRequireDefault(require_AsYouTypeState()); + var _AsYouTypeFormatter = _interopRequireWildcard(require_AsYouTypeFormatter()); + var _AsYouTypeParser = _interopRequireWildcard(require_AsYouTypeParser()); + var _getCountryByCallingCode = _interopRequireDefault(require_getCountryByCallingCode()); + var _getCountryByNationalNumber = _interopRequireDefault(require_getCountryByNationalNumber()); + var _isObject = _interopRequireDefault(require_isObject()); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, "default": e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); + } + __name(_slicedToArray, "_slicedToArray"); + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_nonIterableRest, "_nonIterableRest"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (null != t) { + var e, n, i, u, a = [], f = true, o = false; + try { + if (i = (t = t.call(r)).next, 0 === l) { + if (Object(t) !== t) return; + f = false; + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ; + } catch (r2) { + o = true, n = r2; + } finally { + try { + if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; + } finally { + if (o) throw n; + } + } + return a; + } + } + __name(_iterableToArrayLimit, "_iterableToArrayLimit"); + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; + } + __name(_arrayWithHoles, "_arrayWithHoles"); + function _classCallCheck(a, n) { + if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(_toPrimitive, "_toPrimitive"); + var USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; + var AsYouType = exports2["default"] = /* @__PURE__ */ (function() { + function AsYouType2(optionsOrDefaultCountry, metadata) { + _classCallCheck(this, AsYouType2); + this.metadata = new _metadata["default"](metadata); + var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry), _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2), defaultCountry = _this$getCountryAndCa2[0], defaultCallingCode = _this$getCountryAndCa2[1]; + this.defaultCountry = defaultCountry; + this.defaultCallingCode = defaultCallingCode; + this.reset(); + } + __name(AsYouType2, "AsYouType"); + return _createClass(AsYouType2, [{ + key: "getCountryAndCallingCode", + value: /* @__PURE__ */ __name(function getCountryAndCallingCode(optionsOrDefaultCountry) { + var defaultCountry; + var defaultCallingCode; + if (optionsOrDefaultCountry) { + if ((0, _isObject["default"])(optionsOrDefaultCountry)) { + defaultCountry = optionsOrDefaultCountry.defaultCountry; + defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode; + } else { + defaultCountry = optionsOrDefaultCountry; + } + } + if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) { + defaultCountry = void 0; + } + if (defaultCallingCode) { + if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) { + if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) { + defaultCountry = "001"; + } + } + } + return [defaultCountry, defaultCallingCode]; + }, "getCountryAndCallingCode") + /** + * Inputs "next" phone number characters. + * @param {string} text + * @return {string} Formatted phone number characters that have been input so far. + */ + }, { + key: "input", + value: /* @__PURE__ */ __name(function input(text) { + var _this$parser$input = this.parser.input(text, this.state), digits = _this$parser$input.digits, justLeadingPlus = _this$parser$input.justLeadingPlus; + if (justLeadingPlus) { + this.formattedOutput = "+"; + } else if (digits) { + this.determineTheCountryIfNeeded(); + if (this.state.nationalSignificantNumber) { + this.formatter.narrowDownMatchingFormats(this.state); + } + var formattedNationalNumber; + if (this.metadata.hasSelectedNumberingPlan()) { + formattedNationalNumber = this.formatter.format(digits, this.state); + } + if (formattedNationalNumber === void 0) { + if (this.parser.reExtractNationalSignificantNumber(this.state)) { + this.determineTheCountryIfNeeded(); + var nationalDigits = this.state.getNationalDigits(); + if (nationalDigits) { + formattedNationalNumber = this.formatter.format(nationalDigits, this.state); + } + } + } + this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber(); + } + return this.formattedOutput; + }, "input") + }, { + key: "reset", + value: /* @__PURE__ */ __name(function reset() { + var _this = this; + this.state = new _AsYouTypeState["default"]({ + onCountryChange: /* @__PURE__ */ __name(function onCountryChange(country2) { + _this.country = country2; + }, "onCountryChange"), + onCallingCodeChange: /* @__PURE__ */ __name(function onCallingCodeChange(callingCode, country2) { + _this.metadata.selectNumberingPlan(country2 || callingCode); + _this.formatter.reset(_this.metadata.numberingPlan, _this.state); + _this.parser.reset(_this.metadata.numberingPlan); + }, "onCallingCodeChange") + }); + this.formatter = new _AsYouTypeFormatter["default"]({ + state: this.state, + metadata: this.metadata + }); + this.parser = new _AsYouTypeParser["default"]({ + defaultCountry: this.defaultCountry, + defaultCallingCode: this.defaultCallingCode, + metadata: this.metadata, + state: this.state, + onNationalSignificantNumberChange: /* @__PURE__ */ __name(function onNationalSignificantNumberChange() { + _this.determineTheCountryIfNeeded(); + _this.formatter.reset(_this.metadata.numberingPlan, _this.state); + }, "onNationalSignificantNumberChange") + }); + this.state.reset({ + country: this.defaultCountry, + callingCode: this.defaultCallingCode + }); + this.formattedOutput = ""; + return this; + }, "reset") + /** + * Returns `true` if the phone number is being input in international format. + * In other words, returns `true` if and only if the parsed phone number starts with a `"+"`. + * @return {boolean} + */ + }, { + key: "isInternational", + value: /* @__PURE__ */ __name(function isInternational() { + return this.state.international; + }, "isInternational") + /** + * Returns the "calling code" part of the phone number when it's being input + * in an international format. + * If no valid calling code has been entered so far, returns `undefined`. + * @return {string} [callingCode] + */ + }, { + key: "getCallingCode", + value: /* @__PURE__ */ __name(function getCallingCode() { + if (this.isInternational()) { + return this.state.callingCode; + } + }, "getCallingCode") + // A legacy alias. + }, { + key: "getCountryCallingCode", + value: /* @__PURE__ */ __name(function getCountryCallingCode() { + return this.getCallingCode(); + }, "getCountryCallingCode") + /** + * Returns a two-letter country code of the phone number. + * Returns `undefined` for "non-geographic" phone numbering plans. + * Returns `undefined` if no phone number has been input yet. + * @return {string} [country] + */ + }, { + key: "getCountry", + value: /* @__PURE__ */ __name(function getCountry() { + var digits = this.state.digits; + if (digits) { + return this._getCountry(); + } + }, "getCountry") + /** + * Returns a two-letter country code of the phone number. + * Returns `undefined` for "non-geographic" phone numbering plans. + * @return {string} [country] + */ + }, { + key: "_getCountry", + value: /* @__PURE__ */ __name(function _getCountry() { + var country2 = this.state.country; + if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) { + if (country2 === "001") { + return; + } + } + return country2; + }, "_getCountry") + }, { + key: "determineTheCountryIfNeeded", + value: /* @__PURE__ */ __name(function determineTheCountryIfNeeded() { + if (!this.state.country || this.isCountryCallingCodeAmbiguous()) { + this.determineTheCountry(); + } + }, "determineTheCountryIfNeeded") + // Prepends `+CountryCode ` in case of an international phone number + }, { + key: "getFullNumber", + value: /* @__PURE__ */ __name(function getFullNumber(formattedNationalNumber) { + var _this2 = this; + if (this.isInternational()) { + var prefix = /* @__PURE__ */ __name(function prefix2(text) { + return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, { + spacing: text ? true : false + }) + text; + }, "prefix"); + var callingCode = this.state.callingCode; + if (!callingCode) { + return prefix("".concat(this.state.getDigitsWithoutInternationalPrefix())); + } + if (!formattedNationalNumber) { + return prefix(callingCode); + } + return prefix("".concat(callingCode, " ").concat(formattedNationalNumber)); + } + return formattedNationalNumber; + }, "getFullNumber") + }, { + key: "getNonFormattedNationalNumberWithPrefix", + value: /* @__PURE__ */ __name(function getNonFormattedNationalNumberWithPrefix() { + var _this$state = this.state, nationalSignificantNumber = _this$state.nationalSignificantNumber, prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = _this$state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix, nationalPrefix = _this$state.nationalPrefix; + var number = nationalSignificantNumber; + var prefix = prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix || nationalPrefix; + if (prefix) { + number = prefix + number; + } + return number; + }, "getNonFormattedNationalNumberWithPrefix") + }, { + key: "getNonFormattedNumber", + value: /* @__PURE__ */ __name(function getNonFormattedNumber() { + var nationalSignificantNumberIsModified = this.state.nationalSignificantNumberIsModified; + return this.getFullNumber(nationalSignificantNumberIsModified ? this.state.getNationalDigits() : this.getNonFormattedNationalNumberWithPrefix()); + }, "getNonFormattedNumber") + }, { + key: "getNonFormattedTemplate", + value: /* @__PURE__ */ __name(function getNonFormattedTemplate() { + var number = this.getNonFormattedNumber(); + if (number) { + return number.replace(/[\+\d]/g, _AsYouTypeFormatter.DIGIT_PLACEHOLDER); + } + }, "getNonFormattedTemplate") + }, { + key: "isCountryCallingCodeAmbiguous", + value: /* @__PURE__ */ __name(function isCountryCallingCodeAmbiguous() { + var callingCode = this.state.callingCode; + var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode); + return countryCodes && countryCodes.length > 1; + }, "isCountryCallingCodeAmbiguous") + // Determines the exact country of the phone number + // entered so far based on the country phone code + // and the national phone number. + }, { + key: "determineTheCountry", + value: /* @__PURE__ */ __name(function determineTheCountry() { + var country2 = (0, _getCountryByCallingCode["default"])(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, { + nationalNumber: this.state.nationalSignificantNumber, + metadata: this.metadata + }); + if (country2 !== this.state.country) { + this.state.setCountry(country2); + if (country2) { + this.metadata.selectNumberingPlan(country2); + } + } + }, "determineTheCountry") + /** + * Returns a E.164 phone number value for the user's input. + * + * For example, for country `"US"` and input `"(222) 333-4444"` + * it will return `"+12223334444"`. + * + * For international phone number input, it will also auto-correct + * some minor errors such as using a national prefix when writing + * an international phone number. For example, if the user inputs + * `"+44 0 7400 000000"` then it will return an auto-corrected + * `"+447400000000"` phone number value. + * + * Will return `undefined` if no digits have been input, + * or when inputting a phone number in national format and no + * default country or default "country calling code" have been set. + * + * @return {string} [value] + */ + }, { + key: "getNumberValue", + value: /* @__PURE__ */ __name(function getNumberValue() { + var _this$state2 = this.state, digits = _this$state2.digits, callingCode = _this$state2.callingCode, country2 = _this$state2.country, nationalSignificantNumber = _this$state2.nationalSignificantNumber; + if (!digits) { + return; + } + if (this.isInternational()) { + if (callingCode) { + return "+" + callingCode + nationalSignificantNumber; + } else { + return "+" + digits; + } + } else { + if (country2 || callingCode) { + var callingCode_ = country2 ? this.metadata.countryCallingCode() : callingCode; + return "+" + callingCode_ + nationalSignificantNumber; + } + } + }, "getNumberValue") + /** + * Returns an instance of `PhoneNumber` class. + * Will return `undefined` if no national (significant) number + * digits have been entered so far, or if no `defaultCountry` has been + * set and the user enters a phone number not in international format. + */ + }, { + key: "getNumber", + value: /* @__PURE__ */ __name(function getNumber() { + var _this$state3 = this.state, nationalSignificantNumber = _this$state3.nationalSignificantNumber, carrierCode = _this$state3.carrierCode, callingCode = _this$state3.callingCode; + if (!nationalSignificantNumber) { + return; + } + var country2 = this._getCountry(); + if (!country2 && !callingCode) { + return; + } + if (country2) { + if (country2 === this.defaultCountry) { + var countryCallingCode = this.metadata.numberingPlan.callingCode(); + var exactCountry = getExactCountryForMultiCountryCallingCode(countryCallingCode, nationalSignificantNumber, this.metadata); + if (exactCountry) { + country2 = exactCountry; + } + } + } + var phoneNumber = new _PhoneNumber["default"](country2 || callingCode, nationalSignificantNumber, this.metadata.metadata); + if (carrierCode) { + phoneNumber.carrierCode = carrierCode; + } + return phoneNumber; + }, "getNumber") + /** + * Returns `true` if the phone number is "possible". + * Is just a shortcut for `PhoneNumber.isPossible()`. + * @return {boolean} + */ + }, { + key: "isPossible", + value: /* @__PURE__ */ __name(function isPossible() { + var phoneNumber = this.getNumber(); + if (!phoneNumber) { + return false; + } + return phoneNumber.isPossible(); + }, "isPossible") + /** + * Returns `true` if the phone number is "valid". + * Is just a shortcut for `PhoneNumber.isValid()`. + * @return {boolean} + */ + }, { + key: "isValid", + value: /* @__PURE__ */ __name(function isValid() { + var phoneNumber = this.getNumber(); + if (!phoneNumber) { + return false; + } + return phoneNumber.isValid(); + }, "isValid") + /** + * Checks if the phone number length is valid. + * If it is, nothing is returned. + * Otherwise, a rejection reason is returned. + * @return {string?} + */ + }, { + key: "validateLength", + value: /* @__PURE__ */ __name(function validateLength() { + var _this$state4 = this.state, digits = _this$state4.digits, nationalSignificantNumber = _this$state4.nationalSignificantNumber; + if (!digits) { + return "NOT_A_NUMBER"; + } + if (!this.metadata.numberingPlan) { + return "INVALID_COUNTRY"; + } + if (!nationalSignificantNumber) { + return "TOO_SHORT"; + } + var result = (0, _checkNumberLength["default"])(nationalSignificantNumber, void 0, this.metadata); + if (result !== "IS_POSSIBLE") { + return result; + } + }, "validateLength") + /** + * @deprecated + * This method is used in `react-phone-number-input/source/input-control.js` + * in versions before `3.0.16`. + */ + }, { + key: "getNationalNumber", + value: /* @__PURE__ */ __name(function getNationalNumber() { + return this.state.nationalSignificantNumber; + }, "getNationalNumber") + /** + * Returns the phone number characters entered by the user. + * @return {string} + */ + }, { + key: "getChars", + value: /* @__PURE__ */ __name(function getChars() { + return (this.state.international ? "+" : "") + this.state.digits; + }, "getChars") + /** + * Returns the template for the formatted phone number. + * @return {string} + */ + }, { + key: "getTemplate", + value: /* @__PURE__ */ __name(function getTemplate() { + return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || ""; + }, "getTemplate") + }]); + })(); + function getExactCountryForMultiCountryCallingCode(callingCode, nationalSignificantNumber, metadata) { + var ambiguousCountries = metadata.getCountryCodesForCallingCode(callingCode); + if (ambiguousCountries.length > 1) { + return (0, _getCountryByNationalNumber["default"])(nationalSignificantNumber, ambiguousCountries, metadata.metadata); + } + } + __name(getExactCountryForMultiCountryCallingCode, "getExactCountryForMultiCountryCallingCode"); + } +}); + +// node_modules/libphonenumber-js/build/getCountries.js +var require_getCountries = __commonJS({ + "node_modules/libphonenumber-js/build/getCountries.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = getCountries; + var _metadata = _interopRequireDefault(require_metadata()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function getCountries(metadata) { + return new _metadata["default"](metadata).getCountries(); + } + __name(getCountries, "getCountries"); + } +}); + +// node_modules/libphonenumber-js/build/getExampleNumber.js +var require_getExampleNumber = __commonJS({ + "node_modules/libphonenumber-js/build/getExampleNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = getExampleNumber; + var _PhoneNumber = _interopRequireDefault(require_PhoneNumber()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function getExampleNumber(country2, examples, metadata) { + if (examples[country2]) { + return new _PhoneNumber["default"](country2, examples[country2], metadata); + } + } + __name(getExampleNumber, "getExampleNumber"); + } +}); + +// node_modules/libphonenumber-js/build/formatIncompletePhoneNumber.js +var require_formatIncompletePhoneNumber = __commonJS({ + "node_modules/libphonenumber-js/build/formatIncompletePhoneNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2["default"] = formatIncompletePhoneNumber; + var _AsYouType = _interopRequireDefault(require_AsYouType()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { "default": e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) { + if (!metadata) { + metadata = optionsOrDefaultCountry; + optionsOrDefaultCountry = void 0; + } + return new _AsYouType["default"](optionsOrDefaultCountry, metadata).input(value); + } + __name(formatIncompletePhoneNumber, "formatIncompletePhoneNumber"); + } +}); + +// node_modules/libphonenumber-js/core/index.cjs +var require_core2 = __commonJS({ + "node_modules/libphonenumber-js/core/index.cjs"(exports2, module2) { + "use strict"; + var parsePhoneNumberFromString = require_parsePhoneNumber2().default; + exports2 = module2.exports = parsePhoneNumberFromString; + exports2["default"] = parsePhoneNumberFromString; + exports2.PhoneNumber = require_PhoneNumber().default; + exports2.ParseError = require_ParseError().default; + var parsePhoneNumberWithError = require_parsePhoneNumberWithError2().default; + exports2.parsePhoneNumberWithError = parsePhoneNumberWithError; + exports2.parsePhoneNumber = parsePhoneNumberWithError; + exports2.parsePhoneNumberFromString = parsePhoneNumberFromString; + exports2.isValidPhoneNumber = require_isValidPhoneNumber().default; + exports2.isPossiblePhoneNumber = require_isPossiblePhoneNumber().default; + exports2.validatePhoneNumberLength = require_validatePhoneNumberLength().default; + exports2.findNumbers = require_findNumbers().default; + exports2.searchNumbers = require_searchNumbers().default; + exports2.findPhoneNumbersInText = require_findPhoneNumbersInText().default; + exports2.searchPhoneNumbersInText = require_searchPhoneNumbersInText().default; + exports2.PhoneNumberMatcher = require_PhoneNumberMatcher().default; + exports2.AsYouType = require_AsYouType().default; + exports2.Metadata = require_metadata().default; + exports2.isSupportedCountry = require_metadata().isSupportedCountry; + exports2.getCountries = require_getCountries().default; + exports2.getCountryCallingCode = require_metadata().getCountryCallingCode; + exports2.getExtPrefix = require_metadata().getExtPrefix; + exports2.getExampleNumber = require_getExampleNumber().default; + exports2.formatIncompletePhoneNumber = require_formatIncompletePhoneNumber().default; + exports2.parseIncompletePhoneNumber = require_parseIncompletePhoneNumber().default; + exports2.parsePhoneNumberCharacter = require_parseIncompletePhoneNumber().parsePhoneNumberCharacter; + exports2.parseDigits = require_parseDigits().default; + exports2.DIGIT_PLACEHOLDER = require_AsYouTypeFormatter().DIGIT_PLACEHOLDER; + exports2.parseRFC3966 = require_RFC3966().parseRFC3966; + exports2.formatRFC3966 = require_RFC3966().formatRFC3966; + } +}); + +// node_modules/libphonenumber-js/max/index.cjs +var require_max = __commonJS({ + "node_modules/libphonenumber-js/max/index.cjs"(exports2, module2) { + "use strict"; + var metadata = require_metadata_max(); + var core = require_core2(); + function call(func, _arguments) { + var args = Array.prototype.slice.call(_arguments); + args.push(metadata); + return func.apply(this, args); + } + __name(call, "call"); + function parsePhoneNumberFromString() { + return call(core.parsePhoneNumberFromString, arguments); + } + __name(parsePhoneNumberFromString, "parsePhoneNumberFromString"); + exports2 = module2.exports = parsePhoneNumberFromString; + exports2["default"] = parsePhoneNumberFromString; + exports2.PhoneNumber = core.PhoneNumber; + exports2.ParseError = core.ParseError; + function parsePhoneNumberWithError() { + return call(core.parsePhoneNumberWithError, arguments); + } + __name(parsePhoneNumberWithError, "parsePhoneNumberWithError"); + exports2.parsePhoneNumber = parsePhoneNumberWithError; + exports2.parsePhoneNumberWithError = parsePhoneNumberWithError; + exports2.parsePhoneNumberFromString = parsePhoneNumberFromString; + exports2.isValidPhoneNumber = /* @__PURE__ */ __name(function isValidPhoneNumber() { + return call(core.isValidPhoneNumber, arguments); + }, "isValidPhoneNumber"); + exports2.isPossiblePhoneNumber = /* @__PURE__ */ __name(function isPossiblePhoneNumber() { + return call(core.isPossiblePhoneNumber, arguments); + }, "isPossiblePhoneNumber"); + exports2.validatePhoneNumberLength = /* @__PURE__ */ __name(function validatePhoneNumberLength() { + return call(core.validatePhoneNumberLength, arguments); + }, "validatePhoneNumberLength"); + exports2.findNumbers = /* @__PURE__ */ __name(function findNumbers() { + return call(core.findNumbers, arguments); + }, "findNumbers"); + exports2.searchNumbers = /* @__PURE__ */ __name(function searchNumbers() { + return call(core.searchNumbers, arguments); + }, "searchNumbers"); + exports2.findPhoneNumbersInText = /* @__PURE__ */ __name(function findPhoneNumbersInText() { + return call(core.findPhoneNumbersInText, arguments); + }, "findPhoneNumbersInText"); + exports2.searchPhoneNumbersInText = /* @__PURE__ */ __name(function searchPhoneNumbersInText() { + return call(core.searchPhoneNumbersInText, arguments); + }, "searchPhoneNumbersInText"); + exports2.PhoneNumberMatcher = /* @__PURE__ */ __name(function PhoneNumberMatcher(text, options) { + return core.PhoneNumberMatcher.call(this, text, options, metadata); + }, "PhoneNumberMatcher"); + exports2.PhoneNumberMatcher.prototype = Object.create(core.PhoneNumberMatcher.prototype, {}); + exports2.PhoneNumberMatcher.prototype.constructor = exports2.PhoneNumberMatcher; + exports2.AsYouType = /* @__PURE__ */ __name(function AsYouType(country2) { + return core.AsYouType.call(this, country2, metadata); + }, "AsYouType"); + exports2.AsYouType.prototype = Object.create(core.AsYouType.prototype, {}); + exports2.AsYouType.prototype.constructor = exports2.AsYouType; + exports2.isSupportedCountry = /* @__PURE__ */ __name(function isSupportedCountry(country2) { + return call(core.isSupportedCountry, arguments); + }, "isSupportedCountry"); + exports2.getCountries = /* @__PURE__ */ __name(function getCountries() { + return call(core.getCountries, arguments); + }, "getCountries"); + exports2.getCountryCallingCode = /* @__PURE__ */ __name(function getCountryCallingCode() { + return call(core.getCountryCallingCode, arguments); + }, "getCountryCallingCode"); + exports2.getExtPrefix = /* @__PURE__ */ __name(function getExtPrefix(country2) { + return call(core.getExtPrefix, arguments); + }, "getExtPrefix"); + exports2.getExampleNumber = /* @__PURE__ */ __name(function getExampleNumber() { + return call(core.getExampleNumber, arguments); + }, "getExampleNumber"); + exports2.formatIncompletePhoneNumber = /* @__PURE__ */ __name(function formatIncompletePhoneNumber() { + return call(core.formatIncompletePhoneNumber, arguments); + }, "formatIncompletePhoneNumber"); + exports2.parseIncompletePhoneNumber = core.parseIncompletePhoneNumber; + exports2.parsePhoneNumberCharacter = core.parsePhoneNumberCharacter; + exports2.parseDigits = core.parseDigits; + exports2.DIGIT_PLACEHOLDER = core.DIGIT_PLACEHOLDER; + exports2.parseRFC3966 = core.parseRFC3966; + exports2.formatRFC3966 = core.formatRFC3966; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js +var require_IsPhoneNumber = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsPhoneNumber = exports2.isPhoneNumber = exports2.IS_PHONE_NUMBER = void 0; + var ValidateBy_1 = require_ValidateBy(); + var max_1 = require_max(); + exports2.IS_PHONE_NUMBER = "isPhoneNumber"; + function isPhoneNumber(value, region) { + if (typeof value !== "string" || value.trim() !== value) { + return false; + } + try { + const phoneNumber = (0, max_1.parsePhoneNumber)(value, region); + if (region && phoneNumber.country !== region) { + return false; + } + return phoneNumber.isValid(); + } catch (error) { + return false; + } + } + __name(isPhoneNumber, "isPhoneNumber"); + exports2.isPhoneNumber = isPhoneNumber; + function IsPhoneNumber(region, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_PHONE_NUMBER, + constraints: [region], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isPhoneNumber(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid phone number", validationOptions) + } + }, validationOptions); + } + __name(IsPhoneNumber, "IsPhoneNumber"); + exports2.IsPhoneNumber = IsPhoneNumber; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js +var require_IsMilitaryTime = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsMilitaryTime = exports2.isMilitaryTime = exports2.IS_MILITARY_TIME = void 0; + var ValidateBy_1 = require_ValidateBy(); + var matches_1 = __importDefault2(require_matches()); + exports2.IS_MILITARY_TIME = "isMilitaryTime"; + function isMilitaryTime(value) { + const militaryTimeRegex = /^([01]\d|2[0-3]):?([0-5]\d)$/; + return typeof value === "string" && (0, matches_1.default)(value, militaryTimeRegex); + } + __name(isMilitaryTime, "isMilitaryTime"); + exports2.isMilitaryTime = isMilitaryTime; + function IsMilitaryTime(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_MILITARY_TIME, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isMilitaryTime(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid representation of military time in the format HH:MM", validationOptions) + } + }, validationOptions); + } + __name(IsMilitaryTime, "IsMilitaryTime"); + exports2.IsMilitaryTime = IsMilitaryTime; + } +}); + +// node_modules/validator/lib/isHash.js +var require_isHash = __commonJS({ + "node_modules/validator/lib/isHash.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isHash; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var lengths = { + md5: 32, + md4: 32, + sha1: 40, + sha256: 64, + sha384: 96, + sha512: 128, + ripemd128: 32, + ripemd160: 40, + tiger128: 32, + tiger160: 40, + tiger192: 48, + crc32: 8, + crc32b: 8 + }; + function isHash(str, algorithm) { + (0, _assertString.default)(str); + var hash = new RegExp("^[a-fA-F0-9]{".concat(lengths[algorithm], "}$")); + return hash.test(str); + } + __name(isHash, "isHash"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsHash.js +var require_IsHash = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsHash.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsHash = exports2.isHash = exports2.IS_HASH = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isHash_1 = __importDefault2(require_isHash()); + exports2.IS_HASH = "isHash"; + function isHash(value, algorithm) { + return typeof value === "string" && (0, isHash_1.default)(value, algorithm); + } + __name(isHash, "isHash"); + exports2.isHash = isHash; + function IsHash(algorithm, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_HASH, + constraints: [algorithm], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isHash(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a hash of type $constraint1", validationOptions) + } + }, validationOptions); + } + __name(IsHash, "IsHash"); + exports2.IsHash = IsHash; + } +}); + +// node_modules/validator/lib/isISSN.js +var require_isISSN = __commonJS({ + "node_modules/validator/lib/isISSN.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isISSN; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var issn = "^\\d{4}-?\\d{3}[\\dX]$"; + function isISSN(str) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + (0, _assertString.default)(str); + var testIssn = issn; + testIssn = options.require_hyphen ? testIssn.replace("?", "") : testIssn; + testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, "i"); + if (!testIssn.test(str)) { + return false; + } + var digits = str.replace("-", "").toUpperCase(); + var checksum = 0; + for (var i = 0; i < digits.length; i++) { + var digit = digits[i]; + checksum += (digit === "X" ? 10 : +digit) * (8 - i); + } + return checksum % 11 === 0; + } + __name(isISSN, "isISSN"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsISSN.js +var require_IsISSN = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsISSN.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISSN = exports2.isISSN = exports2.IS_ISSN = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISSN_1 = __importDefault2(require_isISSN()); + exports2.IS_ISSN = "isISSN"; + function isISSN(value, options) { + return typeof value === "string" && (0, isISSN_1.default)(value, options); + } + __name(isISSN, "isISSN"); + exports2.isISSN = isISSN; + function IsISSN(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISSN, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISSN(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a ISSN", validationOptions) + } + }, validationOptions); + } + __name(IsISSN, "IsISSN"); + exports2.IsISSN = IsISSN; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsDateString.js +var require_IsDateString = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsDateString.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsDateString = exports2.isDateString = exports2.IS_DATE_STRING = void 0; + var ValidateBy_1 = require_ValidateBy(); + var IsISO8601_1 = require_IsISO8601(); + exports2.IS_DATE_STRING = "isDateString"; + function isDateString(value, options) { + return (0, IsISO8601_1.isISO8601)(value, options); + } + __name(isDateString, "isDateString"); + exports2.isDateString = isDateString; + function IsDateString(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_DATE_STRING, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value) => isDateString(value, options), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid ISO 8601 date string", validationOptions) + } + }, validationOptions); + } + __name(IsDateString, "IsDateString"); + exports2.IsDateString = IsDateString; + } +}); + +// node_modules/validator/lib/isBoolean.js +var require_isBoolean = __commonJS({ + "node_modules/validator/lib/isBoolean.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isBoolean; + var _assertString = _interopRequireDefault(require_assertString()); + var _includesArray = _interopRequireDefault(require_includesArray()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var defaultOptions = { + loose: false + }; + var strictBooleans = ["true", "false", "1", "0"]; + var looseBooleans = [].concat(strictBooleans, ["yes", "no"]); + function isBoolean(str) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultOptions; + (0, _assertString.default)(str); + if (options.loose) { + return (0, _includesArray.default)(looseBooleans, str.toLowerCase()); + } + return (0, _includesArray.default)(strictBooleans, str); + } + __name(isBoolean, "isBoolean"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsBooleanString.js +var require_IsBooleanString = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsBooleanString.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsBooleanString = exports2.isBooleanString = exports2.IS_BOOLEAN_STRING = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isBoolean_1 = __importDefault2(require_isBoolean()); + exports2.IS_BOOLEAN_STRING = "isBooleanString"; + function isBooleanString(value) { + return typeof value === "string" && (0, isBoolean_1.default)(value); + } + __name(isBooleanString, "isBooleanString"); + exports2.isBooleanString = isBooleanString; + function IsBooleanString(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_BOOLEAN_STRING, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isBooleanString(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a boolean string", validationOptions) + } + }, validationOptions); + } + __name(IsBooleanString, "IsBooleanString"); + exports2.IsBooleanString = IsBooleanString; + } +}); + +// node_modules/validator/lib/isNumeric.js +var require_isNumeric = __commonJS({ + "node_modules/validator/lib/isNumeric.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isNumeric; + var _assertString = _interopRequireDefault(require_assertString()); + var _alpha = require_alpha(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var numericNoSymbols = /^[0-9]+$/; + function isNumeric(str, options) { + (0, _assertString.default)(str); + if (options && options.no_symbols) { + return numericNoSymbols.test(str); + } + return new RegExp("^[+-]?([0-9]*[".concat((options || {}).locale ? _alpha.decimal[options.locale] : ".", "])?[0-9]+$")).test(str); + } + __name(isNumeric, "isNumeric"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsNumberString.js +var require_IsNumberString = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsNumberString.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsNumberString = exports2.isNumberString = exports2.IS_NUMBER_STRING = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isNumeric_1 = __importDefault2(require_isNumeric()); + exports2.IS_NUMBER_STRING = "isNumberString"; + function isNumberString(value, options) { + return typeof value === "string" && (0, isNumeric_1.default)(value, options); + } + __name(isNumberString, "isNumberString"); + exports2.isNumberString = isNumberString; + function IsNumberString(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_NUMBER_STRING, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isNumberString(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a number string", validationOptions) + } + }, validationOptions); + } + __name(IsNumberString, "IsNumberString"); + exports2.IsNumberString = IsNumberString; + } +}); + +// node_modules/validator/lib/isBase32.js +var require_isBase32 = __commonJS({ + "node_modules/validator/lib/isBase32.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isBase32; + var _assertString = _interopRequireDefault(require_assertString()); + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var base32 = /^[A-Z2-7]+=*$/; + var crockfordBase32 = /^[A-HJKMNP-TV-Z0-9]+$/; + var defaultBase32Options = { + crockford: false + }; + function isBase32(str, options) { + (0, _assertString.default)(str); + options = (0, _merge.default)(options, defaultBase32Options); + if (options.crockford) { + return crockfordBase32.test(str); + } + return str.length % 8 === 0 && base32.test(str); + } + __name(isBase32, "isBase32"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsBase32.js +var require_IsBase32 = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsBase32.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsBase32 = exports2.isBase32 = exports2.IS_BASE32 = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isBase32_1 = __importDefault2(require_isBase32()); + exports2.IS_BASE32 = "isBase32"; + function isBase32(value) { + return typeof value === "string" && (0, isBase32_1.default)(value); + } + __name(isBase32, "isBase32"); + exports2.isBase32 = isBase32; + function IsBase32(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_BASE32, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isBase32(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be base32 encoded", validationOptions) + } + }, validationOptions); + } + __name(IsBase32, "IsBase32"); + exports2.IsBase32 = IsBase32; + } +}); + +// node_modules/validator/lib/isBIC.js +var require_isBIC = __commonJS({ + "node_modules/validator/lib/isBIC.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isBIC; + var _assertString = _interopRequireDefault(require_assertString()); + var _isISO31661Alpha = require_isISO31661Alpha2(); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var isBICReg = /^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/; + function isBIC(str) { + (0, _assertString.default)(str); + var countryCode = str.slice(4, 6).toUpperCase(); + if (!_isISO31661Alpha.CountryCodes.has(countryCode) && countryCode !== "XK") { + return false; + } + return isBICReg.test(str); + } + __name(isBIC, "isBIC"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsBIC.js +var require_IsBIC = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsBIC.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsBIC = exports2.isBIC = exports2.IS_BIC = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isBIC_1 = __importDefault2(require_isBIC()); + exports2.IS_BIC = "isBIC"; + function isBIC(value) { + return typeof value === "string" && (0, isBIC_1.default)(value); + } + __name(isBIC, "isBIC"); + exports2.isBIC = isBIC; + function IsBIC(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_BIC, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isBIC(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a BIC or SWIFT code", validationOptions) + } + }, validationOptions); + } + __name(IsBIC, "IsBIC"); + exports2.IsBIC = IsBIC; + } +}); + +// node_modules/validator/lib/isBtcAddress.js +var require_isBtcAddress = __commonJS({ + "node_modules/validator/lib/isBtcAddress.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isBtcAddress; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var bech32 = /^(bc1|tb1|bc1p|tb1p)[ac-hj-np-z02-9]{39,58}$/; + var base58 = /^(1|2|3|m)[A-HJ-NP-Za-km-z1-9]{25,39}$/; + function isBtcAddress(str) { + (0, _assertString.default)(str); + return bech32.test(str) || base58.test(str); + } + __name(isBtcAddress, "isBtcAddress"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js +var require_IsBtcAddress = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsBtcAddress = exports2.isBtcAddress = exports2.IS_BTC_ADDRESS = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isBtcAddress_1 = __importDefault2(require_isBtcAddress()); + exports2.IS_BTC_ADDRESS = "isBtcAddress"; + function isBtcAddress(value) { + return typeof value === "string" && (0, isBtcAddress_1.default)(value); + } + __name(isBtcAddress, "isBtcAddress"); + exports2.isBtcAddress = isBtcAddress; + function IsBtcAddress(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_BTC_ADDRESS, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isBtcAddress(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a BTC address", validationOptions) + } + }, validationOptions); + } + __name(IsBtcAddress, "IsBtcAddress"); + exports2.IsBtcAddress = IsBtcAddress; + } +}); + +// node_modules/validator/lib/isDataURI.js +var require_isDataURI = __commonJS({ + "node_modules/validator/lib/isDataURI.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isDataURI; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var validMediaType = /^[a-z]+\/[a-z0-9\-\+\._]+$/i; + var validAttribute = /^[a-z\-]+=[a-z0-9\-]+$/i; + var validData = /^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i; + function isDataURI(str) { + (0, _assertString.default)(str); + var data = str.split(","); + if (data.length < 2) { + return false; + } + var attributes = data.shift().trim().split(";"); + var schemeAndMediaType = attributes.shift(); + if (schemeAndMediaType.slice(0, 5) !== "data:") { + return false; + } + var mediaType = schemeAndMediaType.slice(5); + if (mediaType !== "" && !validMediaType.test(mediaType)) { + return false; + } + for (var i = 0; i < attributes.length; i++) { + if (!(i === attributes.length - 1 && attributes[i].toLowerCase() === "base64") && !validAttribute.test(attributes[i])) { + return false; + } + } + for (var _i = 0; _i < data.length; _i++) { + if (!validData.test(data[_i])) { + return false; + } + } + return true; + } + __name(isDataURI, "isDataURI"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsDataURI.js +var require_IsDataURI = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsDataURI.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsDataURI = exports2.isDataURI = exports2.IS_DATA_URI = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isDataURI_1 = __importDefault2(require_isDataURI()); + exports2.IS_DATA_URI = "isDataURI"; + function isDataURI(value) { + return typeof value === "string" && (0, isDataURI_1.default)(value); + } + __name(isDataURI, "isDataURI"); + exports2.isDataURI = isDataURI; + function IsDataURI(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_DATA_URI, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isDataURI(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a data uri format", validationOptions) + } + }, validationOptions); + } + __name(IsDataURI, "IsDataURI"); + exports2.IsDataURI = IsDataURI; + } +}); + +// node_modules/validator/lib/isEAN.js +var require_isEAN = __commonJS({ + "node_modules/validator/lib/isEAN.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isEAN; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var LENGTH_EAN_8 = 8; + var LENGTH_EAN_14 = 14; + var validEanRegex = /^(\d{8}|\d{13}|\d{14})$/; + function getPositionWeightThroughLengthAndIndex(length, index) { + if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) { + return index % 2 === 0 ? 3 : 1; + } + return index % 2 === 0 ? 1 : 3; + } + __name(getPositionWeightThroughLengthAndIndex, "getPositionWeightThroughLengthAndIndex"); + function calculateCheckDigit(ean) { + var checksum = ean.slice(0, -1).split("").map(function(char, index) { + return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index); + }).reduce(function(acc, partialSum) { + return acc + partialSum; + }, 0); + var remainder = 10 - checksum % 10; + return remainder < 10 ? remainder : 0; + } + __name(calculateCheckDigit, "calculateCheckDigit"); + function isEAN(str) { + (0, _assertString.default)(str); + var actualCheckDigit = Number(str.slice(-1)); + return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str); + } + __name(isEAN, "isEAN"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsEAN.js +var require_IsEAN = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsEAN.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsEAN = exports2.isEAN = exports2.IS_EAN = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isEAN_1 = __importDefault2(require_isEAN()); + exports2.IS_EAN = "isEAN"; + function isEAN(value) { + return typeof value === "string" && (0, isEAN_1.default)(value); + } + __name(isEAN, "isEAN"); + exports2.isEAN = isEAN; + function IsEAN(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_EAN, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isEAN(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an EAN (European Article Number)", validationOptions) + } + }, validationOptions); + } + __name(IsEAN, "IsEAN"); + exports2.IsEAN = IsEAN; + } +}); + +// node_modules/validator/lib/isEthereumAddress.js +var require_isEthereumAddress = __commonJS({ + "node_modules/validator/lib/isEthereumAddress.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isEthereumAddress; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var eth = /^(0x)[0-9a-f]{40}$/i; + function isEthereumAddress(str) { + (0, _assertString.default)(str); + return eth.test(str); + } + __name(isEthereumAddress, "isEthereumAddress"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js +var require_IsEthereumAddress = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsEthereumAddress = exports2.isEthereumAddress = exports2.IS_ETHEREUM_ADDRESS = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isEthereumAddress_1 = __importDefault2(require_isEthereumAddress()); + exports2.IS_ETHEREUM_ADDRESS = "isEthereumAddress"; + function isEthereumAddress(value) { + return typeof value === "string" && (0, isEthereumAddress_1.default)(value); + } + __name(isEthereumAddress, "isEthereumAddress"); + exports2.isEthereumAddress = isEthereumAddress; + function IsEthereumAddress(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ETHEREUM_ADDRESS, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isEthereumAddress(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an Ethereum address", validationOptions) + } + }, validationOptions); + } + __name(IsEthereumAddress, "IsEthereumAddress"); + exports2.IsEthereumAddress = IsEthereumAddress; + } +}); + +// node_modules/validator/lib/isHSL.js +var require_isHSL = __commonJS({ + "node_modules/validator/lib/isHSL.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isHSL; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var hslComma = /^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}(,((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?))?\)$/i; + var hslSpace = /^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(\s(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s?(\/\s((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s?)?\)$/i; + function isHSL(str) { + (0, _assertString.default)(str); + var strippedStr = str.replace(/\s+/g, " ").replace(/\s?(hsla?\(|\)|,)\s?/ig, "$1"); + if (strippedStr.indexOf(",") !== -1) { + return hslComma.test(strippedStr); + } + return hslSpace.test(strippedStr); + } + __name(isHSL, "isHSL"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsHSL.js +var require_IsHSL = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsHSL.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsHSL = exports2.isHSL = exports2.IS_HSL = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isHSL_1 = __importDefault2(require_isHSL()); + exports2.IS_HSL = "isHSL"; + function isHSL(value) { + return typeof value === "string" && (0, isHSL_1.default)(value); + } + __name(isHSL, "isHSL"); + exports2.isHSL = isHSL; + function IsHSL(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_HSL, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isHSL(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a HSL color", validationOptions) + } + }, validationOptions); + } + __name(IsHSL, "IsHSL"); + exports2.IsHSL = IsHSL; + } +}); + +// node_modules/validator/lib/isIBAN.js +var require_isIBAN = __commonJS({ + "node_modules/validator/lib/isIBAN.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isIBAN; + exports2.locales = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + var _includesArray = _interopRequireDefault(require_includesArray()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var ibanRegexThroughCountryCode = { + AD: /^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/, + AE: /^(AE[0-9]{2})\d{3}\d{16}$/, + AL: /^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/, + AT: /^(AT[0-9]{2})\d{16}$/, + AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/, + BA: /^(BA[0-9]{2})\d{16}$/, + BE: /^(BE[0-9]{2})\d{12}$/, + BG: /^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/, + BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/, + BR: /^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/, + BY: /^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/, + CH: /^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/, + CR: /^(CR[0-9]{2})\d{18}$/, + CY: /^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/, + CZ: /^(CZ[0-9]{2})\d{20}$/, + DE: /^(DE[0-9]{2})\d{18}$/, + DK: /^(DK[0-9]{2})\d{14}$/, + DO: /^(DO[0-9]{2})[A-Z]{4}\d{20}$/, + DZ: /^(DZ\d{24})$/, + EE: /^(EE[0-9]{2})\d{16}$/, + EG: /^(EG[0-9]{2})\d{25}$/, + ES: /^(ES[0-9]{2})\d{20}$/, + FI: /^(FI[0-9]{2})\d{14}$/, + FO: /^(FO[0-9]{2})\d{14}$/, + FR: /^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/, + GB: /^(GB[0-9]{2})[A-Z]{4}\d{14}$/, + GE: /^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/, + GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/, + GL: /^(GL[0-9]{2})\d{14}$/, + GR: /^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/, + GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/, + HR: /^(HR[0-9]{2})\d{17}$/, + HU: /^(HU[0-9]{2})\d{24}$/, + IE: /^(IE[0-9]{2})[A-Z]{4}\d{14}$/, + IL: /^(IL[0-9]{2})\d{19}$/, + IQ: /^(IQ[0-9]{2})[A-Z]{4}\d{15}$/, + IR: /^(IR[0-9]{2})\d{22}$/, + IS: /^(IS[0-9]{2})\d{22}$/, + IT: /^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/, + JO: /^(JO[0-9]{2})[A-Z]{4}\d{22}$/, + KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/, + KZ: /^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/, + LB: /^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/, + LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/, + LI: /^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/, + LT: /^(LT[0-9]{2})\d{16}$/, + LU: /^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/, + LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/, + MA: /^(MA[0-9]{26})$/, + MC: /^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/, + MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/, + ME: /^(ME[0-9]{2})\d{18}$/, + MK: /^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/, + MR: /^(MR[0-9]{2})\d{23}$/, + MT: /^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/, + MU: /^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/, + MZ: /^(MZ[0-9]{2})\d{21}$/, + NL: /^(NL[0-9]{2})[A-Z]{4}\d{10}$/, + NO: /^(NO[0-9]{2})\d{11}$/, + PK: /^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/, + PL: /^(PL[0-9]{2})\d{24}$/, + PS: /^(PS[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/, + PT: /^(PT[0-9]{2})\d{21}$/, + QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/, + RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/, + RS: /^(RS[0-9]{2})\d{18}$/, + SA: /^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/, + SC: /^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/, + SE: /^(SE[0-9]{2})\d{20}$/, + SI: /^(SI[0-9]{2})\d{15}$/, + SK: /^(SK[0-9]{2})\d{20}$/, + SM: /^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/, + SV: /^(SV[0-9]{2})[A-Z0-9]{4}\d{20}$/, + TL: /^(TL[0-9]{2})\d{19}$/, + TN: /^(TN[0-9]{2})\d{20}$/, + TR: /^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/, + UA: /^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/, + VA: /^(VA[0-9]{2})\d{18}$/, + VG: /^(VG[0-9]{2})[A-Z]{4}\d{16}$/, + XK: /^(XK[0-9]{2})\d{16}$/ + }; + function hasOnlyValidCountryCodes(countryCodeArray) { + var countryCodeArrayFilteredWithObjectIbanCode = countryCodeArray.filter(function(countryCode) { + return !(countryCode in ibanRegexThroughCountryCode); + }); + return countryCodeArrayFilteredWithObjectIbanCode.length === 0; + } + __name(hasOnlyValidCountryCodes, "hasOnlyValidCountryCodes"); + function hasValidIbanFormat(str, options) { + var strippedStr = str.replace(/[\s\-]+/gi, "").toUpperCase(); + var isoCountryCode = strippedStr.slice(0, 2).toUpperCase(); + var isoCountryCodeInIbanRegexCodeObject = isoCountryCode in ibanRegexThroughCountryCode; + if (options.whitelist) { + if (!hasOnlyValidCountryCodes(options.whitelist)) { + return false; + } + var isoCountryCodeInWhiteList = (0, _includesArray.default)(options.whitelist, isoCountryCode); + if (!isoCountryCodeInWhiteList) { + return false; + } + } + if (options.blacklist) { + var isoCountryCodeInBlackList = (0, _includesArray.default)(options.blacklist, isoCountryCode); + if (isoCountryCodeInBlackList) { + return false; + } + } + return isoCountryCodeInIbanRegexCodeObject && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr); + } + __name(hasValidIbanFormat, "hasValidIbanFormat"); + function hasValidIbanChecksum(str) { + var strippedStr = str.replace(/[^A-Z0-9]+/gi, "").toUpperCase(); + var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4); + var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function(char) { + return char.charCodeAt(0) - 55; + }); + var remainder = alphaCapsReplacedWithDigits.match(/\d{1,7}/g).reduce(function(acc, value) { + return Number(acc + value) % 97; + }, ""); + return remainder === 1; + } + __name(hasValidIbanChecksum, "hasValidIbanChecksum"); + function isIBAN(str) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + (0, _assertString.default)(str); + return hasValidIbanFormat(str, options) && hasValidIbanChecksum(str); + } + __name(isIBAN, "isIBAN"); + var locales = exports2.locales = Object.keys(ibanRegexThroughCountryCode); + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsIBAN.js +var require_IsIBAN = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsIBAN.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsIBAN = exports2.isIBAN = exports2.IS_IBAN = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isIBAN_1 = __importDefault2(require_isIBAN()); + exports2.IS_IBAN = "isIBAN"; + function isIBAN(value, options) { + return typeof value === "string" && (0, isIBAN_1.default)(value, options); + } + __name(isIBAN, "isIBAN"); + exports2.isIBAN = isIBAN; + function IsIBAN(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_IBAN, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isIBAN(value, options), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an IBAN", validationOptions) + } + }, validationOptions); + } + __name(IsIBAN, "IsIBAN"); + exports2.IsIBAN = IsIBAN; + } +}); + +// node_modules/validator/lib/isIdentityCard.js +var require_isIdentityCard = __commonJS({ + "node_modules/validator/lib/isIdentityCard.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isIdentityCard; + var _assertString = _interopRequireDefault(require_assertString()); + var _includesArray = _interopRequireDefault(require_includesArray()); + var _isInt = _interopRequireDefault(require_isInt()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var validators = { + PL: /* @__PURE__ */ __name(function PL(str) { + (0, _assertString.default)(str); + var weightOfDigits = { + 1: 1, + 2: 3, + 3: 7, + 4: 9, + 5: 1, + 6: 3, + 7: 7, + 8: 9, + 9: 1, + 10: 3, + 11: 0 + }; + if (str != null && str.length === 11 && (0, _isInt.default)(str, { + allow_leading_zeroes: true + })) { + var digits = str.split("").slice(0, -1); + var sum = digits.reduce(function(acc, digit, index) { + return acc + Number(digit) * weightOfDigits[index + 1]; + }, 0); + var modulo = sum % 10; + var lastDigit = Number(str.charAt(str.length - 1)); + if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) { + return true; + } + } + return false; + }, "PL"), + ES: /* @__PURE__ */ __name(function ES(str) { + (0, _assertString.default)(str); + var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/; + var charsValue = { + X: 0, + Y: 1, + Z: 2 + }; + var controlDigits = ["T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E"]; + var sanitized = str.trim().toUpperCase(); + if (!DNI.test(sanitized)) { + return false; + } + var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function(char) { + return charsValue[char]; + }); + return sanitized.endsWith(controlDigits[number % 23]); + }, "ES"), + FI: /* @__PURE__ */ __name(function FI(str) { + (0, _assertString.default)(str); + if (str.length !== 11) { + return false; + } + if (!str.match(/^\d{6}[\-A\+]\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) { + return false; + } + var checkDigits = "0123456789ABCDEFHJKLMNPRSTUVWXY"; + var idAsNumber = parseInt(str.slice(0, 6), 10) * 1e3 + parseInt(str.slice(7, 10), 10); + var remainder = idAsNumber % 31; + var checkDigit = checkDigits[remainder]; + return checkDigit === str.slice(10, 11); + }, "FI"), + IN: /* @__PURE__ */ __name(function IN(str) { + var DNI = /^[1-9]\d{3}\s?\d{4}\s?\d{4}$/; + var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; + var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; + var sanitized = str.trim(); + if (!DNI.test(sanitized)) { + return false; + } + var c = 0; + var invertedArray = sanitized.replace(/\s/g, "").split("").map(Number).reverse(); + invertedArray.forEach(function(val, i) { + c = d[c][p[i % 8][val]]; + }); + return c === 0; + }, "IN"), + IR: /* @__PURE__ */ __name(function IR(str) { + if (!str.match(/^\d{10}$/)) return false; + str = "0000".concat(str).slice(str.length - 6); + if (parseInt(str.slice(3, 9), 10) === 0) return false; + var lastNumber = parseInt(str.slice(9, 10), 10); + var sum = 0; + for (var i = 0; i < 9; i++) { + sum += parseInt(str.slice(i, i + 1), 10) * (10 - i); + } + sum %= 11; + return sum < 2 && lastNumber === sum || sum >= 2 && lastNumber === 11 - sum; + }, "IR"), + IT: /* @__PURE__ */ __name(function IT(str) { + if (str.length !== 9) return false; + if (str === "CA00000AA") return false; + return str.search(/C[A-Z]\d{5}[A-Z]{2}/i) > -1; + }, "IT"), + NO: /* @__PURE__ */ __name(function NO(str) { + var sanitized = str.trim(); + if (isNaN(Number(sanitized))) return false; + if (sanitized.length !== 11) return false; + if (sanitized === "00000000000") return false; + var f = sanitized.split("").map(Number); + var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11; + var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11; + if (k1 !== f[9] || k2 !== f[10]) return false; + return true; + }, "NO"), + TH: /* @__PURE__ */ __name(function TH(str) { + if (!str.match(/^[1-8]\d{12}$/)) return false; + var sum = 0; + for (var i = 0; i < 12; i++) { + sum += parseInt(str[i], 10) * (13 - i); + } + return str[12] === ((11 - sum % 11) % 10).toString(); + }, "TH"), + LK: /* @__PURE__ */ __name(function LK(str) { + var old_nic = /^[1-9]\d{8}[vx]$/i; + var new_nic = /^[1-9]\d{11}$/i; + if (str.length === 10 && old_nic.test(str)) return true; + else if (str.length === 12 && new_nic.test(str)) return true; + return false; + }, "LK"), + "he-IL": /* @__PURE__ */ __name(function heIL(str) { + var DNI = /^\d{9}$/; + var sanitized = str.trim(); + if (!DNI.test(sanitized)) { + return false; + } + var id = sanitized; + var sum = 0, incNum; + for (var i = 0; i < id.length; i++) { + incNum = Number(id[i]) * (i % 2 + 1); + sum += incNum > 9 ? incNum - 9 : incNum; + } + return sum % 10 === 0; + }, "heIL"), + "ar-LY": /* @__PURE__ */ __name(function arLY(str) { + var NIN = /^(1|2)\d{11}$/; + var sanitized = str.trim(); + return NIN.test(sanitized); + }, "arLY"), + "ar-TN": /* @__PURE__ */ __name(function arTN(str) { + var DNI = /^\d{8}$/; + var sanitized = str.trim(); + return DNI.test(sanitized); + }, "arTN"), + "zh-CN": /* @__PURE__ */ __name(function zhCN(str) { + var provincesAndCities = [ + "11", + // 北京 + "12", + // 天津 + "13", + // 河北 + "14", + // 山西 + "15", + // 内蒙古 + "21", + // 辽宁 + "22", + // 吉林 + "23", + // 黑龙江 + "31", + // 上海 + "32", + // 江苏 + "33", + // 浙江 + "34", + // 安徽 + "35", + // 福建 + "36", + // 江西 + "37", + // 山东 + "41", + // 河南 + "42", + // 湖北 + "43", + // 湖南 + "44", + // 广东 + "45", + // 广西 + "46", + // 海南 + "50", + // 重庆 + "51", + // 四川 + "52", + // 贵州 + "53", + // 云南 + "54", + // 西藏 + "61", + // 陕西 + "62", + // 甘肃 + "63", + // 青海 + "64", + // 宁夏 + "65", + // 新疆 + "71", + // 台湾 + "81", + // 香港 + "82", + // 澳门 + "91" + // 国外 + ]; + var powers = ["7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"]; + var parityBit = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"]; + var checkAddressCode = /* @__PURE__ */ __name(function checkAddressCode2(addressCode) { + return (0, _includesArray.default)(provincesAndCities, addressCode); + }, "checkAddressCode"); + var checkBirthDayCode = /* @__PURE__ */ __name(function checkBirthDayCode2(birDayCode) { + var yyyy = parseInt(birDayCode.substring(0, 4), 10); + var mm = parseInt(birDayCode.substring(4, 6), 10); + var dd = parseInt(birDayCode.substring(6), 10); + var xdata = new Date(yyyy, mm - 1, dd); + if (xdata > /* @__PURE__ */ new Date()) { + return false; + } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) { + return true; + } + return false; + }, "checkBirthDayCode"); + var getParityBit = /* @__PURE__ */ __name(function getParityBit2(idCardNo) { + var id17 = idCardNo.substring(0, 17); + var power = 0; + for (var i = 0; i < 17; i++) { + power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10); + } + var mod = power % 11; + return parityBit[mod]; + }, "getParityBit"); + var checkParityBit = /* @__PURE__ */ __name(function checkParityBit2(idCardNo) { + return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase(); + }, "checkParityBit"); + var check15IdCardNo = /* @__PURE__ */ __name(function check15IdCardNo2(idCardNo) { + var check = /^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(idCardNo); + if (!check) return false; + var addressCode = idCardNo.substring(0, 2); + check = checkAddressCode(addressCode); + if (!check) return false; + var birDayCode = "19".concat(idCardNo.substring(6, 12)); + check = checkBirthDayCode(birDayCode); + if (!check) return false; + return true; + }, "check15IdCardNo"); + var check18IdCardNo = /* @__PURE__ */ __name(function check18IdCardNo2(idCardNo) { + var check = /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(idCardNo); + if (!check) return false; + var addressCode = idCardNo.substring(0, 2); + check = checkAddressCode(addressCode); + if (!check) return false; + var birDayCode = idCardNo.substring(6, 14); + check = checkBirthDayCode(birDayCode); + if (!check) return false; + return checkParityBit(idCardNo); + }, "check18IdCardNo"); + var checkIdCardNo = /* @__PURE__ */ __name(function checkIdCardNo2(idCardNo) { + var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(idCardNo); + if (!check) return false; + if (idCardNo.length === 15) { + return check15IdCardNo(idCardNo); + } + return check18IdCardNo(idCardNo); + }, "checkIdCardNo"); + return checkIdCardNo(str); + }, "zhCN"), + "zh-HK": /* @__PURE__ */ __name(function zhHK(str) { + str = str.trim(); + var regexHKID = /^[A-Z]{1,2}[0-9]{6}((\([0-9A]\))|(\[[0-9A]\])|([0-9A]))$/; + var regexIsDigit = /^[0-9]$/; + str = str.toUpperCase(); + if (!regexHKID.test(str)) return false; + str = str.replace(/\[|\]|\(|\)/g, ""); + if (str.length === 8) str = "3".concat(str); + var checkSumVal = 0; + for (var i = 0; i <= 7; i++) { + var convertedChar = void 0; + if (!regexIsDigit.test(str[i])) convertedChar = (str[i].charCodeAt(0) - 55) % 11; + else convertedChar = str[i]; + checkSumVal += convertedChar * (9 - i); + } + checkSumVal %= 11; + var checkSumConverted; + if (checkSumVal === 0) checkSumConverted = "0"; + else if (checkSumVal === 1) checkSumConverted = "A"; + else checkSumConverted = String(11 - checkSumVal); + if (checkSumConverted === str[str.length - 1]) return true; + return false; + }, "zhHK"), + "zh-TW": /* @__PURE__ */ __name(function zhTW(str) { + var ALPHABET_CODES = { + A: 10, + B: 11, + C: 12, + D: 13, + E: 14, + F: 15, + G: 16, + H: 17, + I: 34, + J: 18, + K: 19, + L: 20, + M: 21, + N: 22, + O: 35, + P: 23, + Q: 24, + R: 25, + S: 26, + T: 27, + U: 28, + V: 29, + W: 32, + X: 30, + Y: 31, + Z: 33 + }; + var sanitized = str.trim().toUpperCase(); + if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false; + return Array.from(sanitized).reduce(function(sum, number, index) { + if (index === 0) { + var code = ALPHABET_CODES[number]; + return code % 10 * 9 + Math.floor(code / 10); + } + if (index === 9) { + return (10 - sum % 10 - Number(number)) % 10 === 0; + } + return sum + Number(number) * (9 - index); + }, 0); + }, "zhTW"), + PK: /* @__PURE__ */ __name(function PK(str) { + var CNIC = /^[1-7][0-9]{4}-[0-9]{7}-[1-9]$/; + var sanitized = str.trim(); + return CNIC.test(sanitized); + }, "PK") + }; + function isIdentityCard(str, locale) { + (0, _assertString.default)(str); + if (locale in validators) { + return validators[locale](str); + } else if (locale === "any") { + for (var key in validators) { + if (validators.hasOwnProperty(key)) { + var validator = validators[key]; + if (validator(str)) { + return true; + } + } + } + return false; + } + throw new Error("Invalid locale '".concat(locale, "'")); + } + __name(isIdentityCard, "isIdentityCard"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js +var require_IsIdentityCard = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsIdentityCard = exports2.isIdentityCard = exports2.IS_IDENTITY_CARD = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isIdentityCard_1 = __importDefault2(require_isIdentityCard()); + exports2.IS_IDENTITY_CARD = "isIdentityCard"; + function isIdentityCard(value, locale) { + return typeof value === "string" && (0, isIdentityCard_1.default)(value, locale); + } + __name(isIdentityCard, "isIdentityCard"); + exports2.isIdentityCard = isIdentityCard; + function IsIdentityCard(locale, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_IDENTITY_CARD, + constraints: [locale], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isIdentityCard(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a identity card number", validationOptions) + } + }, validationOptions); + } + __name(IsIdentityCard, "IsIdentityCard"); + exports2.IsIdentityCard = IsIdentityCard; + } +}); + +// node_modules/validator/lib/isISRC.js +var require_isISRC = __commonJS({ + "node_modules/validator/lib/isISRC.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isISRC; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var isrc = /^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/; + function isISRC(str) { + (0, _assertString.default)(str); + return isrc.test(str); + } + __name(isISRC, "isISRC"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsISRC.js +var require_IsISRC = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsISRC.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISRC = exports2.isISRC = exports2.IS_ISRC = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISRC_1 = __importDefault2(require_isISRC()); + exports2.IS_ISRC = "isISRC"; + function isISRC(value) { + return typeof value === "string" && (0, isISRC_1.default)(value); + } + __name(isISRC, "isISRC"); + exports2.isISRC = isISRC; + function IsISRC(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISRC, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISRC(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an ISRC", validationOptions) + } + }, validationOptions); + } + __name(IsISRC, "IsISRC"); + exports2.IsISRC = IsISRC; + } +}); + +// node_modules/validator/lib/isLocale.js +var require_isLocale = __commonJS({ + "node_modules/validator/lib/isLocale.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isLocale; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var extlang = "([A-Za-z]{3}(-[A-Za-z]{3}){0,2})"; + var language = "(([a-zA-Z]{2,3}(-".concat(extlang, ")?)|([a-zA-Z]{5,8}))"); + var script = "([A-Za-z]{4})"; + var region = "([A-Za-z]{2}|\\d{3})"; + var variant = "([A-Za-z0-9]{5,8}|(\\d[A-Z-a-z0-9]{3}))"; + var singleton = "(\\d|[A-W]|[Y-Z]|[a-w]|[y-z])"; + var extension = "(".concat(singleton, "(-[A-Za-z0-9]{2,8})+)"); + var privateuse = "(x(-[A-Za-z0-9]{1,8})+)"; + var irregular = "((en-GB-oed)|(i-ami)|(i-bnn)|(i-default)|(i-enochian)|(i-hak)|(i-klingon)|(i-lux)|(i-mingo)|(i-navajo)|(i-pwn)|(i-tao)|(i-tay)|(i-tsu)|(sgn-BE-FR)|(sgn-BE-NL)|(sgn-CH-DE))"; + var regular = "((art-lojban)|(cel-gaulish)|(no-bok)|(no-nyn)|(zh-guoyu)|(zh-hakka)|(zh-min)|(zh-min-nan)|(zh-xiang))"; + var grandfathered = "(".concat(irregular, "|").concat(regular, ")"); + var delimiter = "(-|_)"; + var langtag = "".concat(language, "(").concat(delimiter).concat(script, ")?(").concat(delimiter).concat(region, ")?(").concat(delimiter).concat(variant, ")*(").concat(delimiter).concat(extension, ")*(").concat(delimiter).concat(privateuse, ")?"); + var languageTagRegex = new RegExp("(^".concat(privateuse, "$)|(^").concat(grandfathered, "$)|(^").concat(langtag, "$)")); + function isLocale(str) { + (0, _assertString.default)(str); + return languageTagRegex.test(str); + } + __name(isLocale, "isLocale"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsLocale.js +var require_IsLocale = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsLocale.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsLocale = exports2.isLocale = exports2.IS_LOCALE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isLocale_1 = __importDefault2(require_isLocale()); + exports2.IS_LOCALE = "isLocale"; + function isLocale(value) { + return typeof value === "string" && (0, isLocale_1.default)(value); + } + __name(isLocale, "isLocale"); + exports2.isLocale = isLocale; + function IsLocale(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_LOCALE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isLocale(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be locale", validationOptions) + } + }, validationOptions); + } + __name(IsLocale, "IsLocale"); + exports2.IsLocale = IsLocale; + } +}); + +// node_modules/validator/lib/isMagnetURI.js +var require_isMagnetURI = __commonJS({ + "node_modules/validator/lib/isMagnetURI.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isMagnetURI; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var magnetURIComponent = /(?:^magnet:\?|[^?&]&)xt(?:\.1)?=urn:(?:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?|btmh:1220[a-z0-9]{64})(?:$|&)/i; + function isMagnetURI(url) { + (0, _assertString.default)(url); + if (url.indexOf("magnet:?") !== 0) { + return false; + } + return magnetURIComponent.test(url); + } + __name(isMagnetURI, "isMagnetURI"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js +var require_IsMagnetURI = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsMagnetURI = exports2.isMagnetURI = exports2.IS_MAGNET_URI = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isMagnetURI_1 = __importDefault2(require_isMagnetURI()); + exports2.IS_MAGNET_URI = "isMagnetURI"; + function isMagnetURI(value) { + return typeof value === "string" && (0, isMagnetURI_1.default)(value); + } + __name(isMagnetURI, "isMagnetURI"); + exports2.isMagnetURI = isMagnetURI; + function IsMagnetURI(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_MAGNET_URI, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isMagnetURI(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be magnet uri format", validationOptions) + } + }, validationOptions); + } + __name(IsMagnetURI, "IsMagnetURI"); + exports2.IsMagnetURI = IsMagnetURI; + } +}); + +// node_modules/validator/lib/isMimeType.js +var require_isMimeType = __commonJS({ + "node_modules/validator/lib/isMimeType.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isMimeType; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+_]{1,100}$/i; + var mimeTypeText = /^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i; + var mimeTypeMultipart = /^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i; + function isMimeType(str) { + (0, _assertString.default)(str); + return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str); + } + __name(isMimeType, "isMimeType"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsMimeType.js +var require_IsMimeType = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsMimeType.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsMimeType = exports2.isMimeType = exports2.IS_MIME_TYPE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isMimeType_1 = __importDefault2(require_isMimeType()); + exports2.IS_MIME_TYPE = "isMimeType"; + function isMimeType(value) { + return typeof value === "string" && (0, isMimeType_1.default)(value); + } + __name(isMimeType, "isMimeType"); + exports2.isMimeType = isMimeType; + function IsMimeType(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_MIME_TYPE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isMimeType(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be MIME type format", validationOptions) + } + }, validationOptions); + } + __name(IsMimeType, "IsMimeType"); + exports2.IsMimeType = IsMimeType; + } +}); + +// node_modules/validator/lib/isOctal.js +var require_isOctal = __commonJS({ + "node_modules/validator/lib/isOctal.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isOctal; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var octal = /^(0o)?[0-7]+$/i; + function isOctal(str) { + (0, _assertString.default)(str); + return octal.test(str); + } + __name(isOctal, "isOctal"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsOctal.js +var require_IsOctal = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsOctal.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsOctal = exports2.isOctal = exports2.IS_OCTAL = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isOctal_1 = __importDefault2(require_isOctal()); + exports2.IS_OCTAL = "isOctal"; + function isOctal(value) { + return typeof value === "string" && (0, isOctal_1.default)(value); + } + __name(isOctal, "isOctal"); + exports2.isOctal = isOctal; + function IsOctal(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_OCTAL, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isOctal(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be valid octal number", validationOptions) + } + }, validationOptions); + } + __name(IsOctal, "IsOctal"); + exports2.IsOctal = IsOctal; + } +}); + +// node_modules/validator/lib/isPassportNumber.js +var require_isPassportNumber = __commonJS({ + "node_modules/validator/lib/isPassportNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isPassportNumber; + exports2.locales = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var passportRegexByCountryCode = { + AM: /^[A-Z]{2}\d{7}$/, + // ARMENIA + AR: /^[A-Z]{3}\d{6}$/, + // ARGENTINA + AT: /^[A-Z]\d{7}$/, + // AUSTRIA + AU: /^[A-Z]\d{7}$/, + // AUSTRALIA + AZ: /^[A-Z]{1}\d{8}$/, + // AZERBAIJAN + BE: /^[A-Z]{2}\d{6}$/, + // BELGIUM + BG: /^\d{9}$/, + // BULGARIA + BR: /^[A-Z]{2}\d{6}$/, + // BRAZIL + BY: /^[A-Z]{2}\d{7}$/, + // BELARUS + CA: /^[A-Z]{2}\d{6}$|^[A-Z]\d{6}[A-Z]{2}$/, + // CANADA + CH: /^[A-Z]\d{7}$/, + // SWITZERLAND + CN: /^G\d{8}$|^E(?![IO])[A-Z0-9]\d{7}$/, + // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits + CY: /^[A-Z](\d{6}|\d{8})$/, + // CYPRUS + CZ: /^\d{8}$/, + // CZECH REPUBLIC + DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/, + // GERMANY + DK: /^\d{9}$/, + // DENMARK + DZ: /^\d{9}$/, + // ALGERIA + EE: /^([A-Z]\d{7}|[A-Z]{2}\d{7})$/, + // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits + ES: /^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/, + // SPAIN + FI: /^[A-Z]{2}\d{7}$/, + // FINLAND + FR: /^\d{2}[A-Z]{2}\d{5}$/, + // FRANCE + GB: /^\d{9}$/, + // UNITED KINGDOM + GR: /^[A-Z]{2}\d{7}$/, + // GREECE + HR: /^\d{9}$/, + // CROATIA + HU: /^[A-Z]{2}(\d{6}|\d{7})$/, + // HUNGARY + IE: /^[A-Z0-9]{2}\d{7}$/, + // IRELAND + IN: /^[A-Z]{1}-?\d{7}$/, + // INDIA + ID: /^[A-C]\d{7}$/, + // INDONESIA + IR: /^[A-Z]\d{8}$/, + // IRAN + IS: /^(A)\d{7}$/, + // ICELAND + IT: /^[A-Z0-9]{2}\d{7}$/, + // ITALY + JM: /^[Aa]\d{7}$/, + // JAMAICA + JP: /^[A-Z]{2}\d{7}$/, + // JAPAN + KR: /^[MS]\d{8}$/, + // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports] + KZ: /^[a-zA-Z]\d{7}$/, + // KAZAKHSTAN + LI: /^[a-zA-Z]\d{5}$/, + // LIECHTENSTEIN + LT: /^[A-Z0-9]{8}$/, + // LITHUANIA + LU: /^[A-Z0-9]{8}$/, + // LUXEMBURG + LV: /^[A-Z0-9]{2}\d{7}$/, + // LATVIA + LY: /^[A-Z0-9]{8}$/, + // LIBYA + MT: /^\d{7}$/, + // MALTA + MZ: /^([A-Z]{2}\d{7})|(\d{2}[A-Z]{2}\d{5})$/, + // MOZAMBIQUE + MY: /^[AHK]\d{8}$/, + // MALAYSIA + MX: /^[A-Z]\d{8}$/, + // MEXICO + NL: /^[A-Z]{2}[A-Z0-9]{6}\d$/, + // NETHERLANDS + NZ: /^([Ll]([Aa]|[Dd]|[Ff]|[Hh])|[Ee]([Aa]|[Pp])|[Nn])\d{6}$/, + // NEW ZEALAND + PH: /^([A-Z](\d{6}|\d{7}[A-Z]))|([A-Z]{2}(\d{6}|\d{7}))$/, + // PHILIPPINES + PK: /^[A-Z]{2}\d{7}$/, + // PAKISTAN + PL: /^[A-Z]{2}\d{7}$/, + // POLAND + PT: /^[A-Z]\d{6}$/, + // PORTUGAL + RO: /^\d{8,9}$/, + // ROMANIA + RU: /^\d{9}$/, + // RUSSIAN FEDERATION + SE: /^\d{8}$/, + // SWEDEN + SL: /^(P)[A-Z]\d{7}$/, + // SLOVENIA + SK: /^[0-9A-Z]\d{7}$/, + // SLOVAKIA + TH: /^[A-Z]{1,2}\d{6,7}$/, + // THAILAND + TR: /^[A-Z]\d{8}$/, + // TURKEY + UA: /^[A-Z]{2}\d{6}$/, + // UKRAINE + US: /^\d{9}$|^[A-Z]\d{8}$/, + // UNITED STATES + ZA: /^[TAMD]\d{8}$/ + // SOUTH AFRICA + }; + var locales = exports2.locales = Object.keys(passportRegexByCountryCode); + function isPassportNumber(str, countryCode) { + (0, _assertString.default)(str); + var normalizedStr = str.replace(/\s/g, "").toUpperCase(); + return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr); + } + __name(isPassportNumber, "isPassportNumber"); + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js +var require_IsPassportNumber = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsPassportNumber = exports2.isPassportNumber = exports2.IS_PASSPORT_NUMBER = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isPassportNumber_1 = __importDefault2(require_isPassportNumber()); + exports2.IS_PASSPORT_NUMBER = "isPassportNumber"; + function isPassportNumber(value, countryCode) { + return typeof value === "string" && (0, isPassportNumber_1.default)(value, countryCode); + } + __name(isPassportNumber, "isPassportNumber"); + exports2.isPassportNumber = isPassportNumber; + function IsPassportNumber(countryCode, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_PASSPORT_NUMBER, + constraints: [countryCode], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isPassportNumber(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be valid passport number", validationOptions) + } + }, validationOptions); + } + __name(IsPassportNumber, "IsPassportNumber"); + exports2.IsPassportNumber = IsPassportNumber; + } +}); + +// node_modules/validator/lib/isPostalCode.js +var require_isPostalCode = __commonJS({ + "node_modules/validator/lib/isPostalCode.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isPostalCode; + exports2.locales = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var threeDigit = /^\d{3}$/; + var fourDigit = /^\d{4}$/; + var fiveDigit = /^\d{5}$/; + var sixDigit = /^\d{6}$/; + var patterns = { + AD: /^AD\d{3}$/, + AT: fourDigit, + AU: fourDigit, + AZ: /^AZ\d{4}$/, + BA: /^([7-8]\d{4}$)/, + BD: /^([1-8][0-9]{3}|9[0-4][0-9]{2})$/, + BE: fourDigit, + BG: fourDigit, + BR: /^\d{5}-?\d{3}$/, + BY: /^2[1-4]\d{4}$/, + CA: /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i, + CH: fourDigit, + CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\d{4}$/, + CO: /^(05|08|11|13|15|17|18|19|20|23|25|27|41|44|47|50|52|54|63|66|68|70|73|76|81|85|86|88|91|94|95|97|99)(\d{4})$/, + CZ: /^\d{3}\s?\d{2}$/, + DE: fiveDigit, + DK: fourDigit, + DO: fiveDigit, + DZ: fiveDigit, + EE: fiveDigit, + ES: /^(5[0-2]{1}|[0-4]{1}\d{1})\d{3}$/, + FI: fiveDigit, + FR: /^(?:(?:0[1-9]|[1-8]\d|9[0-5])\d{3}|97[1-46]\d{2})$/, + GB: /^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i, + GR: /^\d{3}\s?\d{2}$/, + HR: /^([1-5]\d{4}$)/, + HT: /^HT\d{4}$/, + HU: fourDigit, + ID: fiveDigit, + IE: /^(?!.*(?:o))[A-Za-z]\d[\dw]\s\w{4}$/i, + IL: /^(\d{5}|\d{7})$/, + IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/, + IR: /^(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}$/, + IS: threeDigit, + IT: fiveDigit, + JP: /^\d{3}\-\d{4}$/, + KE: fiveDigit, + KR: /^(\d{5}|\d{6})$/, + LI: /^(948[5-9]|949[0-7])$/, + LT: /^LT\-\d{5}$/, + LU: fourDigit, + LV: /^LV\-\d{4}$/, + LK: fiveDigit, + MC: /^980\d{2}$/, + MG: threeDigit, + MX: fiveDigit, + MT: /^[A-Za-z]{3}\s{0,1}\d{4}$/, + MY: fiveDigit, + NL: /^[1-9]\d{3}\s?(?!sa|sd|ss)[a-z]{2}$/i, + NO: fourDigit, + NP: /^(10|21|22|32|33|34|44|45|56|57)\d{3}$|^(977)$/i, + NZ: fourDigit, + // https://www.pakpost.gov.pk/postcodes.php + PK: fiveDigit, + PL: /^\d{2}\-\d{3}$/, + PR: /^00[679]\d{2}([ -]\d{4})?$/, + PT: /^\d{4}\-\d{3}?$/, + RO: sixDigit, + RU: sixDigit, + SA: fiveDigit, + SE: /^[1-9]\d{2}\s?\d{2}$/, + SG: sixDigit, + SI: fourDigit, + SK: /^\d{3}\s?\d{2}$/, + TH: fiveDigit, + TN: fourDigit, + TW: /^\d{3}(\d{2,3})?$/, + UA: fiveDigit, + US: /^\d{5}(-\d{4})?$/, + ZA: fourDigit, + ZM: fiveDigit + }; + var locales = exports2.locales = Object.keys(patterns); + function isPostalCode(str, locale) { + (0, _assertString.default)(str); + if (locale in patterns) { + return patterns[locale].test(str); + } else if (locale === "any") { + for (var key in patterns) { + if (patterns.hasOwnProperty(key)) { + var pattern = patterns[key]; + if (pattern.test(str)) { + return true; + } + } + } + return false; + } + throw new Error("Invalid locale '".concat(locale, "'")); + } + __name(isPostalCode, "isPostalCode"); + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsPostalCode.js +var require_IsPostalCode = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsPostalCode.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsPostalCode = exports2.isPostalCode = exports2.IS_POSTAL_CODE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isPostalCode_1 = __importDefault2(require_isPostalCode()); + exports2.IS_POSTAL_CODE = "isPostalCode"; + function isPostalCode(value, locale) { + return typeof value === "string" && (0, isPostalCode_1.default)(value, locale); + } + __name(isPostalCode, "isPostalCode"); + exports2.isPostalCode = isPostalCode; + function IsPostalCode(locale, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_POSTAL_CODE, + constraints: [locale], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isPostalCode(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a postal code", validationOptions) + } + }, validationOptions); + } + __name(IsPostalCode, "IsPostalCode"); + exports2.IsPostalCode = IsPostalCode; + } +}); + +// node_modules/validator/lib/isRFC3339.js +var require_isRFC3339 = __commonJS({ + "node_modules/validator/lib/isRFC3339.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isRFC3339; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var dateFullYear = /[0-9]{4}/; + var dateMonth = /(0[1-9]|1[0-2])/; + var dateMDay = /([12]\d|0[1-9]|3[01])/; + var timeHour = /([01][0-9]|2[0-3])/; + var timeMinute = /[0-5][0-9]/; + var timeSecond = /([0-5][0-9]|60)/; + var timeSecFrac = /(\.[0-9]+)?/; + var timeNumOffset = new RegExp("[-+]".concat(timeHour.source, ":").concat(timeMinute.source)); + var timeOffset = new RegExp("([zZ]|".concat(timeNumOffset.source, ")")); + var partialTime = new RegExp("".concat(timeHour.source, ":").concat(timeMinute.source, ":").concat(timeSecond.source).concat(timeSecFrac.source)); + var fullDate = new RegExp("".concat(dateFullYear.source, "-").concat(dateMonth.source, "-").concat(dateMDay.source)); + var fullTime = new RegExp("".concat(partialTime.source).concat(timeOffset.source)); + var rfc3339 = new RegExp("^".concat(fullDate.source, "[ tT]").concat(fullTime.source, "$")); + function isRFC3339(str) { + (0, _assertString.default)(str); + return rfc3339.test(str); + } + __name(isRFC3339, "isRFC3339"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsRFC3339.js +var require_IsRFC3339 = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsRFC3339.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsRFC3339 = exports2.isRFC3339 = exports2.IS_RFC_3339 = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isRFC3339_1 = __importDefault2(require_isRFC3339()); + exports2.IS_RFC_3339 = "isRFC3339"; + function isRFC3339(value) { + return typeof value === "string" && (0, isRFC3339_1.default)(value); + } + __name(isRFC3339, "isRFC3339"); + exports2.isRFC3339 = isRFC3339; + function IsRFC3339(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_RFC_3339, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isRFC3339(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be RFC 3339 date", validationOptions) + } + }, validationOptions); + } + __name(IsRFC3339, "IsRFC3339"); + exports2.IsRFC3339 = IsRFC3339; + } +}); + +// node_modules/validator/lib/isRgbColor.js +var require_isRgbColor = __commonJS({ + "node_modules/validator/lib/isRgbColor.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isRgbColor; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + var rgbColor = /^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/; + var rgbaColor = /^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d\d?|1(\.0)?|0(\.0)?)\)$/; + var rgbColorPercent = /^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)$/; + var rgbaColorPercent = /^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d\d?|1(\.0)?|0(\.0)?)\)$/; + var startsWithRgb = /^rgba?/; + function isRgbColor(str, options) { + (0, _assertString.default)(str); + var allowSpaces = false; + var includePercentValues = true; + if (_typeof(options) !== "object") { + if (arguments.length >= 2) { + includePercentValues = arguments[1]; + } + } else { + allowSpaces = options.allowSpaces !== void 0 ? options.allowSpaces : allowSpaces; + includePercentValues = options.includePercentValues !== void 0 ? options.includePercentValues : includePercentValues; + } + if (allowSpaces) { + if (!startsWithRgb.test(str)) { + return false; + } + str = str.replace(/\s/g, ""); + } + if (!includePercentValues) { + return rgbColor.test(str) || rgbaColor.test(str); + } + return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str); + } + __name(isRgbColor, "isRgbColor"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsRgbColor.js +var require_IsRgbColor = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsRgbColor.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsRgbColor = exports2.isRgbColor = exports2.IS_RGB_COLOR = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isRgbColor_1 = __importDefault2(require_isRgbColor()); + exports2.IS_RGB_COLOR = "isRgbColor"; + function isRgbColor(value, includePercentValues) { + return typeof value === "string" && (0, isRgbColor_1.default)(value, { + includePercentValues + }); + } + __name(isRgbColor, "isRgbColor"); + exports2.isRgbColor = isRgbColor; + function IsRgbColor(includePercentValues, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_RGB_COLOR, + constraints: [includePercentValues], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isRgbColor(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be RGB color", validationOptions) + } + }, validationOptions); + } + __name(IsRgbColor, "IsRgbColor"); + exports2.IsRgbColor = IsRgbColor; + } +}); + +// node_modules/validator/lib/util/multilineRegex.js +var require_multilineRegex = __commonJS({ + "node_modules/validator/lib/util/multilineRegex.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = multilineRegexp; + function multilineRegexp(parts, flags) { + var regexpAsStringLiteral = parts.join(""); + return new RegExp(regexpAsStringLiteral, flags); + } + __name(multilineRegexp, "multilineRegexp"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isSemVer.js +var require_isSemVer = __commonJS({ + "node_modules/validator/lib/isSemVer.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isSemVer; + var _assertString = _interopRequireDefault(require_assertString()); + var _multilineRegex = _interopRequireDefault(require_multilineRegex()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var semanticVersioningRegex = (0, _multilineRegex.default)(["^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)", "(?:-((?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*))*))", "?(?:\\+([0-9a-z-]+(?:\\.[0-9a-z-]+)*))?$"], "i"); + function isSemVer(str) { + (0, _assertString.default)(str); + return semanticVersioningRegex.test(str); + } + __name(isSemVer, "isSemVer"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsSemVer.js +var require_IsSemVer = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsSemVer.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsSemVer = exports2.isSemVer = exports2.IS_SEM_VER = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isSemVer_1 = __importDefault2(require_isSemVer()); + exports2.IS_SEM_VER = "isSemVer"; + function isSemVer(value) { + return typeof value === "string" && (0, isSemVer_1.default)(value); + } + __name(isSemVer, "isSemVer"); + exports2.isSemVer = isSemVer; + function IsSemVer(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_SEM_VER, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isSemVer(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a Semantic Versioning Specification", validationOptions) + } + }, validationOptions); + } + __name(IsSemVer, "IsSemVer"); + exports2.IsSemVer = IsSemVer; + } +}); + +// node_modules/validator/lib/toDate.js +var require_toDate = __commonJS({ + "node_modules/validator/lib/toDate.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = toDate; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function toDate(date) { + (0, _assertString.default)(date); + date = Date.parse(date); + return !isNaN(date) ? new Date(date) : null; + } + __name(toDate, "toDate"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/toInt.js +var require_toInt = __commonJS({ + "node_modules/validator/lib/toInt.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = toInt; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function toInt(str, radix) { + (0, _assertString.default)(str); + return parseInt(str, radix || 10); + } + __name(toInt, "toInt"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/toBoolean.js +var require_toBoolean = __commonJS({ + "node_modules/validator/lib/toBoolean.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = toBoolean; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function toBoolean(str, strict) { + (0, _assertString.default)(str); + if (strict) { + return str === "1" || /^true$/i.test(str); + } + return str !== "0" && !/^false$/i.test(str) && str !== ""; + } + __name(toBoolean, "toBoolean"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/equals.js +var require_equals = __commonJS({ + "node_modules/validator/lib/equals.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = equals; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function equals(str, comparison) { + (0, _assertString.default)(str); + return str === comparison; + } + __name(equals, "equals"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isIPRange.js +var require_isIPRange = __commonJS({ + "node_modules/validator/lib/isIPRange.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isIPRange; + var _assertString = _interopRequireDefault(require_assertString()); + var _isIP = _interopRequireDefault(require_isIP()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var subnetMaybe = /^\d{1,3}$/; + var v4Subnet = 32; + var v6Subnet = 128; + function isIPRange(str) { + var version = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ""; + (0, _assertString.default)(str); + var parts = str.split("/"); + if (parts.length !== 2) { + return false; + } + if (!subnetMaybe.test(parts[1])) { + return false; + } + if (parts[1].length > 1 && parts[1].startsWith("0")) { + return false; + } + var isValidIP = (0, _isIP.default)(parts[0], version); + if (!isValidIP) { + return false; + } + var expectedSubnet = null; + switch (String(version)) { + case "4": + expectedSubnet = v4Subnet; + break; + case "6": + expectedSubnet = v6Subnet; + break; + default: + expectedSubnet = (0, _isIP.default)(parts[0], "6") ? v6Subnet : v4Subnet; + } + return parts[1] <= expectedSubnet && parts[1] >= 0; + } + __name(isIPRange, "isIPRange"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isDate.js +var require_isDate = __commonJS({ + "node_modules/validator/lib/isDate.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isDate; + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); + } + __name(_slicedToArray, "_slicedToArray"); + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_nonIterableRest, "_nonIterableRest"); + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (null != t) { + var e, n, i, u, a = [], f = true, o = false; + try { + if (i = (t = t.call(r)).next, 0 === l) { + if (Object(t) !== t) return; + f = false; + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ; + } catch (r2) { + o = true, n = r2; + } finally { + try { + if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; + } finally { + if (o) throw n; + } + } + return a; + } + } + __name(_iterableToArrayLimit, "_iterableToArrayLimit"); + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; + } + __name(_arrayWithHoles, "_arrayWithHoles"); + function _createForOfIteratorHelper(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (!t) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var _n = 0, F = /* @__PURE__ */ __name(function F2() { + }, "F"); + return { s: F, n: /* @__PURE__ */ __name(function n() { + return _n >= r.length ? { done: true } : { done: false, value: r[_n++] }; + }, "n"), e: /* @__PURE__ */ __name(function e2(r2) { + throw r2; + }, "e"), f: F }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var o, a = true, u = false; + return { s: /* @__PURE__ */ __name(function s() { + t = t.call(r); + }, "s"), n: /* @__PURE__ */ __name(function n() { + var r2 = t.next(); + return a = r2.done, r2; + }, "n"), e: /* @__PURE__ */ __name(function e2(r2) { + u = true, o = r2; + }, "e"), f: /* @__PURE__ */ __name(function f() { + try { + a || null == t.return || t.return(); + } finally { + if (u) throw o; + } + }, "f") }; + } + __name(_createForOfIteratorHelper, "_createForOfIteratorHelper"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + var default_date_options = { + format: "YYYY/MM/DD", + delimiters: ["/", "-"], + strictMode: false + }; + function isValidFormat(format) { + return /(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(format); + } + __name(isValidFormat, "isValidFormat"); + function zip(date, format) { + var zippedArr = [], len = Math.max(date.length, format.length); + for (var i = 0; i < len; i++) { + zippedArr.push([date[i], format[i]]); + } + return zippedArr; + } + __name(zip, "zip"); + function isDate(input, options) { + if (typeof options === "string") { + options = (0, _merge.default)({ + format: options + }, default_date_options); + } else { + options = (0, _merge.default)(options, default_date_options); + } + if (typeof input === "string" && isValidFormat(options.format)) { + if (options.strictMode && input.length !== options.format.length) return false; + var formatDelimiter = options.delimiters.find(function(delimiter) { + return options.format.indexOf(delimiter) !== -1; + }); + var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function(delimiter) { + return input.indexOf(delimiter) !== -1; + }); + var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter)); + var dateObj = {}; + var _iterator = _createForOfIteratorHelper(dateAndFormat), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var _step$value = _slicedToArray(_step.value, 2), dateWord = _step$value[0], formatWord = _step$value[1]; + if (!dateWord || !formatWord || dateWord.length !== formatWord.length) { + return false; + } + dateObj[formatWord.charAt(0)] = dateWord; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + var fullYear = dateObj.y; + if (fullYear.startsWith("-")) { + return false; + } + if (dateObj.y.length === 2) { + var parsedYear = parseInt(dateObj.y, 10); + if (isNaN(parsedYear)) { + return false; + } + var currentYearLastTwoDigits = (/* @__PURE__ */ new Date()).getFullYear() % 100; + if (parsedYear < currentYearLastTwoDigits) { + fullYear = "20".concat(dateObj.y); + } else { + fullYear = "19".concat(dateObj.y); + } + } + var month = dateObj.m; + if (dateObj.m.length === 1) { + month = "0".concat(dateObj.m); + } + var day = dateObj.d; + if (dateObj.d.length === 1) { + day = "0".concat(dateObj.d); + } + return new Date("".concat(fullYear, "-").concat(month, "-").concat(day, "T00:00:00.000Z")).getUTCDate() === +dateObj.d; + } + if (!options.strictMode) { + return Object.prototype.toString.call(input) === "[object Date]" && isFinite(input); + } + return false; + } + __name(isDate, "isDate"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isTime.js +var require_isTime = __commonJS({ + "node_modules/validator/lib/isTime.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isTime; + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var default_time_options = { + hourFormat: "hour24", + mode: "default" + }; + var formats = { + hour24: { + default: /^([01]?[0-9]|2[0-3]):([0-5][0-9])$/, + withSeconds: /^([01]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/, + withOptionalSeconds: /^([01]?[0-9]|2[0-3]):([0-5][0-9])(?::([0-5][0-9]))?$/ + }, + hour12: { + default: /^(0?[1-9]|1[0-2]):([0-5][0-9]) (A|P)M$/, + withSeconds: /^(0?[1-9]|1[0-2]):([0-5][0-9]):([0-5][0-9]) (A|P)M$/, + withOptionalSeconds: /^(0?[1-9]|1[0-2]):([0-5][0-9])(?::([0-5][0-9]))? (A|P)M$/ + } + }; + function isTime(input, options) { + options = (0, _merge.default)(options, default_time_options); + if (typeof input !== "string") return false; + return formats[options.hourFormat][options.mode].test(input); + } + __name(isTime, "isTime"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isAbaRouting.js +var require_isAbaRouting = __commonJS({ + "node_modules/validator/lib/isAbaRouting.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isAbaRouting; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var isRoutingReg = /^(?!(1[3-9])|(20)|(3[3-9])|(4[0-9])|(5[0-9])|(60)|(7[3-9])|(8[1-9])|(9[0-2])|(9[3-9]))[0-9]{9}$/; + function isAbaRouting(str) { + (0, _assertString.default)(str); + if (!isRoutingReg.test(str)) return false; + var checkSumVal = 0; + for (var i = 0; i < str.length; i++) { + if (i % 3 === 0) checkSumVal += str[i] * 3; + else if (i % 3 === 1) checkSumVal += str[i] * 7; + else checkSumVal += str[i] * 1; + } + return checkSumVal % 10 === 0; + } + __name(isAbaRouting, "isAbaRouting"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isIMEI.js +var require_isIMEI = __commonJS({ + "node_modules/validator/lib/isIMEI.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isIMEI; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var imeiRegexWithoutHyphens = /^[0-9]{15}$/; + var imeiRegexWithHyphens = /^\d{2}-\d{6}-\d{6}-\d{1}$/; + function isIMEI(str, options) { + (0, _assertString.default)(str); + options = options || {}; + var imeiRegex = imeiRegexWithoutHyphens; + if (options.allow_hyphens) { + imeiRegex = imeiRegexWithHyphens; + } + if (!imeiRegex.test(str)) { + return false; + } + str = str.replace(/-/g, ""); + var sum = 0, mul = 2, l = 14; + for (var i = 0; i < l; i++) { + var digit = str.substring(l - i - 1, l - i); + var tp = parseInt(digit, 10) * mul; + if (tp >= 10) { + sum += tp % 10 + 1; + } else { + sum += tp; + } + if (mul === 1) { + mul += 1; + } else { + mul -= 1; + } + } + var chk = (10 - sum % 10) % 10; + if (chk !== parseInt(str.substring(14, 15), 10)) { + return false; + } + return true; + } + __name(isIMEI, "isIMEI"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isMD5.js +var require_isMD5 = __commonJS({ + "node_modules/validator/lib/isMD5.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isMD5; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var md5 = /^[a-f0-9]{32}$/; + function isMD5(str) { + (0, _assertString.default)(str); + return md5.test(str); + } + __name(isMD5, "isMD5"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isEmpty.js +var require_isEmpty = __commonJS({ + "node_modules/validator/lib/isEmpty.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isEmpty; + var _assertString = _interopRequireDefault(require_assertString()); + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var default_is_empty_options = { + ignore_whitespace: false + }; + function isEmpty(str, options) { + (0, _assertString.default)(str); + options = (0, _merge.default)(options, default_is_empty_options); + return (options.ignore_whitespace ? str.trim().length : str.length) === 0; + } + __name(isEmpty, "isEmpty"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isULID.js +var require_isULID = __commonJS({ + "node_modules/validator/lib/isULID.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isULID; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isULID(str) { + (0, _assertString.default)(str); + return /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/i.test(str); + } + __name(isULID, "isULID"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isAfter.js +var require_isAfter = __commonJS({ + "node_modules/validator/lib/isAfter.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isAfter; + var _toDate = _interopRequireDefault(require_toDate()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function isAfter(date, options) { + var comparisonDate = (_typeof(options) === "object" ? options.comparisonDate : options) || Date().toString(); + var comparison = (0, _toDate.default)(comparisonDate); + var original = (0, _toDate.default)(date); + return !!(original && comparison && original > comparison); + } + __name(isAfter, "isAfter"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isBefore.js +var require_isBefore = __commonJS({ + "node_modules/validator/lib/isBefore.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isBefore; + var _toDate = _interopRequireDefault(require_toDate()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function isBefore(date, options) { + var comparisonDate = (_typeof(options) === "object" ? options.comparisonDate : options) || Date().toString(); + var comparison = (0, _toDate.default)(comparisonDate); + var original = (0, _toDate.default)(date); + return !!(original && comparison && original < comparison); + } + __name(isBefore, "isBefore"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isIn.js +var require_isIn = __commonJS({ + "node_modules/validator/lib/isIn.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isIn; + var _assertString = _interopRequireDefault(require_assertString()); + var _toString = _interopRequireDefault(require_toString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function isIn(str, options) { + (0, _assertString.default)(str); + var i; + if (Object.prototype.toString.call(options) === "[object Array]") { + var array = []; + for (i in options) { + if ({}.hasOwnProperty.call(options, i)) { + array[i] = (0, _toString.default)(options[i]); + } + } + return array.indexOf(str) >= 0; + } else if (_typeof(options) === "object") { + return options.hasOwnProperty(str); + } else if (options && typeof options.indexOf === "function") { + return options.indexOf(str) >= 0; + } + return false; + } + __name(isIn, "isIn"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/util/algorithms.js +var require_algorithms = __commonJS({ + "node_modules/validator/lib/util/algorithms.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.iso7064Check = iso7064Check; + exports2.luhnCheck = luhnCheck; + exports2.reverseMultiplyAndSum = reverseMultiplyAndSum; + exports2.verhoeffCheck = verhoeffCheck; + function iso7064Check(str) { + var checkvalue = 10; + for (var i = 0; i < str.length - 1; i++) { + checkvalue = (parseInt(str[i], 10) + checkvalue) % 10 === 0 ? 10 * 2 % 11 : (parseInt(str[i], 10) + checkvalue) % 10 * 2 % 11; + } + checkvalue = checkvalue === 1 ? 0 : 11 - checkvalue; + return checkvalue === parseInt(str[10], 10); + } + __name(iso7064Check, "iso7064Check"); + function luhnCheck(str) { + var checksum = 0; + var second = false; + for (var i = str.length - 1; i >= 0; i--) { + if (second) { + var product = parseInt(str[i], 10) * 2; + if (product > 9) { + checksum += product.toString().split("").map(function(a) { + return parseInt(a, 10); + }).reduce(function(a, b) { + return a + b; + }, 0); + } else { + checksum += product; + } + } else { + checksum += parseInt(str[i], 10); + } + second = !second; + } + return checksum % 10 === 0; + } + __name(luhnCheck, "luhnCheck"); + function reverseMultiplyAndSum(digits, base) { + var total = 0; + for (var i = 0; i < digits.length; i++) { + total += digits[i] * (base - i); + } + return total; + } + __name(reverseMultiplyAndSum, "reverseMultiplyAndSum"); + function verhoeffCheck(str) { + var d_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; + var p_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; + var str_copy = str.split("").reverse().join(""); + var checksum = 0; + for (var i = 0; i < str_copy.length; i++) { + checksum = d_table[checksum][p_table[i % 8][parseInt(str_copy[i], 10)]]; + } + return checksum === 0; + } + __name(verhoeffCheck, "verhoeffCheck"); + } +}); + +// node_modules/validator/lib/isTaxID.js +var require_isTaxID = __commonJS({ + "node_modules/validator/lib/isTaxID.js"(exports2, module2) { + "use strict"; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isTaxID; + var _assertString = _interopRequireDefault(require_assertString()); + var algorithms = _interopRequireWildcard(require_algorithms()); + var _isDate = _interopRequireDefault(require_isDate()); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, default: e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _toConsumableArray(r) { + return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); + } + __name(_toConsumableArray, "_toConsumableArray"); + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_nonIterableSpread, "_nonIterableSpread"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _iterableToArray(r) { + if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); + } + __name(_iterableToArray, "_iterableToArray"); + function _arrayWithoutHoles(r) { + if (Array.isArray(r)) return _arrayLikeToArray(r); + } + __name(_arrayWithoutHoles, "_arrayWithoutHoles"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function bgBgCheck(tin) { + var century_year = tin.slice(0, 2); + var month = parseInt(tin.slice(2, 4), 10); + if (month > 40) { + month -= 40; + century_year = "20".concat(century_year); + } else if (month > 20) { + month -= 20; + century_year = "18".concat(century_year); + } else { + century_year = "19".concat(century_year); + } + if (month < 10) { + month = "0".concat(month); + } + var date = "".concat(century_year, "/").concat(month, "/").concat(tin.slice(4, 6)); + if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + var digits = tin.split("").map(function(a) { + return parseInt(a, 10); + }); + var multip_lookup = [2, 4, 8, 5, 10, 9, 7, 3, 6]; + var checksum = 0; + for (var i = 0; i < multip_lookup.length; i++) { + checksum += digits[i] * multip_lookup[i]; + } + checksum = checksum % 11 === 10 ? 0 : checksum % 11; + return checksum === digits[9]; + } + __name(bgBgCheck, "bgBgCheck"); + function isCanadianSIN(input) { + var digitsArray = input.split(""); + var even = digitsArray.filter(function(_, idx) { + return idx % 2; + }).map(function(i) { + return Number(i) * 2; + }).join("").split(""); + var total = digitsArray.filter(function(_, idx) { + return !(idx % 2); + }).concat(even).map(function(i) { + return Number(i); + }).reduce(function(acc, cur) { + return acc + cur; + }); + return total % 10 === 0; + } + __name(isCanadianSIN, "isCanadianSIN"); + function csCzCheck(tin) { + tin = tin.replace(/\W/, ""); + var full_year = parseInt(tin.slice(0, 2), 10); + if (tin.length === 10) { + if (full_year < 54) { + full_year = "20".concat(full_year); + } else { + full_year = "19".concat(full_year); + } + } else { + if (tin.slice(6) === "000") { + return false; + } + if (full_year < 54) { + full_year = "19".concat(full_year); + } else { + return false; + } + } + if (full_year.length === 3) { + full_year = [full_year.slice(0, 2), "0", full_year.slice(2)].join(""); + } + var month = parseInt(tin.slice(2, 4), 10); + if (month > 50) { + month -= 50; + } + if (month > 20) { + if (parseInt(full_year, 10) < 2004) { + return false; + } + month -= 20; + } + if (month < 10) { + month = "0".concat(month); + } + var date = "".concat(full_year, "/").concat(month, "/").concat(tin.slice(4, 6)); + if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + if (tin.length === 10) { + if (parseInt(tin, 10) % 11 !== 0) { + var checkdigit = parseInt(tin.slice(0, 9), 10) % 11; + if (parseInt(full_year, 10) < 1986 && checkdigit === 10) { + if (parseInt(tin.slice(9), 10) !== 0) { + return false; + } + } else { + return false; + } + } + } + return true; + } + __name(csCzCheck, "csCzCheck"); + function deAtCheck(tin) { + return algorithms.luhnCheck(tin); + } + __name(deAtCheck, "deAtCheck"); + function deDeCheck(tin) { + var digits = tin.split("").map(function(a) { + return parseInt(a, 10); + }); + var occurrences = []; + for (var i = 0; i < digits.length - 1; i++) { + occurrences.push(""); + for (var j = 0; j < digits.length - 1; j++) { + if (digits[i] === digits[j]) { + occurrences[i] += j; + } + } + } + occurrences = occurrences.filter(function(a) { + return a.length > 1; + }); + if (occurrences.length !== 2 && occurrences.length !== 3) { + return false; + } + if (occurrences[0].length === 3) { + var trip_locations = occurrences[0].split("").map(function(a) { + return parseInt(a, 10); + }); + var recurrent = 0; + for (var _i = 0; _i < trip_locations.length - 1; _i++) { + if (trip_locations[_i] + 1 === trip_locations[_i + 1]) { + recurrent += 1; + } + } + if (recurrent === 2) { + return false; + } + } + return algorithms.iso7064Check(tin); + } + __name(deDeCheck, "deDeCheck"); + function dkDkCheck(tin) { + tin = tin.replace(/\W/, ""); + var year = parseInt(tin.slice(4, 6), 10); + var century_digit = tin.slice(6, 7); + switch (century_digit) { + case "0": + case "1": + case "2": + case "3": + year = "19".concat(year); + break; + case "4": + case "9": + if (year < 37) { + year = "20".concat(year); + } else { + year = "19".concat(year); + } + break; + default: + if (year < 37) { + year = "20".concat(year); + } else if (year > 58) { + year = "18".concat(year); + } else { + return false; + } + break; + } + if (year.length === 3) { + year = [year.slice(0, 2), "0", year.slice(2)].join(""); + } + var date = "".concat(year, "/").concat(tin.slice(2, 4), "/").concat(tin.slice(0, 2)); + if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + var digits = tin.split("").map(function(a) { + return parseInt(a, 10); + }); + var checksum = 0; + var weight = 4; + for (var i = 0; i < 9; i++) { + checksum += digits[i] * weight; + weight -= 1; + if (weight === 1) { + weight = 7; + } + } + checksum %= 11; + if (checksum === 1) { + return false; + } + return checksum === 0 ? digits[9] === 0 : digits[9] === 11 - checksum; + } + __name(dkDkCheck, "dkDkCheck"); + function elCyCheck(tin) { + var digits = tin.slice(0, 8).split("").map(function(a) { + return parseInt(a, 10); + }); + var checksum = 0; + for (var i = 1; i < digits.length; i += 2) { + checksum += digits[i]; + } + for (var _i2 = 0; _i2 < digits.length; _i2 += 2) { + if (digits[_i2] < 2) { + checksum += 1 - digits[_i2]; + } else { + checksum += 2 * (digits[_i2] - 2) + 5; + if (digits[_i2] > 4) { + checksum += 2; + } + } + } + return String.fromCharCode(checksum % 26 + 65) === tin.charAt(8); + } + __name(elCyCheck, "elCyCheck"); + function elGrCheck(tin) { + var digits = tin.split("").map(function(a) { + return parseInt(a, 10); + }); + var checksum = 0; + for (var i = 0; i < 8; i++) { + checksum += digits[i] * Math.pow(2, 8 - i); + } + return checksum % 11 % 10 === digits[8]; + } + __name(elGrCheck, "elGrCheck"); + function enIeCheck(tin) { + var checksum = algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 7).map(function(a) { + return parseInt(a, 10); + }), 8); + if (tin.length === 9 && tin[8] !== "W") { + checksum += (tin[8].charCodeAt(0) - 64) * 9; + } + checksum %= 23; + if (checksum === 0) { + return tin[7].toUpperCase() === "W"; + } + return tin[7].toUpperCase() === String.fromCharCode(64 + checksum); + } + __name(enIeCheck, "enIeCheck"); + var enUsCampusPrefix = { + andover: ["10", "12"], + atlanta: ["60", "67"], + austin: ["50", "53"], + brookhaven: ["01", "02", "03", "04", "05", "06", "11", "13", "14", "16", "21", "22", "23", "25", "34", "51", "52", "54", "55", "56", "57", "58", "59", "65"], + cincinnati: ["30", "32", "35", "36", "37", "38", "61"], + fresno: ["15", "24"], + internet: ["20", "26", "27", "45", "46", "47"], + kansas: ["40", "44"], + memphis: ["94", "95"], + ogden: ["80", "90"], + philadelphia: ["33", "39", "41", "42", "43", "46", "48", "62", "63", "64", "66", "68", "71", "72", "73", "74", "75", "76", "77", "81", "82", "83", "84", "85", "86", "87", "88", "91", "92", "93", "98", "99"], + sba: ["31"] + }; + function enUsGetPrefixes() { + var prefixes = []; + for (var location in enUsCampusPrefix) { + if (enUsCampusPrefix.hasOwnProperty(location)) { + prefixes.push.apply(prefixes, _toConsumableArray(enUsCampusPrefix[location])); + } + } + return prefixes; + } + __name(enUsGetPrefixes, "enUsGetPrefixes"); + function enUsCheck(tin) { + return enUsGetPrefixes().indexOf(tin.slice(0, 2)) !== -1; + } + __name(enUsCheck, "enUsCheck"); + function esArCheck(tin) { + var accum = 0; + var digits = tin.split(""); + var digit = parseInt(digits.pop(), 10); + for (var i = 0; i < digits.length; i++) { + accum += digits[9 - i] * (2 + i % 6); + } + var verif = 11 - accum % 11; + if (verif === 11) { + verif = 0; + } else if (verif === 10) { + verif = 9; + } + return digit === verif; + } + __name(esArCheck, "esArCheck"); + function esEsCheck(tin) { + var chars = tin.toUpperCase().split(""); + if (isNaN(parseInt(chars[0], 10)) && chars.length > 1) { + var lead_replace = 0; + switch (chars[0]) { + case "Y": + lead_replace = 1; + break; + case "Z": + lead_replace = 2; + break; + default: + } + chars.splice(0, 1, lead_replace); + } else { + while (chars.length < 9) { + chars.unshift(0); + } + } + var lookup = ["T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E"]; + chars = chars.join(""); + var checksum = parseInt(chars.slice(0, 8), 10) % 23; + return chars[8] === lookup[checksum]; + } + __name(esEsCheck, "esEsCheck"); + function etEeCheck(tin) { + var full_year = tin.slice(1, 3); + var century_digit = tin.slice(0, 1); + switch (century_digit) { + case "1": + case "2": + full_year = "18".concat(full_year); + break; + case "3": + case "4": + full_year = "19".concat(full_year); + break; + default: + full_year = "20".concat(full_year); + break; + } + var date = "".concat(full_year, "/").concat(tin.slice(3, 5), "/").concat(tin.slice(5, 7)); + if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + var digits = tin.split("").map(function(a) { + return parseInt(a, 10); + }); + var checksum = 0; + var weight = 1; + for (var i = 0; i < 10; i++) { + checksum += digits[i] * weight; + weight += 1; + if (weight === 10) { + weight = 1; + } + } + if (checksum % 11 === 10) { + checksum = 0; + weight = 3; + for (var _i3 = 0; _i3 < 10; _i3++) { + checksum += digits[_i3] * weight; + weight += 1; + if (weight === 10) { + weight = 1; + } + } + if (checksum % 11 === 10) { + return digits[10] === 0; + } + } + return checksum % 11 === digits[10]; + } + __name(etEeCheck, "etEeCheck"); + function fiFiCheck(tin) { + var full_year = tin.slice(4, 6); + var century_symbol = tin.slice(6, 7); + switch (century_symbol) { + case "+": + full_year = "18".concat(full_year); + break; + case "-": + full_year = "19".concat(full_year); + break; + default: + full_year = "20".concat(full_year); + break; + } + var date = "".concat(full_year, "/").concat(tin.slice(2, 4), "/").concat(tin.slice(0, 2)); + if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + var checksum = parseInt(tin.slice(0, 6) + tin.slice(7, 10), 10) % 31; + if (checksum < 10) { + return checksum === parseInt(tin.slice(10), 10); + } + checksum -= 10; + var letters_lookup = ["A", "B", "C", "D", "E", "F", "H", "J", "K", "L", "M", "N", "P", "R", "S", "T", "U", "V", "W", "X", "Y"]; + return letters_lookup[checksum] === tin.slice(10); + } + __name(fiFiCheck, "fiFiCheck"); + function frBeCheck(tin) { + if (tin.slice(2, 4) !== "00" || tin.slice(4, 6) !== "00") { + var date = "".concat(tin.slice(0, 2), "/").concat(tin.slice(2, 4), "/").concat(tin.slice(4, 6)); + if (!(0, _isDate.default)(date, "YY/MM/DD")) { + return false; + } + } + var checksum = 97 - parseInt(tin.slice(0, 9), 10) % 97; + var checkdigits = parseInt(tin.slice(9, 11), 10); + if (checksum !== checkdigits) { + checksum = 97 - parseInt("2".concat(tin.slice(0, 9)), 10) % 97; + if (checksum !== checkdigits) { + return false; + } + } + return true; + } + __name(frBeCheck, "frBeCheck"); + function frFrCheck(tin) { + tin = tin.replace(/\s/g, ""); + var checksum = parseInt(tin.slice(0, 10), 10) % 511; + var checkdigits = parseInt(tin.slice(10, 13), 10); + return checksum === checkdigits; + } + __name(frFrCheck, "frFrCheck"); + function frLuCheck(tin) { + var date = "".concat(tin.slice(0, 4), "/").concat(tin.slice(4, 6), "/").concat(tin.slice(6, 8)); + if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + if (!algorithms.luhnCheck(tin.slice(0, 12))) { + return false; + } + return algorithms.verhoeffCheck("".concat(tin.slice(0, 11)).concat(tin[12])); + } + __name(frLuCheck, "frLuCheck"); + function hrHrCheck(tin) { + return algorithms.iso7064Check(tin); + } + __name(hrHrCheck, "hrHrCheck"); + function huHuCheck(tin) { + var digits = tin.split("").map(function(a) { + return parseInt(a, 10); + }); + var checksum = 8; + for (var i = 1; i < 9; i++) { + checksum += digits[i] * (i + 1); + } + return checksum % 11 === digits[9]; + } + __name(huHuCheck, "huHuCheck"); + function itItNameCheck(name) { + var vowelflag = false; + var xflag = false; + for (var i = 0; i < 3; i++) { + if (!vowelflag && /[AEIOU]/.test(name[i])) { + vowelflag = true; + } else if (!xflag && vowelflag && name[i] === "X") { + xflag = true; + } else if (i > 0) { + if (vowelflag && !xflag) { + if (!/[AEIOU]/.test(name[i])) { + return false; + } + } + if (xflag) { + if (!/X/.test(name[i])) { + return false; + } + } + } + } + return true; + } + __name(itItNameCheck, "itItNameCheck"); + function itItCheck(tin) { + var chars = tin.toUpperCase().split(""); + if (!itItNameCheck(chars.slice(0, 3))) { + return false; + } + if (!itItNameCheck(chars.slice(3, 6))) { + return false; + } + var number_locations = [6, 7, 9, 10, 12, 13, 14]; + var number_replace = { + L: "0", + M: "1", + N: "2", + P: "3", + Q: "4", + R: "5", + S: "6", + T: "7", + U: "8", + V: "9" + }; + for (var _i4 = 0, _number_locations = number_locations; _i4 < _number_locations.length; _i4++) { + var i = _number_locations[_i4]; + if (chars[i] in number_replace) { + chars.splice(i, 1, number_replace[chars[i]]); + } + } + var month_replace = { + A: "01", + B: "02", + C: "03", + D: "04", + E: "05", + H: "06", + L: "07", + M: "08", + P: "09", + R: "10", + S: "11", + T: "12" + }; + var month = month_replace[chars[8]]; + var day = parseInt(chars[9] + chars[10], 10); + if (day > 40) { + day -= 40; + } + if (day < 10) { + day = "0".concat(day); + } + var date = "".concat(chars[6]).concat(chars[7], "/").concat(month, "/").concat(day); + if (!(0, _isDate.default)(date, "YY/MM/DD")) { + return false; + } + var checksum = 0; + for (var _i5 = 1; _i5 < chars.length - 1; _i5 += 2) { + var char_to_int = parseInt(chars[_i5], 10); + if (isNaN(char_to_int)) { + char_to_int = chars[_i5].charCodeAt(0) - 65; + } + checksum += char_to_int; + } + var odd_convert = { + // Maps of characters at odd places + A: 1, + B: 0, + C: 5, + D: 7, + E: 9, + F: 13, + G: 15, + H: 17, + I: 19, + J: 21, + K: 2, + L: 4, + M: 18, + N: 20, + O: 11, + P: 3, + Q: 6, + R: 8, + S: 12, + T: 14, + U: 16, + V: 10, + W: 22, + X: 25, + Y: 24, + Z: 23, + 0: 1, + 1: 0 + }; + for (var _i6 = 0; _i6 < chars.length - 1; _i6 += 2) { + var _char_to_int = 0; + if (chars[_i6] in odd_convert) { + _char_to_int = odd_convert[chars[_i6]]; + } else { + var multiplier = parseInt(chars[_i6], 10); + _char_to_int = 2 * multiplier + 1; + if (multiplier > 4) { + _char_to_int += 2; + } + } + checksum += _char_to_int; + } + if (String.fromCharCode(65 + checksum % 26) !== chars[15]) { + return false; + } + return true; + } + __name(itItCheck, "itItCheck"); + function lvLvCheck(tin) { + tin = tin.replace(/\W/, ""); + var day = tin.slice(0, 2); + if (day !== "32") { + var month = tin.slice(2, 4); + if (month !== "00") { + var full_year = tin.slice(4, 6); + switch (tin[6]) { + case "0": + full_year = "18".concat(full_year); + break; + case "1": + full_year = "19".concat(full_year); + break; + default: + full_year = "20".concat(full_year); + break; + } + var date = "".concat(full_year, "/").concat(tin.slice(2, 4), "/").concat(day); + if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + } + var checksum = 1101; + var multip_lookup = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; + for (var i = 0; i < tin.length - 1; i++) { + checksum -= parseInt(tin[i], 10) * multip_lookup[i]; + } + return parseInt(tin[10], 10) === checksum % 11; + } + return true; + } + __name(lvLvCheck, "lvLvCheck"); + function mtMtCheck(tin) { + if (tin.length !== 9) { + var chars = tin.toUpperCase().split(""); + while (chars.length < 8) { + chars.unshift(0); + } + switch (tin[7]) { + case "A": + case "P": + if (parseInt(chars[6], 10) === 0) { + return false; + } + break; + default: { + var first_part = parseInt(chars.join("").slice(0, 5), 10); + if (first_part > 32e3) { + return false; + } + var second_part = parseInt(chars.join("").slice(5, 7), 10); + if (first_part === second_part) { + return false; + } + } + } + } + return true; + } + __name(mtMtCheck, "mtMtCheck"); + function nlNlCheck(tin) { + return algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 8).map(function(a) { + return parseInt(a, 10); + }), 9) % 11 === parseInt(tin[8], 10); + } + __name(nlNlCheck, "nlNlCheck"); + function plPlCheck(tin) { + if (tin.length === 10) { + var lookup = [6, 5, 7, 2, 3, 4, 5, 6, 7]; + var _checksum = 0; + for (var i = 0; i < lookup.length; i++) { + _checksum += parseInt(tin[i], 10) * lookup[i]; + } + _checksum %= 11; + if (_checksum === 10) { + return false; + } + return _checksum === parseInt(tin[9], 10); + } + var full_year = tin.slice(0, 2); + var month = parseInt(tin.slice(2, 4), 10); + if (month > 80) { + full_year = "18".concat(full_year); + month -= 80; + } else if (month > 60) { + full_year = "22".concat(full_year); + month -= 60; + } else if (month > 40) { + full_year = "21".concat(full_year); + month -= 40; + } else if (month > 20) { + full_year = "20".concat(full_year); + month -= 20; + } else { + full_year = "19".concat(full_year); + } + if (month < 10) { + month = "0".concat(month); + } + var date = "".concat(full_year, "/").concat(month, "/").concat(tin.slice(4, 6)); + if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + var checksum = 0; + var multiplier = 1; + for (var _i7 = 0; _i7 < tin.length - 1; _i7++) { + checksum += parseInt(tin[_i7], 10) * multiplier % 10; + multiplier += 2; + if (multiplier > 10) { + multiplier = 1; + } else if (multiplier === 5) { + multiplier += 2; + } + } + checksum = 10 - checksum % 10; + return checksum === parseInt(tin[10], 10); + } + __name(plPlCheck, "plPlCheck"); + function cnpjCharToValue(char) { + return char.charCodeAt(0) - 48; + } + __name(cnpjCharToValue, "cnpjCharToValue"); + function validateCnpj(cnpj) { + var identifiers = cnpj.substring(0, 12).toUpperCase(); + var checkDigits = cnpj.substring(12); + if (/^(.)\1+$/.test(cnpj.toUpperCase())) { + return false; + } + var sum = 0; + var weight = 5; + for (var i = 0; i < 12; i++) { + sum += cnpjCharToValue(identifiers.charAt(i)) * weight; + weight = weight === 2 ? 9 : weight - 1; + } + var remainder = sum % 11; + var firstDV = remainder < 2 ? 0 : 11 - remainder; + if (firstDV !== parseInt(checkDigits.charAt(0), 10)) { + return false; + } + sum = 0; + weight = 6; + for (var _i8 = 0; _i8 < 12; _i8++) { + sum += cnpjCharToValue(identifiers.charAt(_i8)) * weight; + weight = weight === 2 ? 9 : weight - 1; + } + sum += firstDV * 2; + remainder = sum % 11; + var secondDV = remainder < 2 ? 0 : 11 - remainder; + return secondDV === parseInt(checkDigits.charAt(1), 10); + } + __name(validateCnpj, "validateCnpj"); + function ptBrCheck(tin) { + tin = tin.replace(/[.\-/]/g, ""); + if (tin.length === 11) { + var sum; + var remainder; + sum = 0; + if ( + // Reject known invalid CPFs + tin === "11111111111" || tin === "22222222222" || tin === "33333333333" || tin === "44444444444" || tin === "55555555555" || tin === "66666666666" || tin === "77777777777" || tin === "88888888888" || tin === "99999999999" || tin === "00000000000" + ) return false; + for (var i = 1; i <= 9; i++) sum += parseInt(tin.substring(i - 1, i), 10) * (11 - i); + remainder = sum * 10 % 11; + if (remainder === 10) remainder = 0; + if (remainder !== parseInt(tin.substring(9, 10), 10)) return false; + sum = 0; + for (var _i9 = 1; _i9 <= 10; _i9++) sum += parseInt(tin.substring(_i9 - 1, _i9), 10) * (12 - _i9); + remainder = sum * 10 % 11; + if (remainder === 10) remainder = 0; + if (remainder !== parseInt(tin.substring(10, 11), 10)) return false; + return true; + } + return validateCnpj(tin); + } + __name(ptBrCheck, "ptBrCheck"); + function ptPtCheck(tin) { + var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 8).map(function(a) { + return parseInt(a, 10); + }), 9) % 11; + if (checksum > 9) { + return parseInt(tin[8], 10) === 0; + } + return checksum === parseInt(tin[8], 10); + } + __name(ptPtCheck, "ptPtCheck"); + function roRoCheck(tin) { + if (tin.slice(0, 4) !== "9000") { + var full_year = tin.slice(1, 3); + switch (tin[0]) { + case "1": + case "2": + full_year = "19".concat(full_year); + break; + case "3": + case "4": + full_year = "18".concat(full_year); + break; + case "5": + case "6": + full_year = "20".concat(full_year); + break; + default: + } + var date = "".concat(full_year, "/").concat(tin.slice(3, 5), "/").concat(tin.slice(5, 7)); + if (date.length === 8) { + if (!(0, _isDate.default)(date, "YY/MM/DD")) { + return false; + } + } else if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + var digits = tin.split("").map(function(a) { + return parseInt(a, 10); + }); + var multipliers = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9]; + var checksum = 0; + for (var i = 0; i < multipliers.length; i++) { + checksum += digits[i] * multipliers[i]; + } + if (checksum % 11 === 10) { + return digits[12] === 1; + } + return digits[12] === checksum % 11; + } + return true; + } + __name(roRoCheck, "roRoCheck"); + function skSkCheck(tin) { + if (tin.length === 9) { + tin = tin.replace(/\W/, ""); + if (tin.slice(6) === "000") { + return false; + } + var full_year = parseInt(tin.slice(0, 2), 10); + if (full_year > 53) { + return false; + } + if (full_year < 10) { + full_year = "190".concat(full_year); + } else { + full_year = "19".concat(full_year); + } + var month = parseInt(tin.slice(2, 4), 10); + if (month > 50) { + month -= 50; + } + if (month < 10) { + month = "0".concat(month); + } + var date = "".concat(full_year, "/").concat(month, "/").concat(tin.slice(4, 6)); + if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + } + return true; + } + __name(skSkCheck, "skSkCheck"); + function slSiCheck(tin) { + var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 7).map(function(a) { + return parseInt(a, 10); + }), 8) % 11; + if (checksum === 10) { + return parseInt(tin[7], 10) === 0; + } + return checksum === parseInt(tin[7], 10); + } + __name(slSiCheck, "slSiCheck"); + function svSeCheck(tin) { + var tin_copy = tin.slice(0); + if (tin.length > 11) { + tin_copy = tin_copy.slice(2); + } + var full_year = ""; + var month = tin_copy.slice(2, 4); + var day = parseInt(tin_copy.slice(4, 6), 10); + if (tin.length > 11) { + full_year = tin.slice(0, 4); + } else { + full_year = tin.slice(0, 2); + if (tin.length === 11 && day < 60) { + var current_year = (/* @__PURE__ */ new Date()).getFullYear().toString(); + var current_century = parseInt(current_year.slice(0, 2), 10); + current_year = parseInt(current_year, 10); + if (tin[6] === "-") { + if (parseInt("".concat(current_century).concat(full_year), 10) > current_year) { + full_year = "".concat(current_century - 1).concat(full_year); + } else { + full_year = "".concat(current_century).concat(full_year); + } + } else { + full_year = "".concat(current_century - 1).concat(full_year); + if (current_year - parseInt(full_year, 10) < 100) { + return false; + } + } + } + } + if (day > 60) { + day -= 60; + } + if (day < 10) { + day = "0".concat(day); + } + var date = "".concat(full_year, "/").concat(month, "/").concat(day); + if (date.length === 8) { + if (!(0, _isDate.default)(date, "YY/MM/DD")) { + return false; + } + } else if (!(0, _isDate.default)(date, "YYYY/MM/DD")) { + return false; + } + return algorithms.luhnCheck(tin.replace(/\W/, "")); + } + __name(svSeCheck, "svSeCheck"); + function ukUaCheck(tin) { + var digits = tin.split("").map(function(a) { + return parseInt(a, 10); + }); + var multipliers = [-1, 5, 7, 9, 4, 6, 10, 5, 7]; + var checksum = 0; + for (var i = 0; i < multipliers.length; i++) { + checksum += digits[i] * multipliers[i]; + } + return checksum % 11 === 10 ? digits[9] === 0 : digits[9] === checksum % 11; + } + __name(ukUaCheck, "ukUaCheck"); + var taxIdFormat = { + "bg-BG": /^\d{10}$/, + "cs-CZ": /^\d{6}\/{0,1}\d{3,4}$/, + "de-AT": /^\d{9}$/, + "de-DE": /^[1-9]\d{10}$/, + "dk-DK": /^\d{6}-{0,1}\d{4}$/, + "el-CY": /^[09]\d{7}[A-Z]$/, + "el-GR": /^([0-4]|[7-9])\d{8}$/, + "en-CA": /^\d{9}$/, + "en-GB": /^\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\d{6}[ABCD ]$/i, + "en-IE": /^\d{7}[A-W][A-IW]{0,1}$/i, + "en-US": /^\d{2}[- ]{0,1}\d{7}$/, + "es-AR": /(20|23|24|27|30|33|34)[0-9]{8}[0-9]/, + "es-ES": /^(\d{0,8}|[XYZKLM]\d{7})[A-HJ-NP-TV-Z]$/i, + "et-EE": /^[1-6]\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\d$/, + "fi-FI": /^\d{6}[-+A]\d{3}[0-9A-FHJ-NPR-Y]$/i, + "fr-BE": /^\d{11}$/, + "fr-FR": /^[0-3]\d{12}$|^[0-3]\d\s\d{2}(\s\d{3}){3}$/, + // Conforms both to official spec and provided example + "fr-LU": /^\d{13}$/, + "hr-HR": /^\d{11}$/, + "hu-HU": /^8\d{9}$/, + "it-IT": /^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i, + "lv-LV": /^\d{6}-{0,1}\d{5}$/, + // Conforms both to DG TAXUD spec and original research + "mt-MT": /^\d{3,7}[APMGLHBZ]$|^([1-8])\1\d{7}$/i, + "nl-NL": /^\d{9}$/, + "pl-PL": /^\d{10,11}$/, + "pt-BR": /(?:^\d{3}\.\d{3}\.\d{3}-\d{2}$)|(?:^\d{11}$)|(?:^[A-Z0-9]{12}\d{2}$)/i, + "pt-PT": /^\d{9}$/, + "ro-RO": /^\d{13}$/, + "sk-SK": /^\d{6}\/{0,1}\d{3,4}$/, + "sl-SI": /^[1-9]\d{7}$/, + "sv-SE": /^(\d{6}[-+]{0,1}\d{4}|(18|19|20)\d{6}[-+]{0,1}\d{4})$/, + "uk-UA": /^\d{10}$/ + }; + taxIdFormat["lb-LU"] = taxIdFormat["fr-LU"]; + taxIdFormat["lt-LT"] = taxIdFormat["et-EE"]; + taxIdFormat["nl-BE"] = taxIdFormat["fr-BE"]; + taxIdFormat["fr-CA"] = taxIdFormat["en-CA"]; + var taxIdCheck = { + "bg-BG": bgBgCheck, + "cs-CZ": csCzCheck, + "de-AT": deAtCheck, + "de-DE": deDeCheck, + "dk-DK": dkDkCheck, + "el-CY": elCyCheck, + "el-GR": elGrCheck, + "en-CA": isCanadianSIN, + "en-IE": enIeCheck, + "en-US": enUsCheck, + "es-AR": esArCheck, + "es-ES": esEsCheck, + "et-EE": etEeCheck, + "fi-FI": fiFiCheck, + "fr-BE": frBeCheck, + "fr-FR": frFrCheck, + "fr-LU": frLuCheck, + "hr-HR": hrHrCheck, + "hu-HU": huHuCheck, + "it-IT": itItCheck, + "lv-LV": lvLvCheck, + "mt-MT": mtMtCheck, + "nl-NL": nlNlCheck, + "pl-PL": plPlCheck, + "pt-BR": ptBrCheck, + "pt-PT": ptPtCheck, + "ro-RO": roRoCheck, + "sk-SK": skSkCheck, + "sl-SI": slSiCheck, + "sv-SE": svSeCheck, + "uk-UA": ukUaCheck + }; + taxIdCheck["lb-LU"] = taxIdCheck["fr-LU"]; + taxIdCheck["lt-LT"] = taxIdCheck["et-EE"]; + taxIdCheck["nl-BE"] = taxIdCheck["fr-BE"]; + taxIdCheck["fr-CA"] = taxIdCheck["en-CA"]; + var allsymbols = /[-\\\/!@#$%\^&\*\(\)\+\=\[\]]+/g; + var sanitizeRegexes = { + "de-AT": allsymbols, + "de-DE": /[\/\\]/g, + "fr-BE": allsymbols + }; + sanitizeRegexes["nl-BE"] = sanitizeRegexes["fr-BE"]; + function isTaxID(str) { + var locale = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "en-US"; + (0, _assertString.default)(str); + var strcopy = str.slice(0); + if (locale in taxIdFormat) { + if (locale in sanitizeRegexes) { + strcopy = strcopy.replace(sanitizeRegexes[locale], ""); + } + if (!taxIdFormat[locale].test(strcopy)) { + return false; + } + if (locale in taxIdCheck) { + return taxIdCheck[locale](strcopy); + } + return true; + } + throw new Error("Invalid locale '".concat(locale, "'")); + } + __name(isTaxID, "isTaxID"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isISO6346.js +var require_isISO6346 = __commonJS({ + "node_modules/validator/lib/isISO6346.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isFreightContainerID = void 0; + exports2.isISO6346 = isISO6346; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var isISO6346Str = /^[A-Z]{3}(U[0-9]{7})|([J,Z][0-9]{6,7})$/; + var isDigit = /^[0-9]$/; + function isISO6346(str) { + (0, _assertString.default)(str); + str = str.toUpperCase(); + if (!isISO6346Str.test(str)) return false; + if (str.length === 11) { + var sum = 0; + for (var i = 0; i < str.length - 1; i++) { + if (!isDigit.test(str[i])) { + var convertedCode = void 0; + var letterCode = str.charCodeAt(i) - 55; + if (letterCode < 11) convertedCode = letterCode; + else if (letterCode >= 11 && letterCode <= 20) convertedCode = 12 + letterCode % 11; + else if (letterCode >= 21 && letterCode <= 30) convertedCode = 23 + letterCode % 21; + else convertedCode = 34 + letterCode % 31; + sum += convertedCode * Math.pow(2, i); + } else sum += str[i] * Math.pow(2, i); + } + var checkSumDigit = sum % 11; + if (checkSumDigit === 10) checkSumDigit = 0; + return Number(str[str.length - 1]) === checkSumDigit; + } + return true; + } + __name(isISO6346, "isISO6346"); + var isFreightContainerID = exports2.isFreightContainerID = isISO6346; + } +}); + +// node_modules/validator/lib/isISO6391.js +var require_isISO6391 = __commonJS({ + "node_modules/validator/lib/isISO6391.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isISO6391; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var isISO6391Set = /* @__PURE__ */ new Set(["aa", "ab", "ae", "af", "ak", "am", "an", "ar", "as", "av", "ay", "az", "az", "ba", "be", "bg", "bh", "bi", "bm", "bn", "bo", "br", "bs", "ca", "ce", "ch", "co", "cr", "cs", "cu", "cv", "cy", "da", "de", "dv", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff", "fi", "fj", "fo", "fr", "fy", "ga", "gd", "gl", "gn", "gu", "gv", "ha", "he", "hi", "ho", "hr", "ht", "hu", "hy", "hz", "ia", "id", "ie", "ig", "ii", "ik", "io", "is", "it", "iu", "ja", "jv", "ka", "kg", "ki", "kj", "kk", "kl", "km", "kn", "ko", "kr", "ks", "ku", "kv", "kw", "ky", "la", "lb", "lg", "li", "ln", "lo", "lt", "lu", "lv", "mg", "mh", "mi", "mk", "ml", "mn", "mr", "ms", "mt", "my", "na", "nb", "nd", "ne", "ng", "nl", "nn", "no", "nr", "nv", "ny", "oc", "oj", "om", "or", "os", "pa", "pi", "pl", "ps", "pt", "qu", "rm", "rn", "ro", "ru", "rw", "sa", "sc", "sd", "se", "sg", "si", "sk", "sl", "sm", "sn", "so", "sq", "sr", "ss", "st", "su", "sv", "sw", "ta", "te", "tg", "th", "ti", "tk", "tl", "tn", "to", "tr", "ts", "tt", "tw", "ty", "ug", "uk", "ur", "uz", "ve", "vi", "vo", "wa", "wo", "xh", "yi", "yo", "za", "zh", "zu"]); + function isISO6391(str) { + (0, _assertString.default)(str); + return isISO6391Set.has(str); + } + __name(isISO6391, "isISO6391"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isISO15924.js +var require_isISO15924 = __commonJS({ + "node_modules/validator/lib/isISO15924.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.ScriptCodes = void 0; + exports2.default = isISO15924; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var validISO15924Codes = /* @__PURE__ */ new Set(["Adlm", "Afak", "Aghb", "Ahom", "Arab", "Aran", "Armi", "Armn", "Avst", "Bali", "Bamu", "Bass", "Batk", "Beng", "Bhks", "Blis", "Bopo", "Brah", "Brai", "Bugi", "Buhd", "Cakm", "Cans", "Cari", "Cham", "Cher", "Chis", "Chrs", "Cirt", "Copt", "Cpmn", "Cprt", "Cyrl", "Cyrs", "Deva", "Diak", "Dogr", "Dsrt", "Dupl", "Egyd", "Egyh", "Egyp", "Elba", "Elym", "Ethi", "Gara", "Geok", "Geor", "Glag", "Gong", "Gonm", "Goth", "Gran", "Grek", "Gujr", "Gukh", "Guru", "Hanb", "Hang", "Hani", "Hano", "Hans", "Hant", "Hatr", "Hebr", "Hira", "Hluw", "Hmng", "Hmnp", "Hrkt", "Hung", "Inds", "Ital", "Jamo", "Java", "Jpan", "Jurc", "Kali", "Kana", "Kawi", "Khar", "Khmr", "Khoj", "Kitl", "Kits", "Knda", "Kore", "Kpel", "Krai", "Kthi", "Lana", "Laoo", "Latf", "Latg", "Latn", "Leke", "Lepc", "Limb", "Lina", "Linb", "Lisu", "Loma", "Lyci", "Lydi", "Mahj", "Maka", "Mand", "Mani", "Marc", "Maya", "Medf", "Mend", "Merc", "Mero", "Mlym", "Modi", "Mong", "Moon", "Mroo", "Mtei", "Mult", "Mymr", "Nagm", "Nand", "Narb", "Nbat", "Newa", "Nkdb", "Nkgb", "Nkoo", "Nshu", "Ogam", "Olck", "Onao", "Orkh", "Orya", "Osge", "Osma", "Ougr", "Palm", "Pauc", "Pcun", "Pelm", "Perm", "Phag", "Phli", "Phlp", "Phlv", "Phnx", "Plrd", "Piqd", "Prti", "Psin", "Qaaa", "Qaab", "Qaac", "Qaad", "Qaae", "Qaaf", "Qaag", "Qaah", "Qaai", "Qaaj", "Qaak", "Qaal", "Qaam", "Qaan", "Qaao", "Qaap", "Qaaq", "Qaar", "Qaas", "Qaat", "Qaau", "Qaav", "Qaaw", "Qaax", "Qaay", "Qaaz", "Qaba", "Qabb", "Qabc", "Qabd", "Qabe", "Qabf", "Qabg", "Qabh", "Qabi", "Qabj", "Qabk", "Qabl", "Qabm", "Qabn", "Qabo", "Qabp", "Qabq", "Qabr", "Qabs", "Qabt", "Qabu", "Qabv", "Qabw", "Qabx", "Ranj", "Rjng", "Rohg", "Roro", "Runr", "Samr", "Sara", "Sarb", "Saur", "Sgnw", "Shaw", "Shrd", "Shui", "Sidd", "Sidt", "Sind", "Sinh", "Sogd", "Sogo", "Sora", "Soyo", "Sund", "Sunu", "Sylo", "Syrc", "Syre", "Syrj", "Syrn", "Tagb", "Takr", "Tale", "Talu", "Taml", "Tang", "Tavt", "Tayo", "Telu", "Teng", "Tfng", "Tglg", "Thaa", "Thai", "Tibt", "Tirh", "Tnsa", "Todr", "Tols", "Toto", "Tutg", "Ugar", "Vaii", "Visp", "Vith", "Wara", "Wcho", "Wole", "Xpeo", "Xsux", "Yezi", "Yiii", "Zanb", "Zinh", "Zmth", "Zsye", "Zsym", "Zxxx", "Zyyy", "Zzzz"]); + function isISO15924(str) { + (0, _assertString.default)(str); + return validISO15924Codes.has(str); + } + __name(isISO15924, "isISO15924"); + var ScriptCodes = exports2.ScriptCodes = validISO15924Codes; + } +}); + +// node_modules/validator/lib/isISO4217.js +var require_isISO4217 = __commonJS({ + "node_modules/validator/lib/isISO4217.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.CurrencyCodes = void 0; + exports2.default = isISO4217; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var validISO4217CurrencyCodes = /* @__PURE__ */ new Set(["AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNY", "COP", "COU", "CRC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HTG", "HUF", "IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLE", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VED", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWL"]); + function isISO4217(str) { + (0, _assertString.default)(str); + return validISO4217CurrencyCodes.has(str.toUpperCase()); + } + __name(isISO4217, "isISO4217"); + var CurrencyCodes = exports2.CurrencyCodes = validISO4217CurrencyCodes; + } +}); + +// node_modules/validator/lib/isBase58.js +var require_isBase58 = __commonJS({ + "node_modules/validator/lib/isBase58.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isBase58; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var base58Reg = /^[A-HJ-NP-Za-km-z1-9]*$/; + function isBase58(str) { + (0, _assertString.default)(str); + return base58Reg.test(str); + } + __name(isBase58, "isBase58"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/rtrim.js +var require_rtrim = __commonJS({ + "node_modules/validator/lib/rtrim.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = rtrim; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function rtrim(str, chars) { + (0, _assertString.default)(str); + if (chars) { + var pattern = new RegExp("[".concat(chars.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "]+$"), "g"); + return str.replace(pattern, ""); + } + var strIndex = str.length - 1; + while (/\s/.test(str.charAt(strIndex))) { + strIndex -= 1; + } + return str.slice(0, strIndex + 1); + } + __name(rtrim, "rtrim"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/ltrim.js +var require_ltrim = __commonJS({ + "node_modules/validator/lib/ltrim.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = ltrim; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function ltrim(str, chars) { + (0, _assertString.default)(str); + var pattern = chars ? new RegExp("^[".concat(chars.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "]+"), "g") : /^\s+/g; + return str.replace(pattern, ""); + } + __name(ltrim, "ltrim"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/trim.js +var require_trim = __commonJS({ + "node_modules/validator/lib/trim.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = trim; + var _rtrim = _interopRequireDefault(require_rtrim()); + var _ltrim = _interopRequireDefault(require_ltrim()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function trim(str, chars) { + return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars); + } + __name(trim, "trim"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isMailtoURI.js +var require_isMailtoURI = __commonJS({ + "node_modules/validator/lib/isMailtoURI.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isMailtoURI; + var _trim = _interopRequireDefault(require_trim()); + var _isEmail = _interopRequireDefault(require_isEmail()); + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function _slicedToArray(r, e) { + return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); + } + __name(_slicedToArray, "_slicedToArray"); + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + __name(_nonIterableRest, "_nonIterableRest"); + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (null != t) { + var e, n, i, u, a = [], f = true, o = false; + try { + if (i = (t = t.call(r)).next, 0 === l) { + if (Object(t) !== t) return; + f = false; + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ; + } catch (r2) { + o = true, n = r2; + } finally { + try { + if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; + } finally { + if (o) throw n; + } + } + return a; + } + } + __name(_iterableToArrayLimit, "_iterableToArrayLimit"); + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; + } + __name(_arrayWithHoles, "_arrayWithHoles"); + function _createForOfIteratorHelper(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (!t) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var _n = 0, F = /* @__PURE__ */ __name(function F2() { + }, "F"); + return { s: F, n: /* @__PURE__ */ __name(function n() { + return _n >= r.length ? { done: true } : { done: false, value: r[_n++] }; + }, "n"), e: /* @__PURE__ */ __name(function e2(r2) { + throw r2; + }, "e"), f: F }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var o, a = true, u = false; + return { s: /* @__PURE__ */ __name(function s() { + t = t.call(r); + }, "s"), n: /* @__PURE__ */ __name(function n() { + var r2 = t.next(); + return a = r2.done, r2; + }, "n"), e: /* @__PURE__ */ __name(function e2(r2) { + u = true, o = r2; + }, "e"), f: /* @__PURE__ */ __name(function f() { + try { + a || null == t.return || t.return(); + } finally { + if (u) throw o; + } + }, "f") }; + } + __name(_createForOfIteratorHelper, "_createForOfIteratorHelper"); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + __name(_unsupportedIterableToArray, "_unsupportedIterableToArray"); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + __name(_arrayLikeToArray, "_arrayLikeToArray"); + function parseMailtoQueryString(queryString) { + var allowedParams = /* @__PURE__ */ new Set(["subject", "body", "cc", "bcc"]), query = { + cc: "", + bcc: "" + }; + var isParseFailed = false; + var queryParams = queryString.split("&"); + if (queryParams.length > 4) { + return false; + } + var _iterator = _createForOfIteratorHelper(queryParams), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var q = _step.value; + var _q$split = q.split("="), _q$split2 = _slicedToArray(_q$split, 2), key = _q$split2[0], value = _q$split2[1]; + if (key && !allowedParams.has(key)) { + isParseFailed = true; + break; + } + if (value && (key === "cc" || key === "bcc")) { + query[key] = value; + } + if (key) { + allowedParams.delete(key); + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + return isParseFailed ? false : query; + } + __name(parseMailtoQueryString, "parseMailtoQueryString"); + function isMailtoURI(url, options) { + (0, _assertString.default)(url); + if (url.indexOf("mailto:") !== 0) { + return false; + } + var _url$replace$split = url.replace("mailto:", "").split("?"), _url$replace$split2 = _slicedToArray(_url$replace$split, 2), to = _url$replace$split2[0], _url$replace$split2$ = _url$replace$split2[1], queryString = _url$replace$split2$ === void 0 ? "" : _url$replace$split2$; + if (!to && !queryString) { + return true; + } + var query = parseMailtoQueryString(queryString); + if (!query) { + return false; + } + return "".concat(to, ",").concat(query.cc, ",").concat(query.bcc).split(",").every(function(email) { + email = (0, _trim.default)(email, " "); + if (email) { + return (0, _isEmail.default)(email, options); + } + return true; + }); + } + __name(isMailtoURI, "isMailtoURI"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/escape.js +var require_escape = __commonJS({ + "node_modules/validator/lib/escape.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = escape2; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function escape2(str) { + (0, _assertString.default)(str); + return str.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(//g, ">").replace(/\//g, "/").replace(/\\/g, "\").replace(/`/g, "`"); + } + __name(escape2, "escape"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/unescape.js +var require_unescape = __commonJS({ + "node_modules/validator/lib/unescape.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = unescape2; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function unescape2(str) { + (0, _assertString.default)(str); + return str.replace(/"/g, '"').replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(///g, "/").replace(/\/g, "\\").replace(/`/g, "`").replace(/&/g, "&"); + } + __name(unescape2, "unescape"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/blacklist.js +var require_blacklist = __commonJS({ + "node_modules/validator/lib/blacklist.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = blacklist; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function blacklist(str, chars) { + (0, _assertString.default)(str); + return str.replace(new RegExp("[".concat(chars, "]+"), "g"), ""); + } + __name(blacklist, "blacklist"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/stripLow.js +var require_stripLow = __commonJS({ + "node_modules/validator/lib/stripLow.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = stripLow; + var _assertString = _interopRequireDefault(require_assertString()); + var _blacklist = _interopRequireDefault(require_blacklist()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function stripLow(str, keep_new_lines) { + (0, _assertString.default)(str); + var chars = keep_new_lines ? "\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F" : "\\x00-\\x1F\\x7F"; + return (0, _blacklist.default)(str, chars); + } + __name(stripLow, "stripLow"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/whitelist.js +var require_whitelist = __commonJS({ + "node_modules/validator/lib/whitelist.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = whitelist; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function whitelist(str, chars) { + (0, _assertString.default)(str); + return str.replace(new RegExp("[^".concat(chars, "]+"), "g"), ""); + } + __name(whitelist, "whitelist"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isWhitelisted.js +var require_isWhitelisted = __commonJS({ + "node_modules/validator/lib/isWhitelisted.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isWhitelisted; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + function isWhitelisted(str, chars) { + (0, _assertString.default)(str); + for (var i = str.length - 1; i >= 0; i--) { + if (chars.indexOf(str[i]) === -1) { + return false; + } + } + return true; + } + __name(isWhitelisted, "isWhitelisted"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/normalizeEmail.js +var require_normalizeEmail = __commonJS({ + "node_modules/validator/lib/normalizeEmail.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = normalizeEmail; + var _merge = _interopRequireDefault(require_merge()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var default_normalize_email_options = { + // The following options apply to all email addresses + // Lowercases the local part of the email address. + // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024). + // The domain is always lowercased, as per RFC 1035 + all_lowercase: true, + // The following conversions are specific to GMail + // Lowercases the local part of the GMail address (known to be case-insensitive) + gmail_lowercase: true, + // Removes dots from the local part of the email address, as that's ignored by GMail + gmail_remove_dots: true, + // Removes the subaddress (e.g. "+foo") from the email address + gmail_remove_subaddress: true, + // Conversts the googlemail.com domain to gmail.com + gmail_convert_googlemaildotcom: true, + // The following conversions are specific to Outlook.com / Windows Live / Hotmail + // Lowercases the local part of the Outlook.com address (known to be case-insensitive) + outlookdotcom_lowercase: true, + // Removes the subaddress (e.g. "+foo") from the email address + outlookdotcom_remove_subaddress: true, + // The following conversions are specific to Yahoo + // Lowercases the local part of the Yahoo address (known to be case-insensitive) + yahoo_lowercase: true, + // Removes the subaddress (e.g. "-foo") from the email address + yahoo_remove_subaddress: true, + // The following conversions are specific to Yandex + // Lowercases the local part of the Yandex address (known to be case-insensitive) + yandex_lowercase: true, + // all yandex domains are equal, this explicitly sets the domain to 'yandex.ru' + yandex_convert_yandexru: true, + // The following conversions are specific to iCloud + // Lowercases the local part of the iCloud address (known to be case-insensitive) + icloud_lowercase: true, + // Removes the subaddress (e.g. "+foo") from the email address + icloud_remove_subaddress: true + }; + var icloud_domains = ["icloud.com", "me.com"]; + var outlookdotcom_domains = ["hotmail.at", "hotmail.be", "hotmail.ca", "hotmail.cl", "hotmail.co.il", "hotmail.co.nz", "hotmail.co.th", "hotmail.co.uk", "hotmail.com", "hotmail.com.ar", "hotmail.com.au", "hotmail.com.br", "hotmail.com.gr", "hotmail.com.mx", "hotmail.com.pe", "hotmail.com.tr", "hotmail.com.vn", "hotmail.cz", "hotmail.de", "hotmail.dk", "hotmail.es", "hotmail.fr", "hotmail.hu", "hotmail.id", "hotmail.ie", "hotmail.in", "hotmail.it", "hotmail.jp", "hotmail.kr", "hotmail.lv", "hotmail.my", "hotmail.ph", "hotmail.pt", "hotmail.sa", "hotmail.sg", "hotmail.sk", "live.be", "live.co.uk", "live.com", "live.com.ar", "live.com.mx", "live.de", "live.es", "live.eu", "live.fr", "live.it", "live.nl", "msn.com", "outlook.at", "outlook.be", "outlook.cl", "outlook.co.il", "outlook.co.nz", "outlook.co.th", "outlook.com", "outlook.com.ar", "outlook.com.au", "outlook.com.br", "outlook.com.gr", "outlook.com.pe", "outlook.com.tr", "outlook.com.vn", "outlook.cz", "outlook.de", "outlook.dk", "outlook.es", "outlook.fr", "outlook.hu", "outlook.id", "outlook.ie", "outlook.in", "outlook.it", "outlook.jp", "outlook.kr", "outlook.lv", "outlook.my", "outlook.ph", "outlook.pt", "outlook.sa", "outlook.sg", "outlook.sk", "passport.com"]; + var yahoo_domains = ["rocketmail.com", "yahoo.ca", "yahoo.co.uk", "yahoo.com", "yahoo.de", "yahoo.fr", "yahoo.in", "yahoo.it", "ymail.com"]; + var yandex_domains = ["yandex.ru", "yandex.ua", "yandex.kz", "yandex.com", "yandex.by", "ya.ru"]; + function dotsReplacer(match) { + if (match.length > 1) { + return match; + } + return ""; + } + __name(dotsReplacer, "dotsReplacer"); + function normalizeEmail(email, options) { + options = (0, _merge.default)(options, default_normalize_email_options); + var raw_parts = email.split("@"); + var domain = raw_parts.pop(); + var user = raw_parts.join("@"); + var parts = [user, domain]; + parts[1] = parts[1].toLowerCase(); + if (parts[1] === "gmail.com" || parts[1] === "googlemail.com") { + if (options.gmail_remove_subaddress) { + parts[0] = parts[0].split("+")[0]; + } + if (options.gmail_remove_dots) { + parts[0] = parts[0].replace(/\.+/g, dotsReplacer); + } + if (!parts[0].length) { + return false; + } + if (options.all_lowercase || options.gmail_lowercase) { + parts[0] = parts[0].toLowerCase(); + } + parts[1] = options.gmail_convert_googlemaildotcom ? "gmail.com" : parts[1]; + } else if (icloud_domains.indexOf(parts[1]) >= 0) { + if (options.icloud_remove_subaddress) { + parts[0] = parts[0].split("+")[0]; + } + if (!parts[0].length) { + return false; + } + if (options.all_lowercase || options.icloud_lowercase) { + parts[0] = parts[0].toLowerCase(); + } + } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) { + if (options.outlookdotcom_remove_subaddress) { + parts[0] = parts[0].split("+")[0]; + } + if (!parts[0].length) { + return false; + } + if (options.all_lowercase || options.outlookdotcom_lowercase) { + parts[0] = parts[0].toLowerCase(); + } + } else if (yahoo_domains.indexOf(parts[1]) >= 0) { + if (options.yahoo_remove_subaddress) { + var components = parts[0].split("-"); + parts[0] = components.length > 1 ? components.slice(0, -1).join("-") : components[0]; + } + if (!parts[0].length) { + return false; + } + if (options.all_lowercase || options.yahoo_lowercase) { + parts[0] = parts[0].toLowerCase(); + } + } else if (yandex_domains.indexOf(parts[1]) >= 0) { + if (options.all_lowercase || options.yandex_lowercase) { + parts[0] = parts[0].toLowerCase(); + } + parts[1] = options.yandex_convert_yandexru ? "yandex.ru" : parts[1]; + } else if (options.all_lowercase) { + parts[0] = parts[0].toLowerCase(); + } + return parts.join("@"); + } + __name(normalizeEmail, "normalizeEmail"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isSlug.js +var require_isSlug = __commonJS({ + "node_modules/validator/lib/isSlug.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isSlug; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var charsetRegex = /^[a-z0-9](?!.*[-_]{2,})(?:[a-z0-9_-]*[a-z0-9])?$/; + function isSlug(str) { + (0, _assertString.default)(str); + return charsetRegex.test(str); + } + __name(isSlug, "isSlug"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isLicensePlate.js +var require_isLicensePlate = __commonJS({ + "node_modules/validator/lib/isLicensePlate.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isLicensePlate; + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var validators = { + "cs-CZ": /* @__PURE__ */ __name(function csCZ(str) { + return /^(([ABCDEFHIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(str); + }, "csCZ"), + "de-DE": /* @__PURE__ */ __name(function deDE(str) { + return /^((A|AA|AB|AC|AE|AH|AK|AM|AN|AÖ|AP|AS|AT|AU|AW|AZ|B|BA|BB|BC|BE|BF|BH|BI|BK|BL|BM|BN|BO|BÖ|BS|BT|BZ|C|CA|CB|CE|CO|CR|CW|D|DA|DD|DE|DH|DI|DL|DM|DN|DO|DU|DW|DZ|E|EA|EB|ED|EE|EF|EG|EH|EI|EL|EM|EN|ER|ES|EU|EW|F|FB|FD|FF|FG|FI|FL|FN|FO|FR|FS|FT|FÜ|FW|FZ|G|GA|GC|GD|GE|GF|GG|GI|GK|GL|GM|GN|GÖ|GP|GR|GS|GT|GÜ|GV|GW|GZ|H|HA|HB|HC|HD|HE|HF|HG|HH|HI|HK|HL|HM|HN|HO|HP|HR|HS|HU|HV|HX|HY|HZ|IK|IL|IN|IZ|J|JE|JL|K|KA|KB|KC|KE|KF|KG|KH|KI|KK|KL|KM|KN|KO|KR|KS|KT|KU|KW|KY|L|LA|LB|LC|LD|LF|LG|LH|LI|LL|LM|LN|LÖ|LP|LR|LU|M|MA|MB|MC|MD|ME|MG|MH|MI|MK|ML|MM|MN|MO|MQ|MR|MS|MÜ|MW|MY|MZ|N|NB|ND|NE|NF|NH|NI|NK|NM|NÖ|NP|NR|NT|NU|NW|NY|NZ|OA|OB|OC|OD|OE|OF|OG|OH|OK|OL|OP|OS|OZ|P|PA|PB|PE|PF|PI|PL|PM|PN|PR|PS|PW|PZ|R|RA|RC|RD|RE|RG|RH|RI|RL|RM|RN|RO|RP|RS|RT|RU|RV|RW|RZ|S|SB|SC|SE|SG|SI|SK|SL|SM|SN|SO|SP|SR|ST|SU|SW|SY|SZ|TE|TF|TG|TO|TP|TR|TS|TT|TÜ|ÜB|UE|UH|UL|UM|UN|V|VB|VG|VK|VR|VS|W|WA|WB|WE|WF|WI|WK|WL|WM|WN|WO|WR|WS|WT|WÜ|WW|WZ|Z|ZE|ZI|ZP|ZR|ZW|ZZ)[- ]?[A-Z]{1,2}[- ]?\d{1,4}|(ABG|ABI|AIB|AIC|ALF|ALZ|ANA|ANG|ANK|APD|ARN|ART|ASL|ASZ|AUR|AZE|BAD|BAR|BBG|BCH|BED|BER|BGD|BGL|BID|BIN|BIR|BIT|BIW|BKS|BLB|BLK|BNA|BOG|BOH|BOR|BOT|BRA|BRB|BRG|BRK|BRL|BRV|BSB|BSK|BTF|BÜD|BUL|BÜR|BÜS|BÜZ|CAS|CHA|CLP|CLZ|COC|COE|CUX|DAH|DAN|DAU|DBR|DEG|DEL|DGF|DIL|DIN|DIZ|DKB|DLG|DON|DUD|DÜW|EBE|EBN|EBS|ECK|EIC|EIL|EIN|EIS|EMD|EMS|ERB|ERH|ERK|ERZ|ESB|ESW|FDB|FDS|FEU|FFB|FKB|FLÖ|FOR|FRG|FRI|FRW|FTL|FÜS|GAN|GAP|GDB|GEL|GEO|GER|GHA|GHC|GLA|GMN|GNT|GOA|GOH|GRA|GRH|GRI|GRM|GRZ|GTH|GUB|GUN|GVM|HAB|HAL|HAM|HAS|HBN|HBS|HCH|HDH|HDL|HEB|HEF|HEI|HER|HET|HGN|HGW|HHM|HIG|HIP|HMÜ|HOG|HOH|HOL|HOM|HOR|HÖS|HOT|HRO|HSK|HST|HVL|HWI|IGB|ILL|JÜL|KEH|KEL|KEM|KIB|KLE|KLZ|KÖN|KÖT|KÖZ|KRU|KÜN|KUS|KYF|LAN|LAU|LBS|LBZ|LDK|LDS|LEO|LER|LEV|LIB|LIF|LIP|LÖB|LOS|LRO|LSZ|LÜN|LUP|LWL|MAB|MAI|MAK|MAL|MED|MEG|MEI|MEK|MEL|MER|MET|MGH|MGN|MHL|MIL|MKK|MOD|MOL|MON|MOS|MSE|MSH|MSP|MST|MTK|MTL|MÜB|MÜR|MYK|MZG|NAB|NAI|NAU|NDH|NEA|NEB|NEC|NEN|NES|NEW|NMB|NMS|NOH|NOL|NOM|NOR|NVP|NWM|OAL|OBB|OBG|OCH|OHA|ÖHR|OHV|OHZ|OPR|OSL|OVI|OVL|OVP|PAF|PAN|PAR|PCH|PEG|PIR|PLÖ|PRÜ|QFT|QLB|RDG|REG|REH|REI|RID|RIE|ROD|ROF|ROK|ROL|ROS|ROT|ROW|RSL|RÜD|RÜG|SAB|SAD|SAN|SAW|SBG|SBK|SCZ|SDH|SDL|SDT|SEB|SEE|SEF|SEL|SFB|SFT|SGH|SHA|SHG|SHK|SHL|SIG|SIM|SLE|SLF|SLK|SLN|SLS|SLÜ|SLZ|SMÜ|SOB|SOG|SOK|SÖM|SON|SPB|SPN|SRB|SRO|STA|STB|STD|STE|STL|SUL|SÜW|SWA|SZB|TBB|TDO|TET|TIR|TÖL|TUT|UEM|UER|UFF|USI|VAI|VEC|VER|VIB|VIE|VIT|VOH|WAF|WAK|WAN|WAR|WAT|WBS|WDA|WEL|WEN|WER|WES|WHV|WIL|WIS|WIT|WIZ|WLG|WMS|WND|WOB|WOH|WOL|WOR|WOS|WRN|WSF|WST|WSW|WTL|WTM|WUG|WÜM|WUN|WUR|WZL|ZEL|ZIG)[- ]?(([A-Z][- ]?\d{1,4})|([A-Z]{2}[- ]?\d{1,3})))[- ]?(E|H)?$/.test(str); + }, "deDE"), + "de-LI": /* @__PURE__ */ __name(function deLI(str) { + return /^FL[- ]?\d{1,5}[UZ]?$/.test(str); + }, "deLI"), + "en-IN": /* @__PURE__ */ __name(function enIN(str) { + return /^[A-Z]{2}[ -]?[0-9]{1,2}(?:[ -]?[A-Z])(?:[ -]?[A-Z]*)?[ -]?[0-9]{4}$/.test(str); + }, "enIN"), + "en-SG": /* @__PURE__ */ __name(function enSG(str) { + return /^[A-Z]{3}[ -]?[\d]{4}[ -]?[A-Z]{1}$/.test(str); + }, "enSG"), + "es-AR": /* @__PURE__ */ __name(function esAR(str) { + return /^(([A-Z]{2} ?[0-9]{3} ?[A-Z]{2})|([A-Z]{3} ?[0-9]{3}))$/.test(str); + }, "esAR"), + "fi-FI": /* @__PURE__ */ __name(function fiFI(str) { + return /^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(str); + }, "fiFI"), + "hu-HU": /* @__PURE__ */ __name(function huHU(str) { + return /^((((?!AAA)(([A-NPRSTVZWXY]{1})([A-PR-Z]{1})([A-HJ-NPR-Z]))|(A[ABC]I)|A[ABC]O|A[A-W]Q|BPI|BPO|UCO|UDO|XAO)-(?!000)\d{3})|(M\d{6})|((CK|DT|CD|HC|H[ABEFIKLMNPRSTVX]|MA|OT|R[A-Z]) \d{2}-\d{2})|(CD \d{3}-\d{3})|(C-(C|X) \d{4})|(X-(A|B|C) \d{4})|(([EPVZ]-\d{5}))|(S A[A-Z]{2} \d{2})|(SP \d{2}-\d{2}))$/.test(str); + }, "huHU"), + "pt-BR": /* @__PURE__ */ __name(function ptBR(str) { + return /^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(str); + }, "ptBR"), + "pt-PT": /* @__PURE__ */ __name(function ptPT(str) { + return /^(([A-Z]{2}[ -·]?[0-9]{2}[ -·]?[0-9]{2})|([0-9]{2}[ -·]?[A-Z]{2}[ -·]?[0-9]{2})|([0-9]{2}[ -·]?[0-9]{2}[ -·]?[A-Z]{2})|([A-Z]{2}[ -·]?[0-9]{2}[ -·]?[A-Z]{2}))$/.test(str); + }, "ptPT"), + "sq-AL": /* @__PURE__ */ __name(function sqAL(str) { + return /^[A-Z]{2}[- ]?((\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\d{3}))$/.test(str); + }, "sqAL"), + "sv-SE": /* @__PURE__ */ __name(function svSE(str) { + return /^[A-HJ-PR-UW-Z]{3} ?[\d]{2}[A-HJ-PR-UW-Z1-9]$|(^[A-ZÅÄÖ ]{2,7}$)/.test(str.trim()); + }, "svSE"), + "en-PK": /* @__PURE__ */ __name(function enPK(str) { + return /(^[A-Z]{2}((\s|-){0,1})[0-9]{3,4}((\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{3}((\s|-){0,1})[0-9]{3,4}((\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{4}((\s|-){0,1})[0-9]{3,4}((\s|-)[0-9]{2}){0,1}$)|(^[A-Z]((\s|-){0,1})[0-9]{4}((\s|-)[0-9]{2}){0,1}$)/.test(str.trim()); + }, "enPK") + }; + function isLicensePlate(str, locale) { + (0, _assertString.default)(str); + if (locale in validators) { + return validators[locale](str); + } else if (locale === "any") { + for (var key in validators) { + var validator = validators[key]; + if (validator(str)) { + return true; + } + } + return false; + } + throw new Error("Invalid locale '".concat(locale, "'")); + } + __name(isLicensePlate, "isLicensePlate"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isStrongPassword.js +var require_isStrongPassword = __commonJS({ + "node_modules/validator/lib/isStrongPassword.js"(exports2, module2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isStrongPassword; + var _merge = _interopRequireDefault(require_merge()); + var _assertString = _interopRequireDefault(require_assertString()); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var upperCaseRegex = /^[A-Z]$/; + var lowerCaseRegex = /^[a-z]$/; + var numberRegex = /^[0-9]$/; + var symbolRegex = /^[-#!$@£%^&*()_+|~=`{}\[\]:";'<>?,.\/\\ ]$/; + var defaultOptions = { + minLength: 8, + minLowercase: 1, + minUppercase: 1, + minNumbers: 1, + minSymbols: 1, + returnScore: false, + pointsPerUnique: 1, + pointsPerRepeat: 0.5, + pointsForContainingLower: 10, + pointsForContainingUpper: 10, + pointsForContainingNumber: 10, + pointsForContainingSymbol: 10 + }; + function countChars(str) { + var result = {}; + Array.from(str).forEach(function(char) { + var curVal = result[char]; + if (curVal) { + result[char] += 1; + } else { + result[char] = 1; + } + }); + return result; + } + __name(countChars, "countChars"); + function analyzePassword(password) { + var charMap = countChars(password); + var analysis = { + length: password.length, + uniqueChars: Object.keys(charMap).length, + uppercaseCount: 0, + lowercaseCount: 0, + numberCount: 0, + symbolCount: 0 + }; + Object.keys(charMap).forEach(function(char) { + if (upperCaseRegex.test(char)) { + analysis.uppercaseCount += charMap[char]; + } else if (lowerCaseRegex.test(char)) { + analysis.lowercaseCount += charMap[char]; + } else if (numberRegex.test(char)) { + analysis.numberCount += charMap[char]; + } else if (symbolRegex.test(char)) { + analysis.symbolCount += charMap[char]; + } + }); + return analysis; + } + __name(analyzePassword, "analyzePassword"); + function scorePassword(analysis, scoringOptions) { + var points = 0; + points += analysis.uniqueChars * scoringOptions.pointsPerUnique; + points += (analysis.length - analysis.uniqueChars) * scoringOptions.pointsPerRepeat; + if (analysis.lowercaseCount > 0) { + points += scoringOptions.pointsForContainingLower; + } + if (analysis.uppercaseCount > 0) { + points += scoringOptions.pointsForContainingUpper; + } + if (analysis.numberCount > 0) { + points += scoringOptions.pointsForContainingNumber; + } + if (analysis.symbolCount > 0) { + points += scoringOptions.pointsForContainingSymbol; + } + return points; + } + __name(scorePassword, "scorePassword"); + function isStrongPassword(str) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null; + (0, _assertString.default)(str); + var analysis = analyzePassword(str); + options = (0, _merge.default)(options || {}, defaultOptions); + if (options.returnScore) { + return scorePassword(analysis, options); + } + return analysis.length >= options.minLength && analysis.lowercaseCount >= options.minLowercase && analysis.uppercaseCount >= options.minUppercase && analysis.numberCount >= options.minNumbers && analysis.symbolCount >= options.minSymbols; + } + __name(isStrongPassword, "isStrongPassword"); + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/validator/lib/isVAT.js +var require_isVAT = __commonJS({ + "node_modules/validator/lib/isVAT.js"(exports2) { + "use strict"; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = isVAT; + exports2.vatMatchers = void 0; + var _assertString = _interopRequireDefault(require_assertString()); + var algorithms = _interopRequireWildcard(require_algorithms()); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, default: e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var AU = /* @__PURE__ */ __name(function AU2(str) { + var match = str.match(/^(AU)?(\d{11})$/); + if (!match) { + return false; + } + var weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]; + str = str.replace(/^AU/, ""); + var ABN = (parseInt(str.slice(0, 1), 10) - 1).toString() + str.slice(1); + var total = 0; + for (var i = 0; i < 11; i++) { + total += weights[i] * ABN.charAt(i); + } + return total !== 0 && total % 89 === 0; + }, "AU"); + var CH = /* @__PURE__ */ __name(function CH2(str) { + var hasValidCheckNumber = /* @__PURE__ */ __name(function hasValidCheckNumber2(digits) { + var lastDigit = digits.pop(); + var weights = [5, 4, 3, 2, 7, 6, 5, 4]; + var calculatedCheckNumber = (11 - digits.reduce(function(acc, el, idx) { + return acc + el * weights[idx]; + }, 0) % 11) % 11; + return lastDigit === calculatedCheckNumber; + }, "hasValidCheckNumber"); + return /^(CHE[- ]?)?(\d{9}|(\d{3}\.\d{3}\.\d{3})|(\d{3} \d{3} \d{3})) ?(TVA|MWST|IVA)?$/.test(str) && hasValidCheckNumber(str.match(/\d/g).map(function(el) { + return +el; + })); + }, "CH"); + var PT = /* @__PURE__ */ __name(function PT2(str) { + var match = str.match(/^(PT)?(\d{9})$/); + if (!match) { + return false; + } + var tin = match[2]; + var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split("").slice(0, 8).map(function(a) { + return parseInt(a, 10); + }), 9) % 11; + if (checksum > 9) { + return parseInt(tin[8], 10) === 0; + } + return checksum === parseInt(tin[8], 10); + }, "PT"); + var vatMatchers = exports2.vatMatchers = { + /** + * European Union VAT identification numbers + */ + AT: /* @__PURE__ */ __name(function AT(str) { + return /^(AT)?U\d{8}$/.test(str); + }, "AT"), + BE: /* @__PURE__ */ __name(function BE(str) { + return /^(BE)?\d{10}$/.test(str); + }, "BE"), + BG: /* @__PURE__ */ __name(function BG(str) { + return /^(BG)?\d{9,10}$/.test(str); + }, "BG"), + HR: /* @__PURE__ */ __name(function HR(str) { + return /^(HR)?\d{11}$/.test(str); + }, "HR"), + CY: /* @__PURE__ */ __name(function CY(str) { + return /^(CY)?\w{9}$/.test(str); + }, "CY"), + CZ: /* @__PURE__ */ __name(function CZ(str) { + return /^(CZ)?\d{8,10}$/.test(str); + }, "CZ"), + DK: /* @__PURE__ */ __name(function DK(str) { + return /^(DK)?\d{8}$/.test(str); + }, "DK"), + EE: /* @__PURE__ */ __name(function EE(str) { + return /^(EE)?\d{9}$/.test(str); + }, "EE"), + FI: /* @__PURE__ */ __name(function FI(str) { + return /^(FI)?\d{8}$/.test(str); + }, "FI"), + FR: /* @__PURE__ */ __name(function FR(str) { + return /^(FR)([A-Z0-9]{2}\d{9})$/.test(str); + }, "FR"), + DE: /* @__PURE__ */ __name(function DE(str) { + return /^(DE)?\d{9}$/.test(str); + }, "DE"), + EL: /* @__PURE__ */ __name(function EL(str) { + return /^(EL)?\d{9}$/.test(str); + }, "EL"), + HU: /* @__PURE__ */ __name(function HU(str) { + return /^(HU)?\d{8}$/.test(str); + }, "HU"), + IE: /* @__PURE__ */ __name(function IE(str) { + return /^(IE)?\d{7}\w{1}(W)?$/.test(str); + }, "IE"), + IT: /* @__PURE__ */ __name(function IT(str) { + return /^(IT)?\d{11}$/.test(str); + }, "IT"), + LV: /* @__PURE__ */ __name(function LV(str) { + return /^(LV)?\d{11}$/.test(str); + }, "LV"), + LT: /* @__PURE__ */ __name(function LT(str) { + return /^(LT)?\d{9,12}$/.test(str); + }, "LT"), + LU: /* @__PURE__ */ __name(function LU(str) { + return /^(LU)?\d{8}$/.test(str); + }, "LU"), + MT: /* @__PURE__ */ __name(function MT(str) { + return /^(MT)?\d{8}$/.test(str); + }, "MT"), + NL: /* @__PURE__ */ __name(function NL(str) { + return /^(NL)?\d{9}B\d{2}$/.test(str); + }, "NL"), + PL: /* @__PURE__ */ __name(function PL(str) { + return /^(PL)?(\d{10}|(\d{3}-\d{3}-\d{2}-\d{2})|(\d{3}-\d{2}-\d{2}-\d{3}))$/.test(str); + }, "PL"), + PT, + RO: /* @__PURE__ */ __name(function RO(str) { + return /^(RO)?\d{2,10}$/.test(str); + }, "RO"), + SK: /* @__PURE__ */ __name(function SK(str) { + return /^(SK)?\d{10}$/.test(str); + }, "SK"), + SI: /* @__PURE__ */ __name(function SI(str) { + return /^(SI)?\d{8}$/.test(str); + }, "SI"), + ES: /* @__PURE__ */ __name(function ES(str) { + return /^(ES)?\w\d{7}[A-Z]$/.test(str); + }, "ES"), + SE: /* @__PURE__ */ __name(function SE(str) { + return /^(SE)?\d{12}$/.test(str); + }, "SE"), + /** + * VAT numbers of non-EU countries + */ + AL: /* @__PURE__ */ __name(function AL(str) { + return /^(AL)?\w{9}[A-Z]$/.test(str); + }, "AL"), + MK: /* @__PURE__ */ __name(function MK(str) { + return /^(MK)?\d{13}$/.test(str); + }, "MK"), + AU, + BY: /* @__PURE__ */ __name(function BY(str) { + return /^(УНП )?\d{9}$/.test(str); + }, "BY"), + CA: /* @__PURE__ */ __name(function CA(str) { + return /^(CA)?\d{9}$/.test(str); + }, "CA"), + IS: /* @__PURE__ */ __name(function IS(str) { + return /^(IS)?\d{5,6}$/.test(str); + }, "IS"), + IN: /* @__PURE__ */ __name(function IN(str) { + return /^(IN)?\d{15}$/.test(str); + }, "IN"), + ID: /* @__PURE__ */ __name(function ID(str) { + return /^(ID)?(\d{15}|(\d{2}.\d{3}.\d{3}.\d{1}-\d{3}.\d{3}))$/.test(str); + }, "ID"), + IL: /* @__PURE__ */ __name(function IL(str) { + return /^(IL)?\d{9}$/.test(str); + }, "IL"), + KZ: /* @__PURE__ */ __name(function KZ(str) { + return /^(KZ)?\d{12}$/.test(str); + }, "KZ"), + NZ: /* @__PURE__ */ __name(function NZ(str) { + return /^(NZ)?\d{9}$/.test(str); + }, "NZ"), + NG: /* @__PURE__ */ __name(function NG(str) { + return /^(NG)?(\d{12}|(\d{8}-\d{4}))$/.test(str); + }, "NG"), + NO: /* @__PURE__ */ __name(function NO(str) { + return /^(NO)?\d{9}MVA$/.test(str); + }, "NO"), + PH: /* @__PURE__ */ __name(function PH(str) { + return /^(PH)?(\d{12}|\d{3} \d{3} \d{3} \d{3})$/.test(str); + }, "PH"), + RU: /* @__PURE__ */ __name(function RU(str) { + return /^(RU)?(\d{10}|\d{12})$/.test(str); + }, "RU"), + SM: /* @__PURE__ */ __name(function SM(str) { + return /^(SM)?\d{5}$/.test(str); + }, "SM"), + SA: /* @__PURE__ */ __name(function SA(str) { + return /^(SA)?\d{15}$/.test(str); + }, "SA"), + RS: /* @__PURE__ */ __name(function RS(str) { + return /^(RS)?\d{9}$/.test(str); + }, "RS"), + CH, + TR: /* @__PURE__ */ __name(function TR(str) { + return /^(TR)?\d{10}$/.test(str); + }, "TR"), + UA: /* @__PURE__ */ __name(function UA(str) { + return /^(UA)?\d{12}$/.test(str); + }, "UA"), + GB: /* @__PURE__ */ __name(function GB(str) { + return /^GB((\d{3} \d{4} ([0-8][0-9]|9[0-6]))|(\d{9} \d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/.test(str); + }, "GB"), + UZ: /* @__PURE__ */ __name(function UZ(str) { + return /^(UZ)?\d{9}$/.test(str); + }, "UZ"), + /** + * VAT numbers of Latin American countries + */ + AR: /* @__PURE__ */ __name(function AR(str) { + return /^(AR)?\d{11}$/.test(str); + }, "AR"), + BO: /* @__PURE__ */ __name(function BO(str) { + return /^(BO)?\d{7}$/.test(str); + }, "BO"), + BR: /* @__PURE__ */ __name(function BR(str) { + return /^(BR)?((\d{2}.\d{3}.\d{3}\/\d{4}-\d{2})|(\d{3}.\d{3}.\d{3}-\d{2}))$/.test(str); + }, "BR"), + CL: /* @__PURE__ */ __name(function CL(str) { + return /^(CL)?\d{8}-\d{1}$/.test(str); + }, "CL"), + CO: /* @__PURE__ */ __name(function CO(str) { + return /^(CO)?\d{10}$/.test(str); + }, "CO"), + CR: /* @__PURE__ */ __name(function CR(str) { + return /^(CR)?\d{9,12}$/.test(str); + }, "CR"), + EC: /* @__PURE__ */ __name(function EC(str) { + return /^(EC)?\d{13}$/.test(str); + }, "EC"), + SV: /* @__PURE__ */ __name(function SV(str) { + return /^(SV)?\d{4}-\d{6}-\d{3}-\d{1}$/.test(str); + }, "SV"), + GT: /* @__PURE__ */ __name(function GT(str) { + return /^(GT)?\d{7}-\d{1}$/.test(str); + }, "GT"), + HN: /* @__PURE__ */ __name(function HN(str) { + return /^(HN)?$/.test(str); + }, "HN"), + MX: /* @__PURE__ */ __name(function MX(str) { + return /^(MX)?\w{3,4}\d{6}\w{3}$/.test(str); + }, "MX"), + NI: /* @__PURE__ */ __name(function NI(str) { + return /^(NI)?\d{3}-\d{6}-\d{4}\w{1}$/.test(str); + }, "NI"), + PA: /* @__PURE__ */ __name(function PA(str) { + return /^(PA)?$/.test(str); + }, "PA"), + PY: /* @__PURE__ */ __name(function PY(str) { + return /^(PY)?\d{6,8}-\d{1}$/.test(str); + }, "PY"), + PE: /* @__PURE__ */ __name(function PE(str) { + return /^(PE)?\d{11}$/.test(str); + }, "PE"), + DO: /* @__PURE__ */ __name(function DO(str) { + return /^(DO)?(\d{11}|(\d{3}-\d{7}-\d{1})|[1,4,5]{1}\d{8}|([1,4,5]{1})-\d{2}-\d{5}-\d{1})$/.test(str); + }, "DO"), + UY: /* @__PURE__ */ __name(function UY(str) { + return /^(UY)?\d{12}$/.test(str); + }, "UY"), + VE: /* @__PURE__ */ __name(function VE(str) { + return /^(VE)?[J,G,V,E]{1}-(\d{9}|(\d{8}-\d{1}))$/.test(str); + }, "VE") + }; + function isVAT(str, countryCode) { + (0, _assertString.default)(str); + (0, _assertString.default)(countryCode); + if (countryCode in vatMatchers) { + return vatMatchers[countryCode](str); + } + throw new Error("Invalid country code: '".concat(countryCode, "'")); + } + __name(isVAT, "isVAT"); + } +}); + +// node_modules/validator/index.js +var require_validator = __commonJS({ + "node_modules/validator/index.js"(exports2, module2) { + "use strict"; + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.default = void 0; + var _toDate = _interopRequireDefault(require_toDate()); + var _toFloat = _interopRequireDefault(require_toFloat()); + var _toInt = _interopRequireDefault(require_toInt()); + var _toBoolean = _interopRequireDefault(require_toBoolean()); + var _equals = _interopRequireDefault(require_equals()); + var _contains = _interopRequireDefault(require_contains()); + var _matches = _interopRequireDefault(require_matches()); + var _isEmail = _interopRequireDefault(require_isEmail()); + var _isURL = _interopRequireDefault(require_isURL()); + var _isMACAddress = _interopRequireDefault(require_isMACAddress()); + var _isIP = _interopRequireDefault(require_isIP()); + var _isIPRange = _interopRequireDefault(require_isIPRange()); + var _isFQDN = _interopRequireDefault(require_isFQDN()); + var _isDate = _interopRequireDefault(require_isDate()); + var _isTime = _interopRequireDefault(require_isTime()); + var _isBoolean = _interopRequireDefault(require_isBoolean()); + var _isLocale = _interopRequireDefault(require_isLocale()); + var _isAbaRouting = _interopRequireDefault(require_isAbaRouting()); + var _isAlpha = _interopRequireWildcard(require_isAlpha()); + var _isAlphanumeric = _interopRequireWildcard(require_isAlphanumeric()); + var _isNumeric = _interopRequireDefault(require_isNumeric()); + var _isPassportNumber = _interopRequireWildcard(require_isPassportNumber()); + var _isPort = _interopRequireDefault(require_isPort()); + var _isLowercase = _interopRequireDefault(require_isLowercase()); + var _isUppercase = _interopRequireDefault(require_isUppercase()); + var _isIMEI = _interopRequireDefault(require_isIMEI()); + var _isAscii = _interopRequireDefault(require_isAscii()); + var _isFullWidth = _interopRequireDefault(require_isFullWidth()); + var _isHalfWidth = _interopRequireDefault(require_isHalfWidth()); + var _isVariableWidth = _interopRequireDefault(require_isVariableWidth()); + var _isMultibyte = _interopRequireDefault(require_isMultibyte()); + var _isSemVer = _interopRequireDefault(require_isSemVer()); + var _isSurrogatePair = _interopRequireDefault(require_isSurrogatePair()); + var _isInt = _interopRequireDefault(require_isInt()); + var _isFloat = _interopRequireWildcard(require_isFloat()); + var _isDecimal = _interopRequireDefault(require_isDecimal()); + var _isHexadecimal = _interopRequireDefault(require_isHexadecimal()); + var _isOctal = _interopRequireDefault(require_isOctal()); + var _isDivisibleBy = _interopRequireDefault(require_isDivisibleBy()); + var _isHexColor = _interopRequireDefault(require_isHexColor()); + var _isRgbColor = _interopRequireDefault(require_isRgbColor()); + var _isHSL = _interopRequireDefault(require_isHSL()); + var _isISRC = _interopRequireDefault(require_isISRC()); + var _isIBAN = _interopRequireWildcard(require_isIBAN()); + var _isBIC = _interopRequireDefault(require_isBIC()); + var _isMD = _interopRequireDefault(require_isMD5()); + var _isHash = _interopRequireDefault(require_isHash()); + var _isJWT = _interopRequireDefault(require_isJWT()); + var _isJSON = _interopRequireDefault(require_isJSON()); + var _isEmpty = _interopRequireDefault(require_isEmpty()); + var _isLength = _interopRequireDefault(require_isLength()); + var _isByteLength = _interopRequireDefault(require_isByteLength()); + var _isULID = _interopRequireDefault(require_isULID()); + var _isUUID = _interopRequireDefault(require_isUUID()); + var _isMongoId = _interopRequireDefault(require_isMongoId()); + var _isAfter = _interopRequireDefault(require_isAfter()); + var _isBefore = _interopRequireDefault(require_isBefore()); + var _isIn = _interopRequireDefault(require_isIn()); + var _isLuhnNumber = _interopRequireDefault(require_isLuhnNumber()); + var _isCreditCard = _interopRequireDefault(require_isCreditCard()); + var _isIdentityCard = _interopRequireDefault(require_isIdentityCard()); + var _isEAN = _interopRequireDefault(require_isEAN()); + var _isISIN = _interopRequireDefault(require_isISIN()); + var _isISBN = _interopRequireDefault(require_isISBN()); + var _isISSN = _interopRequireDefault(require_isISSN()); + var _isTaxID = _interopRequireDefault(require_isTaxID()); + var _isMobilePhone = _interopRequireWildcard(require_isMobilePhone()); + var _isEthereumAddress = _interopRequireDefault(require_isEthereumAddress()); + var _isCurrency = _interopRequireDefault(require_isCurrency()); + var _isBtcAddress = _interopRequireDefault(require_isBtcAddress()); + var _isISO = require_isISO6346(); + var _isISO2 = _interopRequireDefault(require_isISO6391()); + var _isISO3 = _interopRequireDefault(require_isISO8601()); + var _isRFC = _interopRequireDefault(require_isRFC3339()); + var _isISO4 = _interopRequireDefault(require_isISO15924()); + var _isISO31661Alpha = _interopRequireDefault(require_isISO31661Alpha2()); + var _isISO31661Alpha2 = _interopRequireDefault(require_isISO31661Alpha3()); + var _isISO31661Numeric = _interopRequireDefault(require_isISO31661Numeric()); + var _isISO5 = _interopRequireDefault(require_isISO4217()); + var _isBase = _interopRequireDefault(require_isBase32()); + var _isBase2 = _interopRequireDefault(require_isBase58()); + var _isBase3 = _interopRequireDefault(require_isBase64()); + var _isDataURI = _interopRequireDefault(require_isDataURI()); + var _isMagnetURI = _interopRequireDefault(require_isMagnetURI()); + var _isMailtoURI = _interopRequireDefault(require_isMailtoURI()); + var _isMimeType = _interopRequireDefault(require_isMimeType()); + var _isLatLong = _interopRequireDefault(require_isLatLong()); + var _isPostalCode = _interopRequireWildcard(require_isPostalCode()); + var _ltrim = _interopRequireDefault(require_ltrim()); + var _rtrim = _interopRequireDefault(require_rtrim()); + var _trim = _interopRequireDefault(require_trim()); + var _escape = _interopRequireDefault(require_escape()); + var _unescape = _interopRequireDefault(require_unescape()); + var _stripLow = _interopRequireDefault(require_stripLow()); + var _whitelist = _interopRequireDefault(require_whitelist()); + var _blacklist = _interopRequireDefault(require_blacklist()); + var _isWhitelisted = _interopRequireDefault(require_isWhitelisted()); + var _normalizeEmail = _interopRequireDefault(require_normalizeEmail()); + var _isSlug = _interopRequireDefault(require_isSlug()); + var _isLicensePlate = _interopRequireDefault(require_isLicensePlate()); + var _isStrongPassword = _interopRequireDefault(require_isStrongPassword()); + var _isVAT = _interopRequireDefault(require_isVAT()); + function _interopRequireWildcard(e, t) { + if ("function" == typeof WeakMap) var r = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(); + return (_interopRequireWildcard = /* @__PURE__ */ __name(function _interopRequireWildcard2(e2, t2) { + if (!t2 && e2 && e2.__esModule) return e2; + var o, i, f = { __proto__: null, default: e2 }; + if (null === e2 || "object" != _typeof(e2) && "function" != typeof e2) return f; + if (o = t2 ? n : r) { + if (o.has(e2)) return o.get(e2); + o.set(e2, f); + } + for (var _t in e2) "default" !== _t && {}.hasOwnProperty.call(e2, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e2, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e2[_t]); + return f; + }, "_interopRequireWildcard"))(e, t); + } + __name(_interopRequireWildcard, "_interopRequireWildcard"); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var version = "13.15.35"; + var validator = { + version, + toDate: _toDate.default, + toFloat: _toFloat.default, + toInt: _toInt.default, + toBoolean: _toBoolean.default, + equals: _equals.default, + contains: _contains.default, + matches: _matches.default, + isEmail: _isEmail.default, + isURL: _isURL.default, + isMACAddress: _isMACAddress.default, + isIP: _isIP.default, + isIPRange: _isIPRange.default, + isFQDN: _isFQDN.default, + isBoolean: _isBoolean.default, + isIBAN: _isIBAN.default, + isBIC: _isBIC.default, + isAbaRouting: _isAbaRouting.default, + isAlpha: _isAlpha.default, + isAlphaLocales: _isAlpha.locales, + isAlphanumeric: _isAlphanumeric.default, + isAlphanumericLocales: _isAlphanumeric.locales, + isNumeric: _isNumeric.default, + isPassportNumber: _isPassportNumber.default, + passportNumberLocales: _isPassportNumber.locales, + isPort: _isPort.default, + isLowercase: _isLowercase.default, + isUppercase: _isUppercase.default, + isAscii: _isAscii.default, + isFullWidth: _isFullWidth.default, + isHalfWidth: _isHalfWidth.default, + isVariableWidth: _isVariableWidth.default, + isMultibyte: _isMultibyte.default, + isSemVer: _isSemVer.default, + isSurrogatePair: _isSurrogatePair.default, + isInt: _isInt.default, + isIMEI: _isIMEI.default, + isFloat: _isFloat.default, + isFloatLocales: _isFloat.locales, + isDecimal: _isDecimal.default, + isHexadecimal: _isHexadecimal.default, + isOctal: _isOctal.default, + isDivisibleBy: _isDivisibleBy.default, + isHexColor: _isHexColor.default, + isRgbColor: _isRgbColor.default, + isHSL: _isHSL.default, + isISRC: _isISRC.default, + isMD5: _isMD.default, + isHash: _isHash.default, + isJWT: _isJWT.default, + isJSON: _isJSON.default, + isEmpty: _isEmpty.default, + isLength: _isLength.default, + isLocale: _isLocale.default, + isByteLength: _isByteLength.default, + isULID: _isULID.default, + isUUID: _isUUID.default, + isMongoId: _isMongoId.default, + isAfter: _isAfter.default, + isBefore: _isBefore.default, + isIn: _isIn.default, + isLuhnNumber: _isLuhnNumber.default, + isCreditCard: _isCreditCard.default, + isIdentityCard: _isIdentityCard.default, + isEAN: _isEAN.default, + isISIN: _isISIN.default, + isISBN: _isISBN.default, + isISSN: _isISSN.default, + isMobilePhone: _isMobilePhone.default, + isMobilePhoneLocales: _isMobilePhone.locales, + isPostalCode: _isPostalCode.default, + isPostalCodeLocales: _isPostalCode.locales, + isEthereumAddress: _isEthereumAddress.default, + isCurrency: _isCurrency.default, + isBtcAddress: _isBtcAddress.default, + isISO6346: _isISO.isISO6346, + isFreightContainerID: _isISO.isFreightContainerID, + isISO6391: _isISO2.default, + isISO8601: _isISO3.default, + isISO15924: _isISO4.default, + isRFC3339: _isRFC.default, + isISO31661Alpha2: _isISO31661Alpha.default, + isISO31661Alpha3: _isISO31661Alpha2.default, + isISO31661Numeric: _isISO31661Numeric.default, + isISO4217: _isISO5.default, + isBase32: _isBase.default, + isBase58: _isBase2.default, + isBase64: _isBase3.default, + isDataURI: _isDataURI.default, + isMagnetURI: _isMagnetURI.default, + isMailtoURI: _isMailtoURI.default, + isMimeType: _isMimeType.default, + isLatLong: _isLatLong.default, + ltrim: _ltrim.default, + rtrim: _rtrim.default, + trim: _trim.default, + escape: _escape.default, + unescape: _unescape.default, + stripLow: _stripLow.default, + whitelist: _whitelist.default, + blacklist: _blacklist.default, + isWhitelisted: _isWhitelisted.default, + normalizeEmail: _normalizeEmail.default, + toString, + isSlug: _isSlug.default, + isStrongPassword: _isStrongPassword.default, + isTaxID: _isTaxID.default, + isDate: _isDate.default, + isTime: _isTime.default, + isLicensePlate: _isLicensePlate.default, + isVAT: _isVAT.default, + ibanLocales: _isIBAN.locales + }; + var _default = exports2.default = validator; + module2.exports = exports2.default; + module2.exports.default = exports2.default; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsStrongPassword.js +var require_IsStrongPassword = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsStrongPassword.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsStrongPassword = exports2.isStrongPassword = exports2.IS_STRONG_PASSWORD = void 0; + var validator = __importStar2(require_validator()); + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_STRONG_PASSWORD = "isStrongPassword"; + function isStrongPassword(value, options) { + return typeof value === "string" && validator.isStrongPassword(value, options); + } + __name(isStrongPassword, "isStrongPassword"); + exports2.isStrongPassword = isStrongPassword; + function IsStrongPassword(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_STRONG_PASSWORD, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isStrongPassword(value, args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property is not strong enough", validationOptions) + } + }, validationOptions); + } + __name(IsStrongPassword, "IsStrongPassword"); + exports2.IsStrongPassword = IsStrongPassword; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsTimeZone.js +var require_IsTimeZone = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsTimeZone.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsTimeZone = exports2.isTimeZone = exports2.IS_TIMEZONE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_TIMEZONE = "isTimeZone"; + function isTimeZone(value) { + try { + if (typeof value !== "string") { + return false; + } + Intl.DateTimeFormat(void 0, { timeZone: value }); + return true; + } catch (exception) { + return false; + } + } + __name(isTimeZone, "isTimeZone"); + exports2.isTimeZone = isTimeZone; + function IsTimeZone(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_TIMEZONE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isTimeZone(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid IANA time-zone", validationOptions) + } + }, validationOptions); + } + __name(IsTimeZone, "IsTimeZone"); + exports2.IsTimeZone = IsTimeZone; + } +}); + +// node_modules/class-validator/cjs/decorator/string/IsBase58.js +var require_IsBase58 = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/IsBase58.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsBase58 = exports2.isBase58 = exports2.IS_BASE58 = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isBase58_1 = __importDefault2(require_isBase58()); + exports2.IS_BASE58 = "isBase58"; + function isBase58(value) { + return typeof value === "string" && (0, isBase58_1.default)(value); + } + __name(isBase58, "isBase58"); + exports2.isBase58 = isBase58; + function IsBase58(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_BASE58, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isBase58(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be base58 encoded", validationOptions) + } + }, validationOptions); + } + __name(IsBase58, "IsBase58"); + exports2.IsBase58 = IsBase58; + } +}); + +// node_modules/class-validator/cjs/decorator/string/is-tax-id.js +var require_is_tax_id = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/is-tax-id.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsTaxId = exports2.isTaxId = exports2.IS_TAX_ID = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isTaxID_1 = __importDefault2(require_isTaxID()); + exports2.IS_TAX_ID = "isTaxId"; + function isTaxId(value, locale) { + return typeof value === "string" && (0, isTaxID_1.default)(value, locale || "en-US"); + } + __name(isTaxId, "isTaxId"); + exports2.isTaxId = isTaxId; + function IsTaxId(locale, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_TAX_ID, + constraints: [locale], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isTaxId(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a Tax Identification Number", validationOptions) + } + }, validationOptions); + } + __name(IsTaxId, "IsTaxId"); + exports2.IsTaxId = IsTaxId; + } +}); + +// node_modules/class-validator/cjs/decorator/string/is-iso4217-currency-code.js +var require_is_iso4217_currency_code = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/is-iso4217-currency-code.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISO4217CurrencyCode = exports2.isISO4217CurrencyCode = exports2.IS_ISO4217_CURRENCY_CODE = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISO4217_1 = __importDefault2(require_isISO4217()); + exports2.IS_ISO4217_CURRENCY_CODE = "isISO4217CurrencyCode"; + function isISO4217CurrencyCode(value) { + return typeof value === "string" && (0, isISO4217_1.default)(value); + } + __name(isISO4217CurrencyCode, "isISO4217CurrencyCode"); + exports2.isISO4217CurrencyCode = isISO4217CurrencyCode; + function IsISO4217CurrencyCode(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISO4217_CURRENCY_CODE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISO4217CurrencyCode(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid ISO4217 currency code", validationOptions) + } + }, validationOptions); + } + __name(IsISO4217CurrencyCode, "IsISO4217CurrencyCode"); + exports2.IsISO4217CurrencyCode = IsISO4217CurrencyCode; + } +}); + +// node_modules/class-validator/cjs/decorator/string/isISO6391.js +var require_isISO63912 = __commonJS({ + "node_modules/class-validator/cjs/decorator/string/isISO6391.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsISO6391 = exports2.isISO6391 = exports2.IS_ISO6391 = void 0; + var ValidateBy_1 = require_ValidateBy(); + var isISO6391_1 = __importDefault2(require_isISO6391()); + exports2.IS_ISO6391 = "isISO6391"; + function isISO6391(value) { + return typeof value === "string" && (0, isISO6391_1.default)(value); + } + __name(isISO6391, "isISO6391"); + exports2.isISO6391 = isISO6391; + function IsISO6391(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ISO6391, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isISO6391(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a valid ISO 639-1 language code", validationOptions) + } + }, validationOptions); + } + __name(IsISO6391, "IsISO6391"); + exports2.IsISO6391 = IsISO6391; + } +}); + +// node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js +var require_IsBoolean = __commonJS({ + "node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsBoolean = exports2.isBoolean = exports2.IS_BOOLEAN = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_BOOLEAN = "isBoolean"; + function isBoolean(value) { + return value instanceof Boolean || typeof value === "boolean"; + } + __name(isBoolean, "isBoolean"); + exports2.isBoolean = isBoolean; + function IsBoolean(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_BOOLEAN, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isBoolean(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a boolean value", validationOptions) + } + }, validationOptions); + } + __name(IsBoolean, "IsBoolean"); + exports2.IsBoolean = IsBoolean; + } +}); + +// node_modules/class-validator/cjs/decorator/typechecker/IsDate.js +var require_IsDate = __commonJS({ + "node_modules/class-validator/cjs/decorator/typechecker/IsDate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsDate = exports2.isDate = exports2.IS_DATE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_DATE = "isDate"; + function isDate(value) { + return value instanceof Date && !isNaN(value.getTime()); + } + __name(isDate, "isDate"); + exports2.isDate = isDate; + function IsDate(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_DATE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isDate(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a Date instance", validationOptions) + } + }, validationOptions); + } + __name(IsDate, "IsDate"); + exports2.IsDate = IsDate; + } +}); + +// node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js +var require_IsNumber = __commonJS({ + "node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsNumber = exports2.isNumber = exports2.IS_NUMBER = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_NUMBER = "isNumber"; + function isNumber(value, options = {}) { + if (typeof value !== "number") { + return false; + } + if (value === Infinity || value === -Infinity) { + return !!options.allowInfinity; + } + if (Number.isNaN(value)) { + return !!options.allowNaN; + } + if (options.maxDecimalPlaces !== void 0) { + let decimalPlaces = 0; + if (value % 1 !== 0) { + decimalPlaces = value.toString().split(".")[1].length; + } + if (decimalPlaces > options.maxDecimalPlaces) { + return false; + } + } + return Number.isFinite(value); + } + __name(isNumber, "isNumber"); + exports2.isNumber = isNumber; + function IsNumber(options = {}, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_NUMBER, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isNumber(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a number conforming to the specified constraints", validationOptions) + } + }, validationOptions); + } + __name(IsNumber, "IsNumber"); + exports2.IsNumber = IsNumber; + } +}); + +// node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js +var require_IsEnum = __commonJS({ + "node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsEnum = exports2.isEnum = exports2.IS_ENUM = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_ENUM = "isEnum"; + function isEnum(value, entity) { + const enumValues = Object.keys(entity).map((k) => entity[k]); + return enumValues.includes(value); + } + __name(isEnum, "isEnum"); + exports2.isEnum = isEnum; + function validEnumValues(entity) { + return Object.entries(entity).filter(([key, value]) => isNaN(parseInt(key))).map(([key, value]) => value); + } + __name(validEnumValues, "validEnumValues"); + function IsEnum(entity, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ENUM, + constraints: [entity, validEnumValues(entity)], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isEnum(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be one of the following values: $constraint2", validationOptions) + } + }, validationOptions); + } + __name(IsEnum, "IsEnum"); + exports2.IsEnum = IsEnum; + } +}); + +// node_modules/class-validator/cjs/decorator/typechecker/IsInt.js +var require_IsInt = __commonJS({ + "node_modules/class-validator/cjs/decorator/typechecker/IsInt.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsInt = exports2.isInt = exports2.IS_INT = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_INT = "isInt"; + function isInt(val) { + return typeof val === "number" && Number.isInteger(val); + } + __name(isInt, "isInt"); + exports2.isInt = isInt; + function IsInt(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_INT, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isInt(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an integer number", validationOptions) + } + }, validationOptions); + } + __name(IsInt, "IsInt"); + exports2.IsInt = IsInt; + } +}); + +// node_modules/class-validator/cjs/decorator/typechecker/IsString.js +var require_IsString = __commonJS({ + "node_modules/class-validator/cjs/decorator/typechecker/IsString.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsString = exports2.isString = exports2.IS_STRING = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_STRING = "isString"; + function isString(value) { + return value instanceof String || typeof value === "string"; + } + __name(isString, "isString"); + exports2.isString = isString; + function IsString(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_STRING, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isString(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a string", validationOptions) + } + }, validationOptions); + } + __name(IsString, "IsString"); + exports2.IsString = IsString; + } +}); + +// node_modules/class-validator/cjs/decorator/typechecker/IsArray.js +var require_IsArray = __commonJS({ + "node_modules/class-validator/cjs/decorator/typechecker/IsArray.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsArray = exports2.isArray = exports2.IS_ARRAY = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_ARRAY = "isArray"; + function isArray(value) { + return Array.isArray(value); + } + __name(isArray, "isArray"); + exports2.isArray = isArray; + function IsArray(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_ARRAY, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isArray(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an array", validationOptions) + } + }, validationOptions); + } + __name(IsArray, "IsArray"); + exports2.IsArray = IsArray; + } +}); + +// node_modules/class-validator/cjs/decorator/typechecker/IsObject.js +var require_IsObject = __commonJS({ + "node_modules/class-validator/cjs/decorator/typechecker/IsObject.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsObject = exports2.isObject = exports2.IS_OBJECT = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_OBJECT = "isObject"; + function isObject(value) { + return value != null && (typeof value === "object" || typeof value === "function") && !Array.isArray(value); + } + __name(isObject, "isObject"); + exports2.isObject = isObject; + function IsObject(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_OBJECT, + validator: { + validate: /* @__PURE__ */ __name((value, args) => isObject(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be an object", validationOptions) + } + }, validationOptions); + } + __name(IsObject, "IsObject"); + exports2.IsObject = IsObject; + } +}); + +// node_modules/class-validator/cjs/decorator/array/ArrayContains.js +var require_ArrayContains = __commonJS({ + "node_modules/class-validator/cjs/decorator/array/ArrayContains.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ArrayContains = exports2.arrayContains = exports2.ARRAY_CONTAINS = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.ARRAY_CONTAINS = "arrayContains"; + function arrayContains(array, values) { + if (!Array.isArray(array)) + return false; + return values.every((value) => array.indexOf(value) !== -1); + } + __name(arrayContains, "arrayContains"); + exports2.arrayContains = arrayContains; + function ArrayContains(values, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.ARRAY_CONTAINS, + constraints: [values], + validator: { + validate: /* @__PURE__ */ __name((value, args) => arrayContains(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain $constraint1 values", validationOptions) + } + }, validationOptions); + } + __name(ArrayContains, "ArrayContains"); + exports2.ArrayContains = ArrayContains; + } +}); + +// node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js +var require_ArrayNotContains = __commonJS({ + "node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ArrayNotContains = exports2.arrayNotContains = exports2.ARRAY_NOT_CONTAINS = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.ARRAY_NOT_CONTAINS = "arrayNotContains"; + function arrayNotContains(array, values) { + if (!Array.isArray(array)) + return false; + return values.every((value) => array.indexOf(value) === -1); + } + __name(arrayNotContains, "arrayNotContains"); + exports2.arrayNotContains = arrayNotContains; + function ArrayNotContains(values, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.ARRAY_NOT_CONTAINS, + constraints: [values], + validator: { + validate: /* @__PURE__ */ __name((value, args) => arrayNotContains(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property should not contain $constraint1 values", validationOptions) + } + }, validationOptions); + } + __name(ArrayNotContains, "ArrayNotContains"); + exports2.ArrayNotContains = ArrayNotContains; + } +}); + +// node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js +var require_ArrayNotEmpty = __commonJS({ + "node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ArrayNotEmpty = exports2.arrayNotEmpty = exports2.ARRAY_NOT_EMPTY = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.ARRAY_NOT_EMPTY = "arrayNotEmpty"; + function arrayNotEmpty(array) { + return Array.isArray(array) && array.length > 0; + } + __name(arrayNotEmpty, "arrayNotEmpty"); + exports2.arrayNotEmpty = arrayNotEmpty; + function ArrayNotEmpty(validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.ARRAY_NOT_EMPTY, + validator: { + validate: /* @__PURE__ */ __name((value, args) => arrayNotEmpty(value), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property should not be empty", validationOptions) + } + }, validationOptions); + } + __name(ArrayNotEmpty, "ArrayNotEmpty"); + exports2.ArrayNotEmpty = ArrayNotEmpty; + } +}); + +// node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js +var require_ArrayMinSize = __commonJS({ + "node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ArrayMinSize = exports2.arrayMinSize = exports2.ARRAY_MIN_SIZE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.ARRAY_MIN_SIZE = "arrayMinSize"; + function arrayMinSize(array, min) { + return Array.isArray(array) && array.length >= min; + } + __name(arrayMinSize, "arrayMinSize"); + exports2.arrayMinSize = arrayMinSize; + function ArrayMinSize(min, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.ARRAY_MIN_SIZE, + constraints: [min], + validator: { + validate: /* @__PURE__ */ __name((value, args) => arrayMinSize(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain at least $constraint1 elements", validationOptions) + } + }, validationOptions); + } + __name(ArrayMinSize, "ArrayMinSize"); + exports2.ArrayMinSize = ArrayMinSize; + } +}); + +// node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js +var require_ArrayMaxSize = __commonJS({ + "node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ArrayMaxSize = exports2.arrayMaxSize = exports2.ARRAY_MAX_SIZE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.ARRAY_MAX_SIZE = "arrayMaxSize"; + function arrayMaxSize(array, max) { + return Array.isArray(array) && array.length <= max; + } + __name(arrayMaxSize, "arrayMaxSize"); + exports2.arrayMaxSize = arrayMaxSize; + function ArrayMaxSize(max, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.ARRAY_MAX_SIZE, + constraints: [max], + validator: { + validate: /* @__PURE__ */ __name((value, args) => arrayMaxSize(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must contain no more than $constraint1 elements", validationOptions) + } + }, validationOptions); + } + __name(ArrayMaxSize, "ArrayMaxSize"); + exports2.ArrayMaxSize = ArrayMaxSize; + } +}); + +// node_modules/class-validator/cjs/decorator/array/ArrayUnique.js +var require_ArrayUnique = __commonJS({ + "node_modules/class-validator/cjs/decorator/array/ArrayUnique.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ArrayUnique = exports2.arrayUnique = exports2.ARRAY_UNIQUE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.ARRAY_UNIQUE = "arrayUnique"; + function arrayUnique(array, identifier) { + if (!Array.isArray(array)) + return false; + if (identifier) { + array = array.map((o) => o != null ? identifier(o) : o); + } + const uniqueItems = array.filter((a, b, c) => c.indexOf(a) === b); + return array.length === uniqueItems.length; + } + __name(arrayUnique, "arrayUnique"); + exports2.arrayUnique = arrayUnique; + function ArrayUnique(identifierOrOptions, validationOptions) { + const identifier = typeof identifierOrOptions === "function" ? identifierOrOptions : void 0; + const options = typeof identifierOrOptions !== "function" ? identifierOrOptions : validationOptions; + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.ARRAY_UNIQUE, + validator: { + validate: /* @__PURE__ */ __name((value, args) => arrayUnique(value, identifier), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "All $property's elements must be unique", options) + } + }, options); + } + __name(ArrayUnique, "ArrayUnique"); + exports2.ArrayUnique = ArrayUnique; + } +}); + +// node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js +var require_IsNotEmptyObject = __commonJS({ + "node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsNotEmptyObject = exports2.isNotEmptyObject = exports2.IS_NOT_EMPTY_OBJECT = void 0; + var ValidateBy_1 = require_ValidateBy(); + var IsObject_1 = require_IsObject(); + exports2.IS_NOT_EMPTY_OBJECT = "isNotEmptyObject"; + function isNotEmptyObject(value, options) { + if (!(0, IsObject_1.isObject)(value)) { + return false; + } + if ((options === null || options === void 0 ? void 0 : options.nullable) === false) { + return !Object.values(value).every((propertyValue) => propertyValue === null || propertyValue === void 0); + } + for (const key in value) { + if (value.hasOwnProperty(key)) { + return true; + } + } + return false; + } + __name(isNotEmptyObject, "isNotEmptyObject"); + exports2.isNotEmptyObject = isNotEmptyObject; + function IsNotEmptyObject(options, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_NOT_EMPTY_OBJECT, + constraints: [options], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isNotEmptyObject(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix) => eachPrefix + "$property must be a non-empty object", validationOptions) + } + }, validationOptions); + } + __name(IsNotEmptyObject, "IsNotEmptyObject"); + exports2.IsNotEmptyObject = IsNotEmptyObject; + } +}); + +// node_modules/class-validator/cjs/decorator/object/IsInstance.js +var require_IsInstance = __commonJS({ + "node_modules/class-validator/cjs/decorator/object/IsInstance.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IsInstance = exports2.isInstance = exports2.IS_INSTANCE = void 0; + var ValidateBy_1 = require_ValidateBy(); + exports2.IS_INSTANCE = "isInstance"; + function isInstance(object, targetTypeConstructor) { + return targetTypeConstructor && typeof targetTypeConstructor === "function" && object instanceof targetTypeConstructor; + } + __name(isInstance, "isInstance"); + exports2.isInstance = isInstance; + function IsInstance(targetType, validationOptions) { + return (0, ValidateBy_1.ValidateBy)({ + name: exports2.IS_INSTANCE, + constraints: [targetType], + validator: { + validate: /* @__PURE__ */ __name((value, args) => isInstance(value, args === null || args === void 0 ? void 0 : args.constraints[0]), "validate"), + defaultMessage: (0, ValidateBy_1.buildMessage)((eachPrefix, args) => { + if (args === null || args === void 0 ? void 0 : args.constraints[0]) { + return eachPrefix + `$property must be an instance of ${args === null || args === void 0 ? void 0 : args.constraints[0].name}`; + } else { + return eachPrefix + `${exports2.IS_INSTANCE} decorator expects and object as value, but got falsy value.`; + } + }, validationOptions) + } + }, validationOptions); + } + __name(IsInstance, "IsInstance"); + exports2.IsInstance = IsInstance; + } +}); + +// node_modules/class-validator/cjs/decorator/decorators.js +var require_decorators2 = __commonJS({ + "node_modules/class-validator/cjs/decorator/decorators.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_Allow(), exports2); + __exportStar2(require_IsDefined(), exports2); + __exportStar2(require_IsOptional(), exports2); + __exportStar2(require_Validate(), exports2); + __exportStar2(require_ValidateBy(), exports2); + __exportStar2(require_ValidateIf(), exports2); + __exportStar2(require_ValidateNested(), exports2); + __exportStar2(require_ValidatePromise(), exports2); + __exportStar2(require_IsLatLong(), exports2); + __exportStar2(require_IsLatitude(), exports2); + __exportStar2(require_IsLongitude(), exports2); + __exportStar2(require_Equals(), exports2); + __exportStar2(require_NotEquals(), exports2); + __exportStar2(require_IsEmpty(), exports2); + __exportStar2(require_IsNotEmpty(), exports2); + __exportStar2(require_IsIn(), exports2); + __exportStar2(require_IsNotIn(), exports2); + __exportStar2(require_IsDivisibleBy(), exports2); + __exportStar2(require_IsPositive(), exports2); + __exportStar2(require_IsNegative(), exports2); + __exportStar2(require_Max(), exports2); + __exportStar2(require_Min(), exports2); + __exportStar2(require_MinDate(), exports2); + __exportStar2(require_MaxDate(), exports2); + __exportStar2(require_Contains(), exports2); + __exportStar2(require_NotContains(), exports2); + __exportStar2(require_IsAlpha(), exports2); + __exportStar2(require_IsAlphanumeric(), exports2); + __exportStar2(require_IsDecimal(), exports2); + __exportStar2(require_IsAscii(), exports2); + __exportStar2(require_IsBase64(), exports2); + __exportStar2(require_IsByteLength(), exports2); + __exportStar2(require_IsCreditCard(), exports2); + __exportStar2(require_IsCurrency(), exports2); + __exportStar2(require_IsEmail(), exports2); + __exportStar2(require_IsFQDN(), exports2); + __exportStar2(require_IsFullWidth(), exports2); + __exportStar2(require_IsHalfWidth(), exports2); + __exportStar2(require_IsVariableWidth(), exports2); + __exportStar2(require_IsHexColor(), exports2); + __exportStar2(require_IsHexadecimal(), exports2); + __exportStar2(require_IsMacAddress(), exports2); + __exportStar2(require_IsIP(), exports2); + __exportStar2(require_IsPort(), exports2); + __exportStar2(require_IsISBN(), exports2); + __exportStar2(require_IsISIN(), exports2); + __exportStar2(require_IsISO8601(), exports2); + __exportStar2(require_IsJSON(), exports2); + __exportStar2(require_IsJWT(), exports2); + __exportStar2(require_IsLowercase(), exports2); + __exportStar2(require_IsMobilePhone(), exports2); + __exportStar2(require_IsISO31661Alpha2(), exports2); + __exportStar2(require_IsISO31661Alpha3(), exports2); + __exportStar2(require_IsISO31661Numeric(), exports2); + __exportStar2(require_IsMongoId(), exports2); + __exportStar2(require_IsMultibyte(), exports2); + __exportStar2(require_IsSurrogatePair(), exports2); + __exportStar2(require_IsUrl(), exports2); + __exportStar2(require_IsUUID(), exports2); + __exportStar2(require_IsFirebasePushId(), exports2); + __exportStar2(require_IsUppercase(), exports2); + __exportStar2(require_Length(), exports2); + __exportStar2(require_MaxLength(), exports2); + __exportStar2(require_MinLength(), exports2); + __exportStar2(require_Matches(), exports2); + __exportStar2(require_IsPhoneNumber(), exports2); + __exportStar2(require_IsMilitaryTime(), exports2); + __exportStar2(require_IsHash(), exports2); + __exportStar2(require_IsISSN(), exports2); + __exportStar2(require_IsDateString(), exports2); + __exportStar2(require_IsBooleanString(), exports2); + __exportStar2(require_IsNumberString(), exports2); + __exportStar2(require_IsBase32(), exports2); + __exportStar2(require_IsBIC(), exports2); + __exportStar2(require_IsBtcAddress(), exports2); + __exportStar2(require_IsDataURI(), exports2); + __exportStar2(require_IsEAN(), exports2); + __exportStar2(require_IsEthereumAddress(), exports2); + __exportStar2(require_IsHSL(), exports2); + __exportStar2(require_IsIBAN(), exports2); + __exportStar2(require_IsIdentityCard(), exports2); + __exportStar2(require_IsISRC(), exports2); + __exportStar2(require_IsLocale(), exports2); + __exportStar2(require_IsMagnetURI(), exports2); + __exportStar2(require_IsMimeType(), exports2); + __exportStar2(require_IsOctal(), exports2); + __exportStar2(require_IsPassportNumber(), exports2); + __exportStar2(require_IsPostalCode(), exports2); + __exportStar2(require_IsRFC3339(), exports2); + __exportStar2(require_IsRgbColor(), exports2); + __exportStar2(require_IsSemVer(), exports2); + __exportStar2(require_IsStrongPassword(), exports2); + __exportStar2(require_IsTimeZone(), exports2); + __exportStar2(require_IsBase58(), exports2); + __exportStar2(require_is_tax_id(), exports2); + __exportStar2(require_is_iso4217_currency_code(), exports2); + __exportStar2(require_isISO63912(), exports2); + __exportStar2(require_IsBoolean(), exports2); + __exportStar2(require_IsDate(), exports2); + __exportStar2(require_IsNumber(), exports2); + __exportStar2(require_IsEnum(), exports2); + __exportStar2(require_IsInt(), exports2); + __exportStar2(require_IsString(), exports2); + __exportStar2(require_IsArray(), exports2); + __exportStar2(require_IsObject(), exports2); + __exportStar2(require_ArrayContains(), exports2); + __exportStar2(require_ArrayNotContains(), exports2); + __exportStar2(require_ArrayNotEmpty(), exports2); + __exportStar2(require_ArrayMinSize(), exports2); + __exportStar2(require_ArrayMaxSize(), exports2); + __exportStar2(require_ArrayUnique(), exports2); + __exportStar2(require_IsNotEmptyObject(), exports2); + __exportStar2(require_IsInstance(), exports2); + } +}); + +// node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js +var require_ValidatorConstraintInterface = __commonJS({ + "node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-validator/cjs/validation/ValidatorOptions.js +var require_ValidatorOptions = __commonJS({ + "node_modules/class-validator/cjs/validation/ValidatorOptions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-validator/cjs/validation/ValidationArguments.js +var require_ValidationArguments = __commonJS({ + "node_modules/class-validator/cjs/validation/ValidationArguments.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-validator/cjs/validation-schema/ValidationSchema.js +var require_ValidationSchema = __commonJS({ + "node_modules/class-validator/cjs/validation-schema/ValidationSchema.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-validator/cjs/index.js +var require_cjs = __commonJS({ + "node_modules/class-validator/cjs/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.registerSchema = exports2.validateSync = exports2.validateOrReject = exports2.validate = void 0; + var MetadataStorage_1 = require_MetadataStorage(); + var Validator_1 = require_Validator(); + var container_1 = require_container(); + __exportStar2(require_container(), exports2); + __exportStar2(require_decorators2(), exports2); + __exportStar2(require_ValidationOptions(), exports2); + __exportStar2(require_ValidatorConstraintInterface(), exports2); + __exportStar2(require_ValidationError(), exports2); + __exportStar2(require_ValidatorOptions(), exports2); + __exportStar2(require_ValidationArguments(), exports2); + __exportStar2(require_ValidationTypes(), exports2); + __exportStar2(require_Validator(), exports2); + __exportStar2(require_ValidationSchema(), exports2); + __exportStar2(require_register_decorator(), exports2); + __exportStar2(require_MetadataStorage(), exports2); + function validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { + if (typeof schemaNameOrObject === "string") { + return (0, container_1.getFromContainer)(Validator_1.Validator).validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); + } else { + return (0, container_1.getFromContainer)(Validator_1.Validator).validate(schemaNameOrObject, objectOrValidationOptions); + } + } + __name(validate, "validate"); + exports2.validate = validate; + function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { + if (typeof schemaNameOrObject === "string") { + return (0, container_1.getFromContainer)(Validator_1.Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); + } else { + return (0, container_1.getFromContainer)(Validator_1.Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions); + } + } + __name(validateOrReject, "validateOrReject"); + exports2.validateOrReject = validateOrReject; + function validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { + if (typeof schemaNameOrObject === "string") { + return (0, container_1.getFromContainer)(Validator_1.Validator).validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); + } else { + return (0, container_1.getFromContainer)(Validator_1.Validator).validateSync(schemaNameOrObject, objectOrValidationOptions); + } + } + __name(validateSync, "validateSync"); + exports2.validateSync = validateSync; + function registerSchema(schema) { + (0, MetadataStorage_1.getMetadataStorage)().addValidationSchema(schema); + } + __name(registerSchema, "registerSchema"); + exports2.registerSchema = registerSchema; + } +}); + +// node_modules/class-transformer/cjs/enums/transformation-type.enum.js +var require_transformation_type_enum = __commonJS({ + "node_modules/class-transformer/cjs/enums/transformation-type.enum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TransformationType = void 0; + var TransformationType; + (function(TransformationType2) { + TransformationType2[TransformationType2["PLAIN_TO_CLASS"] = 0] = "PLAIN_TO_CLASS"; + TransformationType2[TransformationType2["CLASS_TO_PLAIN"] = 1] = "CLASS_TO_PLAIN"; + TransformationType2[TransformationType2["CLASS_TO_CLASS"] = 2] = "CLASS_TO_CLASS"; + })(TransformationType = exports2.TransformationType || (exports2.TransformationType = {})); + } +}); + +// node_modules/class-transformer/cjs/enums/index.js +var require_enums2 = __commonJS({ + "node_modules/class-transformer/cjs/enums/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_transformation_type_enum(), exports2); + } +}); + +// node_modules/class-transformer/cjs/MetadataStorage.js +var require_MetadataStorage2 = __commonJS({ + "node_modules/class-transformer/cjs/MetadataStorage.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MetadataStorage = void 0; + var enums_1 = require_enums2(); + var MetadataStorage = class { + static { + __name(this, "MetadataStorage"); + } + constructor() { + this._typeMetadatas = /* @__PURE__ */ new Map(); + this._transformMetadatas = /* @__PURE__ */ new Map(); + this._exposeMetadatas = /* @__PURE__ */ new Map(); + this._excludeMetadatas = /* @__PURE__ */ new Map(); + this._ancestorsMap = /* @__PURE__ */ new Map(); + } + // ------------------------------------------------------------------------- + // Adder Methods + // ------------------------------------------------------------------------- + addTypeMetadata(metadata) { + if (!this._typeMetadatas.has(metadata.target)) { + this._typeMetadatas.set(metadata.target, /* @__PURE__ */ new Map()); + } + this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); + } + addTransformMetadata(metadata) { + if (!this._transformMetadatas.has(metadata.target)) { + this._transformMetadatas.set(metadata.target, /* @__PURE__ */ new Map()); + } + if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) { + this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []); + } + this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata); + } + addExposeMetadata(metadata) { + if (!this._exposeMetadatas.has(metadata.target)) { + this._exposeMetadatas.set(metadata.target, /* @__PURE__ */ new Map()); + } + this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); + } + addExcludeMetadata(metadata) { + if (!this._excludeMetadatas.has(metadata.target)) { + this._excludeMetadatas.set(metadata.target, /* @__PURE__ */ new Map()); + } + this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); + } + // ------------------------------------------------------------------------- + // Public Methods + // ------------------------------------------------------------------------- + findTransformMetadatas(target, propertyName, transformationType) { + return this.findMetadatas(this._transformMetadatas, target, propertyName).filter((metadata) => { + if (!metadata.options) + return true; + if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) + return true; + if (metadata.options.toClassOnly === true) { + return transformationType === enums_1.TransformationType.CLASS_TO_CLASS || transformationType === enums_1.TransformationType.PLAIN_TO_CLASS; + } + if (metadata.options.toPlainOnly === true) { + return transformationType === enums_1.TransformationType.CLASS_TO_PLAIN; + } + return true; + }); + } + findExcludeMetadata(target, propertyName) { + return this.findMetadata(this._excludeMetadatas, target, propertyName); + } + findExposeMetadata(target, propertyName) { + return this.findMetadata(this._exposeMetadatas, target, propertyName); + } + findExposeMetadataByCustomName(target, name) { + return this.getExposedMetadatas(target).find((metadata) => { + return metadata.options && metadata.options.name === name; + }); + } + findTypeMetadata(target, propertyName) { + return this.findMetadata(this._typeMetadatas, target, propertyName); + } + getStrategy(target) { + const excludeMap = this._excludeMetadatas.get(target); + const exclude = excludeMap && excludeMap.get(void 0); + const exposeMap = this._exposeMetadatas.get(target); + const expose = exposeMap && exposeMap.get(void 0); + if (exclude && expose || !exclude && !expose) + return "none"; + return exclude ? "excludeAll" : "exposeAll"; + } + getExposedMetadatas(target) { + return this.getMetadata(this._exposeMetadatas, target); + } + getExcludedMetadatas(target) { + return this.getMetadata(this._excludeMetadatas, target); + } + getExposedProperties(target, transformationType) { + return this.getExposedMetadatas(target).filter((metadata) => { + if (!metadata.options) + return true; + if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) + return true; + if (metadata.options.toClassOnly === true) { + return transformationType === enums_1.TransformationType.CLASS_TO_CLASS || transformationType === enums_1.TransformationType.PLAIN_TO_CLASS; + } + if (metadata.options.toPlainOnly === true) { + return transformationType === enums_1.TransformationType.CLASS_TO_PLAIN; + } + return true; + }).map((metadata) => metadata.propertyName); + } + getExcludedProperties(target, transformationType) { + return this.getExcludedMetadatas(target).filter((metadata) => { + if (!metadata.options) + return true; + if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) + return true; + if (metadata.options.toClassOnly === true) { + return transformationType === enums_1.TransformationType.CLASS_TO_CLASS || transformationType === enums_1.TransformationType.PLAIN_TO_CLASS; + } + if (metadata.options.toPlainOnly === true) { + return transformationType === enums_1.TransformationType.CLASS_TO_PLAIN; + } + return true; + }).map((metadata) => metadata.propertyName); + } + clear() { + this._typeMetadatas.clear(); + this._exposeMetadatas.clear(); + this._excludeMetadatas.clear(); + this._ancestorsMap.clear(); + } + // ------------------------------------------------------------------------- + // Private Methods + // ------------------------------------------------------------------------- + getMetadata(metadatas, target) { + const metadataFromTargetMap = metadatas.get(target); + let metadataFromTarget; + if (metadataFromTargetMap) { + metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter((meta) => meta.propertyName !== void 0); + } + const metadataFromAncestors = []; + for (const ancestor of this.getAncestors(target)) { + const ancestorMetadataMap = metadatas.get(ancestor); + if (ancestorMetadataMap) { + const metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter((meta) => meta.propertyName !== void 0); + metadataFromAncestors.push(...metadataFromAncestor); + } + } + return metadataFromAncestors.concat(metadataFromTarget || []); + } + findMetadata(metadatas, target, propertyName) { + const metadataFromTargetMap = metadatas.get(target); + if (metadataFromTargetMap) { + const metadataFromTarget = metadataFromTargetMap.get(propertyName); + if (metadataFromTarget) { + return metadataFromTarget; + } + } + for (const ancestor of this.getAncestors(target)) { + const ancestorMetadataMap = metadatas.get(ancestor); + if (ancestorMetadataMap) { + const ancestorResult = ancestorMetadataMap.get(propertyName); + if (ancestorResult) { + return ancestorResult; + } + } + } + return void 0; + } + findMetadatas(metadatas, target, propertyName) { + const metadataFromTargetMap = metadatas.get(target); + let metadataFromTarget; + if (metadataFromTargetMap) { + metadataFromTarget = metadataFromTargetMap.get(propertyName); + } + const metadataFromAncestorsTarget = []; + for (const ancestor of this.getAncestors(target)) { + const ancestorMetadataMap = metadatas.get(ancestor); + if (ancestorMetadataMap) { + if (ancestorMetadataMap.has(propertyName)) { + metadataFromAncestorsTarget.push(...ancestorMetadataMap.get(propertyName)); + } + } + } + return metadataFromAncestorsTarget.slice().reverse().concat((metadataFromTarget || []).slice().reverse()); + } + getAncestors(target) { + if (!target) + return []; + if (!this._ancestorsMap.has(target)) { + const ancestors = []; + for (let baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== "undefined"; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) { + ancestors.push(baseClass); + } + this._ancestorsMap.set(target, ancestors); + } + return this._ancestorsMap.get(target); + } + }; + exports2.MetadataStorage = MetadataStorage; + } +}); + +// node_modules/class-transformer/cjs/storage.js +var require_storage = __commonJS({ + "node_modules/class-transformer/cjs/storage.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defaultMetadataStorage = void 0; + var MetadataStorage_1 = require_MetadataStorage2(); + exports2.defaultMetadataStorage = new MetadataStorage_1.MetadataStorage(); + } +}); + +// node_modules/class-transformer/cjs/utils/get-global.util.js +var require_get_global_util2 = __commonJS({ + "node_modules/class-transformer/cjs/utils/get-global.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getGlobal = void 0; + function getGlobal() { + if (typeof globalThis !== "undefined") { + return globalThis; + } + if (typeof global !== "undefined") { + return global; + } + if (typeof window !== "undefined") { + return window; + } + if (typeof self !== "undefined") { + return self; + } + } + __name(getGlobal, "getGlobal"); + exports2.getGlobal = getGlobal; + } +}); + +// node_modules/class-transformer/cjs/utils/is-promise.util.js +var require_is_promise_util2 = __commonJS({ + "node_modules/class-transformer/cjs/utils/is-promise.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isPromise = void 0; + function isPromise(p) { + return p !== null && typeof p === "object" && typeof p.then === "function"; + } + __name(isPromise, "isPromise"); + exports2.isPromise = isPromise; + } +}); + +// node_modules/class-transformer/cjs/utils/index.js +var require_utils5 = __commonJS({ + "node_modules/class-transformer/cjs/utils/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_get_global_util2(), exports2); + __exportStar2(require_is_promise_util2(), exports2); + } +}); + +// node_modules/class-transformer/cjs/TransformOperationExecutor.js +var require_TransformOperationExecutor = __commonJS({ + "node_modules/class-transformer/cjs/TransformOperationExecutor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TransformOperationExecutor = void 0; + var storage_1 = require_storage(); + var enums_1 = require_enums2(); + var utils_1 = require_utils5(); + function instantiateArrayType(arrayType) { + const array = new arrayType(); + if (!(array instanceof Set) && !("push" in array)) { + return []; + } + return array; + } + __name(instantiateArrayType, "instantiateArrayType"); + var TransformOperationExecutor = class { + static { + __name(this, "TransformOperationExecutor"); + } + // ------------------------------------------------------------------------- + // Constructor + // ------------------------------------------------------------------------- + constructor(transformationType, options) { + this.transformationType = transformationType; + this.options = options; + this.recursionStack = /* @__PURE__ */ new Set(); + } + // ------------------------------------------------------------------------- + // Public Methods + // ------------------------------------------------------------------------- + transform(source, value, targetType, arrayType, isMap, level = 0) { + if (Array.isArray(value) || value instanceof Set) { + const newValue = arrayType && this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS ? instantiateArrayType(arrayType) : []; + value.forEach((subValue, index) => { + const subSource = source ? source[index] : void 0; + if (!this.options.enableCircularCheck || !this.isCircular(subValue)) { + let realTargetType; + if (typeof targetType !== "function" && targetType && targetType.options && targetType.options.discriminator && targetType.options.discriminator.property && targetType.options.discriminator.subTypes) { + if (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { + realTargetType = targetType.options.discriminator.subTypes.find((subType) => subType.name === subValue[targetType.options.discriminator.property]); + const options = { newObject: newValue, object: subValue, property: void 0 }; + const newType = targetType.typeFunction(options); + realTargetType === void 0 ? realTargetType = newType : realTargetType = realTargetType.value; + if (!targetType.options.keepDiscriminatorProperty) + delete subValue[targetType.options.discriminator.property]; + } + if (this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { + realTargetType = subValue.constructor; + } + if (this.transformationType === enums_1.TransformationType.CLASS_TO_PLAIN) { + subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find((subType) => subType.value === subValue.constructor).name; + } + } else { + realTargetType = targetType; + } + const value2 = this.transform(subSource, subValue, realTargetType, void 0, subValue instanceof Map, level + 1); + if (newValue instanceof Set) { + newValue.add(value2); + } else { + newValue.push(value2); + } + } else if (this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { + if (newValue instanceof Set) { + newValue.add(subValue); + } else { + newValue.push(subValue); + } + } + }); + return newValue; + } else if (targetType === String && !isMap) { + if (value === null || value === void 0) + return value; + return String(value); + } else if (targetType === Number && !isMap) { + if (value === null || value === void 0) + return value; + return Number(value); + } else if (targetType === Boolean && !isMap) { + if (value === null || value === void 0) + return value; + return Boolean(value); + } else if ((targetType === Date || value instanceof Date) && !isMap) { + if (value instanceof Date) { + return new Date(value.valueOf()); + } + if (value === null || value === void 0) + return value; + return new Date(value); + } else if (!!(0, utils_1.getGlobal)().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) { + if (value === null || value === void 0) + return value; + return Buffer.from(value); + } else if ((0, utils_1.isPromise)(value) && !isMap) { + return new Promise((resolve, reject) => { + value.then((data) => resolve(this.transform(void 0, data, targetType, void 0, void 0, level + 1)), reject); + }); + } else if (!isMap && value !== null && typeof value === "object" && typeof value.then === "function") { + return value; + } else if (typeof value === "object" && value !== null) { + if (!targetType && value.constructor !== Object) + if (!Array.isArray(value) && value.constructor === Array) { + } else { + targetType = value.constructor; + } + if (!targetType && source) + targetType = source.constructor; + if (this.options.enableCircularCheck) { + this.recursionStack.add(value); + } + const keys = this.getKeys(targetType, value, isMap); + let newValue = source ? source : {}; + if (!source && (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS || this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS)) { + if (isMap) { + newValue = /* @__PURE__ */ new Map(); + } else if (targetType) { + newValue = new targetType(); + } else { + newValue = {}; + } + } + for (const key of keys) { + if (key === "__proto__" || key === "constructor") { + continue; + } + const valueKey = key; + let newValueKey = key, propertyName = key; + if (!this.options.ignoreDecorators && targetType) { + if (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { + const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadataByCustomName(targetType, key); + if (exposeMetadata) { + propertyName = exposeMetadata.propertyName; + newValueKey = exposeMetadata.propertyName; + } + } else if (this.transformationType === enums_1.TransformationType.CLASS_TO_PLAIN || this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { + const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(targetType, key); + if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { + newValueKey = exposeMetadata.options.name; + } + } + } + let subValue = void 0; + if (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { + subValue = value[valueKey]; + } else { + if (value instanceof Map) { + subValue = value.get(valueKey); + } else if (value[valueKey] instanceof Function) { + subValue = value[valueKey](); + } else { + subValue = value[valueKey]; + } + } + let type = void 0, isSubValueMap = subValue instanceof Map; + if (targetType && isMap) { + type = targetType; + } else if (targetType) { + const metadata = storage_1.defaultMetadataStorage.findTypeMetadata(targetType, propertyName); + if (metadata) { + const options = { newObject: newValue, object: value, property: propertyName }; + const newType = metadata.typeFunction ? metadata.typeFunction(options) : metadata.reflectedType; + if (metadata.options && metadata.options.discriminator && metadata.options.discriminator.property && metadata.options.discriminator.subTypes) { + if (!(value[valueKey] instanceof Array)) { + if (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { + type = metadata.options.discriminator.subTypes.find((subType) => { + if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) { + return subType.name === subValue[metadata.options.discriminator.property]; + } + }); + type === void 0 ? type = newType : type = type.value; + if (!metadata.options.keepDiscriminatorProperty) { + if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) { + delete subValue[metadata.options.discriminator.property]; + } + } + } + if (this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { + type = subValue.constructor; + } + if (this.transformationType === enums_1.TransformationType.CLASS_TO_PLAIN) { + if (subValue) { + subValue[metadata.options.discriminator.property] = metadata.options.discriminator.subTypes.find((subType) => subType.value === subValue.constructor).name; + } + } + } else { + type = metadata; + } + } else { + type = newType; + } + isSubValueMap = isSubValueMap || metadata.reflectedType === Map; + } else if (this.options.targetMaps) { + this.options.targetMaps.filter((map) => map.target === targetType && !!map.properties[propertyName]).forEach((map) => type = map.properties[propertyName]); + } else if (this.options.enableImplicitConversion && this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { + const reflectedType = Reflect.getMetadata("design:type", targetType.prototype, propertyName); + if (reflectedType) { + type = reflectedType; + } + } + } + const arrayType2 = Array.isArray(value[valueKey]) ? this.getReflectedType(targetType, propertyName) : void 0; + const subSource = source ? source[valueKey] : void 0; + if (newValue.constructor.prototype) { + const descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey); + if ((this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS || this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) && // eslint-disable-next-line @typescript-eslint/unbound-method + (descriptor && !descriptor.set || newValue[newValueKey] instanceof Function)) + continue; + } + if (!this.options.enableCircularCheck || !this.isCircular(subValue)) { + const transformKey = this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS ? newValueKey : key; + let finalValue; + if (this.transformationType === enums_1.TransformationType.CLASS_TO_PLAIN) { + finalValue = value[transformKey]; + finalValue = this.applyCustomTransformations(finalValue, targetType, transformKey, value, this.transformationType); + finalValue = value[transformKey] === finalValue ? subValue : finalValue; + finalValue = this.transform(subSource, finalValue, type, arrayType2, isSubValueMap, level + 1); + } else { + if (subValue === void 0 && this.options.exposeDefaultValues) { + finalValue = newValue[newValueKey]; + } else { + finalValue = this.transform(subSource, subValue, type, arrayType2, isSubValueMap, level + 1); + finalValue = this.applyCustomTransformations(finalValue, targetType, transformKey, value, this.transformationType); + } + } + if (finalValue !== void 0 || this.options.exposeUnsetFields) { + if (newValue instanceof Map) { + newValue.set(newValueKey, finalValue); + } else { + newValue[newValueKey] = finalValue; + } + } + } else if (this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { + let finalValue = subValue; + finalValue = this.applyCustomTransformations(finalValue, targetType, key, value, this.transformationType); + if (finalValue !== void 0 || this.options.exposeUnsetFields) { + if (newValue instanceof Map) { + newValue.set(newValueKey, finalValue); + } else { + newValue[newValueKey] = finalValue; + } + } + } + } + if (this.options.enableCircularCheck) { + this.recursionStack.delete(value); + } + return newValue; + } else { + return value; + } + } + applyCustomTransformations(value, target, key, obj, transformationType) { + let metadatas = storage_1.defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType); + if (this.options.version !== void 0) { + metadatas = metadatas.filter((metadata) => { + if (!metadata.options) + return true; + return this.checkVersion(metadata.options.since, metadata.options.until); + }); + } + if (this.options.groups && this.options.groups.length) { + metadatas = metadatas.filter((metadata) => { + if (!metadata.options) + return true; + return this.checkGroups(metadata.options.groups); + }); + } else { + metadatas = metadatas.filter((metadata) => { + return !metadata.options || !metadata.options.groups || !metadata.options.groups.length; + }); + } + metadatas.forEach((metadata) => { + value = metadata.transformFn({ value, key, obj, type: transformationType, options: this.options }); + }); + return value; + } + // preventing circular references + isCircular(object) { + return this.recursionStack.has(object); + } + getReflectedType(target, propertyName) { + if (!target) + return void 0; + const meta = storage_1.defaultMetadataStorage.findTypeMetadata(target, propertyName); + return meta ? meta.reflectedType : void 0; + } + getKeys(target, object, isMap) { + let strategy = storage_1.defaultMetadataStorage.getStrategy(target); + if (strategy === "none") + strategy = this.options.strategy || "exposeAll"; + let keys = []; + if (strategy === "exposeAll" || isMap) { + if (object instanceof Map) { + keys = Array.from(object.keys()); + } else { + keys = Object.keys(object); + } + } + if (isMap) { + return keys; + } + if (this.options.ignoreDecorators && this.options.excludeExtraneousValues && target) { + const exposedProperties = storage_1.defaultMetadataStorage.getExposedProperties(target, this.transformationType); + const excludedProperties = storage_1.defaultMetadataStorage.getExcludedProperties(target, this.transformationType); + keys = [...exposedProperties, ...excludedProperties]; + } + if (!this.options.ignoreDecorators && target) { + let exposedProperties = storage_1.defaultMetadataStorage.getExposedProperties(target, this.transformationType); + if (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { + exposedProperties = exposedProperties.map((key) => { + const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(target, key); + if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { + return exposeMetadata.options.name; + } + return key; + }); + } + if (this.options.excludeExtraneousValues) { + keys = exposedProperties; + } else { + keys = keys.concat(exposedProperties); + } + const excludedProperties = storage_1.defaultMetadataStorage.getExcludedProperties(target, this.transformationType); + if (excludedProperties.length > 0) { + keys = keys.filter((key) => { + return !excludedProperties.includes(key); + }); + } + if (this.options.version !== void 0) { + keys = keys.filter((key) => { + const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(target, key); + if (!exposeMetadata || !exposeMetadata.options) + return true; + return this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until); + }); + } + if (this.options.groups && this.options.groups.length) { + keys = keys.filter((key) => { + const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(target, key); + if (!exposeMetadata || !exposeMetadata.options) + return true; + return this.checkGroups(exposeMetadata.options.groups); + }); + } else { + keys = keys.filter((key) => { + const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(target, key); + return !exposeMetadata || !exposeMetadata.options || !exposeMetadata.options.groups || !exposeMetadata.options.groups.length; + }); + } + } + if (this.options.excludePrefixes && this.options.excludePrefixes.length) { + keys = keys.filter((key) => this.options.excludePrefixes.every((prefix) => { + return key.substr(0, prefix.length) !== prefix; + })); + } + keys = keys.filter((key, index, self2) => { + return self2.indexOf(key) === index; + }); + return keys; + } + checkVersion(since, until) { + let decision = true; + if (decision && since) + decision = this.options.version >= since; + if (decision && until) + decision = this.options.version < until; + return decision; + } + checkGroups(groups) { + if (!groups) + return true; + return this.options.groups.some((optionGroup) => groups.includes(optionGroup)); + } + }; + exports2.TransformOperationExecutor = TransformOperationExecutor; + } +}); + +// node_modules/class-transformer/cjs/constants/default-options.constant.js +var require_default_options_constant = __commonJS({ + "node_modules/class-transformer/cjs/constants/default-options.constant.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defaultOptions = void 0; + exports2.defaultOptions = { + enableCircularCheck: false, + enableImplicitConversion: false, + excludeExtraneousValues: false, + excludePrefixes: void 0, + exposeDefaultValues: false, + exposeUnsetFields: true, + groups: void 0, + ignoreDecorators: false, + strategy: void 0, + targetMaps: void 0, + version: void 0 + }; + } +}); + +// node_modules/class-transformer/cjs/ClassTransformer.js +var require_ClassTransformer = __commonJS({ + "node_modules/class-transformer/cjs/ClassTransformer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ClassTransformer = void 0; + var TransformOperationExecutor_1 = require_TransformOperationExecutor(); + var enums_1 = require_enums2(); + var default_options_constant_1 = require_default_options_constant(); + var ClassTransformer = class { + static { + __name(this, "ClassTransformer"); + } + instanceToPlain(object, options) { + const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.CLASS_TO_PLAIN, { + ...default_options_constant_1.defaultOptions, + ...options + }); + return executor.transform(void 0, object, void 0, void 0, void 0, void 0); + } + classToPlainFromExist(object, plainObject, options) { + const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.CLASS_TO_PLAIN, { + ...default_options_constant_1.defaultOptions, + ...options + }); + return executor.transform(plainObject, object, void 0, void 0, void 0, void 0); + } + plainToInstance(cls, plain, options) { + const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.PLAIN_TO_CLASS, { + ...default_options_constant_1.defaultOptions, + ...options + }); + return executor.transform(void 0, plain, cls, void 0, void 0, void 0); + } + plainToClassFromExist(clsObject, plain, options) { + const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.PLAIN_TO_CLASS, { + ...default_options_constant_1.defaultOptions, + ...options + }); + return executor.transform(clsObject, plain, void 0, void 0, void 0, void 0); + } + instanceToInstance(object, options) { + const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.CLASS_TO_CLASS, { + ...default_options_constant_1.defaultOptions, + ...options + }); + return executor.transform(void 0, object, void 0, void 0, void 0, void 0); + } + classToClassFromExist(object, fromObject, options) { + const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.CLASS_TO_CLASS, { + ...default_options_constant_1.defaultOptions, + ...options + }); + return executor.transform(fromObject, object, void 0, void 0, void 0, void 0); + } + serialize(object, options) { + return JSON.stringify(this.instanceToPlain(object, options)); + } + /** + * Deserializes given JSON string to a object of the given class. + */ + deserialize(cls, json, options) { + const jsonObject = JSON.parse(json); + return this.plainToInstance(cls, jsonObject, options); + } + /** + * Deserializes given JSON string to an array of objects of the given class. + */ + deserializeArray(cls, json, options) { + const jsonObject = JSON.parse(json); + return this.plainToInstance(cls, jsonObject, options); + } + }; + exports2.ClassTransformer = ClassTransformer; + } +}); + +// node_modules/class-transformer/cjs/decorators/exclude.decorator.js +var require_exclude_decorator = __commonJS({ + "node_modules/class-transformer/cjs/decorators/exclude.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Exclude = void 0; + var storage_1 = require_storage(); + function Exclude(options = {}) { + return function(object, propertyName) { + storage_1.defaultMetadataStorage.addExcludeMetadata({ + target: object instanceof Function ? object : object.constructor, + propertyName, + options + }); + }; + } + __name(Exclude, "Exclude"); + exports2.Exclude = Exclude; + } +}); + +// node_modules/class-transformer/cjs/decorators/expose.decorator.js +var require_expose_decorator = __commonJS({ + "node_modules/class-transformer/cjs/decorators/expose.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Expose = void 0; + var storage_1 = require_storage(); + function Expose(options = {}) { + return function(object, propertyName) { + storage_1.defaultMetadataStorage.addExposeMetadata({ + target: object instanceof Function ? object : object.constructor, + propertyName, + options + }); + }; + } + __name(Expose, "Expose"); + exports2.Expose = Expose; + } +}); + +// node_modules/class-transformer/cjs/decorators/transform-instance-to-instance.decorator.js +var require_transform_instance_to_instance_decorator = __commonJS({ + "node_modules/class-transformer/cjs/decorators/transform-instance-to-instance.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TransformInstanceToInstance = void 0; + var ClassTransformer_1 = require_ClassTransformer(); + function TransformInstanceToInstance(params) { + return function(target, propertyKey, descriptor) { + const classTransformer = new ClassTransformer_1.ClassTransformer(); + const originalMethod = descriptor.value; + descriptor.value = function(...args) { + const result = originalMethod.apply(this, args); + const isPromise = !!result && (typeof result === "object" || typeof result === "function") && typeof result.then === "function"; + return isPromise ? result.then((data) => classTransformer.instanceToInstance(data, params)) : classTransformer.instanceToInstance(result, params); + }; + }; + } + __name(TransformInstanceToInstance, "TransformInstanceToInstance"); + exports2.TransformInstanceToInstance = TransformInstanceToInstance; + } +}); + +// node_modules/class-transformer/cjs/decorators/transform-instance-to-plain.decorator.js +var require_transform_instance_to_plain_decorator = __commonJS({ + "node_modules/class-transformer/cjs/decorators/transform-instance-to-plain.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TransformInstanceToPlain = void 0; + var ClassTransformer_1 = require_ClassTransformer(); + function TransformInstanceToPlain(params) { + return function(target, propertyKey, descriptor) { + const classTransformer = new ClassTransformer_1.ClassTransformer(); + const originalMethod = descriptor.value; + descriptor.value = function(...args) { + const result = originalMethod.apply(this, args); + const isPromise = !!result && (typeof result === "object" || typeof result === "function") && typeof result.then === "function"; + return isPromise ? result.then((data) => classTransformer.instanceToPlain(data, params)) : classTransformer.instanceToPlain(result, params); + }; + }; + } + __name(TransformInstanceToPlain, "TransformInstanceToPlain"); + exports2.TransformInstanceToPlain = TransformInstanceToPlain; + } +}); + +// node_modules/class-transformer/cjs/decorators/transform-plain-to-instance.decorator.js +var require_transform_plain_to_instance_decorator = __commonJS({ + "node_modules/class-transformer/cjs/decorators/transform-plain-to-instance.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TransformPlainToInstance = void 0; + var ClassTransformer_1 = require_ClassTransformer(); + function TransformPlainToInstance(classType, params) { + return function(target, propertyKey, descriptor) { + const classTransformer = new ClassTransformer_1.ClassTransformer(); + const originalMethod = descriptor.value; + descriptor.value = function(...args) { + const result = originalMethod.apply(this, args); + const isPromise = !!result && (typeof result === "object" || typeof result === "function") && typeof result.then === "function"; + return isPromise ? result.then((data) => classTransformer.plainToInstance(classType, data, params)) : classTransformer.plainToInstance(classType, result, params); + }; + }; + } + __name(TransformPlainToInstance, "TransformPlainToInstance"); + exports2.TransformPlainToInstance = TransformPlainToInstance; + } +}); + +// node_modules/class-transformer/cjs/decorators/transform.decorator.js +var require_transform_decorator = __commonJS({ + "node_modules/class-transformer/cjs/decorators/transform.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Transform = void 0; + var storage_1 = require_storage(); + function Transform(transformFn, options = {}) { + return function(target, propertyName) { + storage_1.defaultMetadataStorage.addTransformMetadata({ + target: target.constructor, + propertyName, + transformFn, + options + }); + }; + } + __name(Transform, "Transform"); + exports2.Transform = Transform; + } +}); + +// node_modules/class-transformer/cjs/decorators/type.decorator.js +var require_type_decorator = __commonJS({ + "node_modules/class-transformer/cjs/decorators/type.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Type = void 0; + var storage_1 = require_storage(); + function Type(typeFunction, options = {}) { + return function(target, propertyName) { + const reflectedType = Reflect.getMetadata("design:type", target, propertyName); + storage_1.defaultMetadataStorage.addTypeMetadata({ + target: target.constructor, + propertyName, + reflectedType, + typeFunction, + options + }); + }; + } + __name(Type, "Type"); + exports2.Type = Type; + } +}); + +// node_modules/class-transformer/cjs/decorators/index.js +var require_decorators3 = __commonJS({ + "node_modules/class-transformer/cjs/decorators/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_exclude_decorator(), exports2); + __exportStar2(require_expose_decorator(), exports2); + __exportStar2(require_transform_instance_to_instance_decorator(), exports2); + __exportStar2(require_transform_instance_to_plain_decorator(), exports2); + __exportStar2(require_transform_plain_to_instance_decorator(), exports2); + __exportStar2(require_transform_decorator(), exports2); + __exportStar2(require_type_decorator(), exports2); + } +}); + +// node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js +var require_expose_options_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js +var require_exclude_options_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js +var require_transform_options_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js +var require_type_discriminator_descriptor_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js +var require_type_options_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js +var require_exclude_metadata_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js +var require_expose_metadata_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js +var require_transform_metadata_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js +var require_transform_fn_params_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js +var require_type_metadata_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/class-constructor.type.js +var require_class_constructor_type = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/class-constructor.type.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js +var require_class_transformer_options_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/target-map.interface.js +var require_target_map_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/target-map.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js +var require_type_help_options_interface = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/class-transformer/cjs/interfaces/index.js +var require_interfaces3 = __commonJS({ + "node_modules/class-transformer/cjs/interfaces/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_expose_options_interface(), exports2); + __exportStar2(require_exclude_options_interface(), exports2); + __exportStar2(require_transform_options_interface(), exports2); + __exportStar2(require_type_discriminator_descriptor_interface(), exports2); + __exportStar2(require_type_options_interface(), exports2); + __exportStar2(require_exclude_metadata_interface(), exports2); + __exportStar2(require_expose_metadata_interface(), exports2); + __exportStar2(require_transform_metadata_interface(), exports2); + __exportStar2(require_transform_fn_params_interface(), exports2); + __exportStar2(require_type_metadata_interface(), exports2); + __exportStar2(require_class_constructor_type(), exports2); + __exportStar2(require_class_transformer_options_interface(), exports2); + __exportStar2(require_target_map_interface(), exports2); + __exportStar2(require_type_help_options_interface(), exports2); + } +}); + +// node_modules/class-transformer/cjs/index.js +var require_cjs2 = __commonJS({ + "node_modules/class-transformer/cjs/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.deserializeArray = exports2.deserialize = exports2.serialize = exports2.classToClassFromExist = exports2.instanceToInstance = exports2.plainToClassFromExist = exports2.plainToInstance = exports2.plainToClass = exports2.classToPlainFromExist = exports2.instanceToPlain = exports2.classToPlain = exports2.ClassTransformer = void 0; + var ClassTransformer_1 = require_ClassTransformer(); + var ClassTransformer_2 = require_ClassTransformer(); + Object.defineProperty(exports2, "ClassTransformer", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ClassTransformer_2.ClassTransformer; + }, "get") }); + __exportStar2(require_decorators3(), exports2); + __exportStar2(require_interfaces3(), exports2); + __exportStar2(require_enums2(), exports2); + var classTransformer = new ClassTransformer_1.ClassTransformer(); + function classToPlain(object, options) { + return classTransformer.instanceToPlain(object, options); + } + __name(classToPlain, "classToPlain"); + exports2.classToPlain = classToPlain; + function instanceToPlain(object, options) { + return classTransformer.instanceToPlain(object, options); + } + __name(instanceToPlain, "instanceToPlain"); + exports2.instanceToPlain = instanceToPlain; + function classToPlainFromExist(object, plainObject, options) { + return classTransformer.classToPlainFromExist(object, plainObject, options); + } + __name(classToPlainFromExist, "classToPlainFromExist"); + exports2.classToPlainFromExist = classToPlainFromExist; + function plainToClass(cls, plain, options) { + return classTransformer.plainToInstance(cls, plain, options); + } + __name(plainToClass, "plainToClass"); + exports2.plainToClass = plainToClass; + function plainToInstance(cls, plain, options) { + return classTransformer.plainToInstance(cls, plain, options); + } + __name(plainToInstance, "plainToInstance"); + exports2.plainToInstance = plainToInstance; + function plainToClassFromExist(clsObject, plain, options) { + return classTransformer.plainToClassFromExist(clsObject, plain, options); + } + __name(plainToClassFromExist, "plainToClassFromExist"); + exports2.plainToClassFromExist = plainToClassFromExist; + function instanceToInstance(object, options) { + return classTransformer.instanceToInstance(object, options); + } + __name(instanceToInstance, "instanceToInstance"); + exports2.instanceToInstance = instanceToInstance; + function classToClassFromExist(object, fromObject, options) { + return classTransformer.classToClassFromExist(object, fromObject, options); + } + __name(classToClassFromExist, "classToClassFromExist"); + exports2.classToClassFromExist = classToClassFromExist; + function serialize(object, options) { + return classTransformer.serialize(object, options); + } + __name(serialize, "serialize"); + exports2.serialize = serialize; + function deserialize(cls, json, options) { + return classTransformer.deserialize(cls, json, options); + } + __name(deserialize, "deserialize"); + exports2.deserialize = deserialize; + function deserializeArray(cls, json, options) { + return classTransformer.deserializeArray(cls, json, options); + } + __name(deserializeArray, "deserializeArray"); + exports2.deserializeArray = deserializeArray; + } +}); + +// node_modules/@nestjs/common/pipes/validation.pipe.js +var require_validation_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/validation.pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ValidationPipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var iterare_1 = require_lib(); + var util_1 = require("util"); + var decorators_1 = require_decorators(); + var core_12 = require_core(); + var http_status_enum_1 = require_http_status_enum(); + var http_error_by_code_util_1 = require_http_error_by_code_util(); + var load_package_util_1 = require_load_package_util(); + var shared_utils_1 = require_shared_utils(); + var classValidator = {}; + var classTransformer = {}; + var BUILT_IN_TYPES = [Date, RegExp, Error, Map, Set, WeakMap, WeakSet]; + var ValidationPipe = class ValidationPipe { + static { + __name(this, "ValidationPipe"); + } + constructor(options) { + options = options || {}; + const { transform, disableErrorMessages, errorHttpStatusCode, expectedType, transformOptions, validateCustomDecorators, ...validatorOptions } = options; + this.validatorOptions = { forbidUnknownValues: false, ...validatorOptions }; + this.isTransformEnabled = !!transform; + this.transformOptions = transformOptions; + this.isDetailedOutputDisabled = disableErrorMessages; + this.validateCustomDecorators = validateCustomDecorators || false; + this.errorHttpStatusCode = errorHttpStatusCode || http_status_enum_1.HttpStatus.BAD_REQUEST; + this.expectedType = expectedType; + this.exceptionFactory = options.exceptionFactory || this.createExceptionFactory(); + classValidator = this.loadValidator(options.validatorPackage); + classTransformer = this.loadTransformer(options.transformerPackage); + } + loadValidator(validatorPackage) { + return validatorPackage ?? (0, load_package_util_1.loadPackage)("class-validator", "ValidationPipe", () => require_cjs()); + } + loadTransformer(transformerPackage) { + return transformerPackage ?? (0, load_package_util_1.loadPackage)("class-transformer", "ValidationPipe", () => require_cjs2()); + } + async transform(value, metadata) { + if (this.expectedType) { + metadata = { ...metadata, metatype: this.expectedType }; + } + const metatype = metadata.metatype; + if (!metatype || !this.toValidate(metadata)) { + return this.isTransformEnabled ? this.transformPrimitive(value, metadata) : value; + } + const originalValue = value; + value = this.toEmptyIfNil(value, metatype); + const isNil = value !== originalValue; + const isPrimitive = this.isPrimitive(value); + this.stripProtoKeys(value); + let entity = classTransformer.plainToInstance(metatype, value, this.transformOptions); + const originalEntity = entity; + const isCtorNotEqual = entity.constructor !== metatype; + if (isCtorNotEqual && !isPrimitive) { + entity.constructor = metatype; + } else if (isCtorNotEqual) { + entity = { constructor: metatype }; + } + const errors = await this.validate(entity, this.validatorOptions); + if (errors.length > 0) { + throw await this.exceptionFactory(errors); + } + if (originalValue === void 0 && originalEntity === "") { + return originalValue; + } + if (isPrimitive) { + entity = originalEntity; + } + if (this.isTransformEnabled) { + return entity; + } + if (isNil) { + return originalValue; + } + const shouldTransformToPlain = Object.keys(this.validatorOptions).length > 1; + return shouldTransformToPlain ? classTransformer.classToPlain(entity, this.transformOptions) : value; + } + createExceptionFactory() { + return (validationErrors = []) => { + if (this.isDetailedOutputDisabled) { + return new http_error_by_code_util_1.HttpErrorByCode[this.errorHttpStatusCode](); + } + const errors = this.flattenValidationErrors(validationErrors); + return new http_error_by_code_util_1.HttpErrorByCode[this.errorHttpStatusCode](errors); + }; + } + toValidate(metadata) { + const { metatype, type } = metadata; + if (type === "custom" && !this.validateCustomDecorators) { + return false; + } + const types = [String, Boolean, Number, Array, Object, Buffer, Date]; + return !types.some((t) => metatype === t) && !(0, shared_utils_1.isNil)(metatype); + } + transformPrimitive(value, metadata) { + if (!metadata.data) { + return value; + } + const { type, metatype } = metadata; + if (type !== "param" && type !== "query") { + return value; + } + if (metatype === Boolean) { + if ((0, shared_utils_1.isUndefined)(value)) { + return void 0; + } + return value === true || value === "true"; + } + if (metatype === Number) { + if ((0, shared_utils_1.isUndefined)(value)) { + return void 0; + } + return +value; + } + if (metatype === String && !(0, shared_utils_1.isUndefined)(value)) { + return String(value); + } + return value; + } + toEmptyIfNil(value, metatype) { + if (!(0, shared_utils_1.isNil)(value)) { + return value; + } + if (typeof metatype === "function" || metatype && "prototype" in metatype && metatype.prototype?.constructor) { + return {}; + } + return ""; + } + stripProtoKeys(value) { + if (value == null || typeof value !== "object" || util_1.types.isTypedArray(value)) { + return; + } + if (BUILT_IN_TYPES.some((type) => value instanceof type)) { + return; + } + if (Array.isArray(value)) { + for (const v of value) { + this.stripProtoKeys(v); + } + return; + } + delete value.__proto__; + delete value.prototype; + const constructorType = value?.constructor; + if (constructorType && !BUILT_IN_TYPES.includes(constructorType)) { + delete value.constructor; + } + for (const key in value) { + this.stripProtoKeys(value[key]); + } + } + isPrimitive(value) { + return ["number", "boolean", "string"].includes(typeof value); + } + validate(object, validatorOptions) { + return classValidator.validate(object, validatorOptions); + } + flattenValidationErrors(validationErrors) { + return (0, iterare_1.iterate)(validationErrors).map((error) => this.mapChildrenToValidationErrors(error)).flatten().filter((item) => !!item.constraints).map((item) => Object.values(item.constraints)).flatten().toArray(); + } + mapChildrenToValidationErrors(error, parentPath) { + if (!(error.children && error.children.length)) { + return [error]; + } + const validationErrors = []; + parentPath = parentPath ? `${parentPath}.${error.property}` : error.property; + for (const item of error.children) { + if (item.children && item.children.length) { + validationErrors.push(...this.mapChildrenToValidationErrors(item, parentPath)); + } + validationErrors.push(this.prependConstraintsWithParentProp(parentPath, item)); + } + return validationErrors; + } + prependConstraintsWithParentProp(parentPath, error) { + const constraints = {}; + for (const key in error.constraints) { + constraints[key] = `${parentPath}.${error.constraints[key]}`; + } + return { + ...error, + constraints + }; + } + }; + exports2.ValidationPipe = ValidationPipe; + exports2.ValidationPipe = ValidationPipe = tslib_1.__decorate([ + (0, core_12.Injectable)(), + tslib_1.__param(0, (0, decorators_1.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object]) + ], ValidationPipe); + } +}); + +// node_modules/@nestjs/common/pipes/parse-array.pipe.js +var require_parse_array_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/parse-array.pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParseArrayPipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var injectable_decorator_1 = require_injectable_decorator(); + var optional_decorator_1 = require_optional_decorator(); + var http_status_enum_1 = require_http_status_enum(); + var http_error_by_code_util_1 = require_http_error_by_code_util(); + var shared_utils_1 = require_shared_utils(); + var validation_pipe_1 = require_validation_pipe(); + var VALIDATION_ERROR_MESSAGE = "Validation failed (parsable array expected)"; + var DEFAULT_ARRAY_SEPARATOR = ","; + var ParseArrayPipe = class ParseArrayPipe { + static { + __name(this, "ParseArrayPipe"); + } + constructor(options = {}) { + this.options = options; + this.validationPipe = new validation_pipe_1.ValidationPipe({ + transform: true, + validateCustomDecorators: true, + ...options + }); + const { exceptionFactory, errorHttpStatusCode = http_status_enum_1.HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new http_error_by_code_util_1.HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if (!value && !this.options.optional) { + throw this.exceptionFactory(VALIDATION_ERROR_MESSAGE); + } else if ((0, shared_utils_1.isNil)(value) && this.options.optional) { + return value; + } + if (!Array.isArray(value)) { + if (!(0, shared_utils_1.isString)(value)) { + throw this.exceptionFactory(VALIDATION_ERROR_MESSAGE); + } else { + try { + value = value.trim().split(this.options.separator || DEFAULT_ARRAY_SEPARATOR); + } catch { + throw this.exceptionFactory(VALIDATION_ERROR_MESSAGE); + } + } + } + if (this.options.items) { + const validationMetadata = { + metatype: this.options.items, + type: "query" + }; + const isExpectedTypePrimitive = this.isExpectedTypePrimitive(); + const toClassInstance = /* @__PURE__ */ __name((item, index) => { + if (this.options.items !== String) { + try { + item = JSON.parse(item); + } catch { + } + } + if (isExpectedTypePrimitive) { + return this.validatePrimitive(item, index); + } + return this.validationPipe.transform(item, validationMetadata); + }, "toClassInstance"); + if (this.options.stopAtFirstError === false) { + let errors = []; + const targetArray = value; + for (let i = 0; i < targetArray.length; i++) { + try { + targetArray[i] = await toClassInstance(targetArray[i]); + } catch (err) { + let message; + if (err.getResponse) { + const response = err.getResponse(); + if (Array.isArray(response.message)) { + message = response.message.map((item) => `[${i}] ${item}`); + } else { + message = `[${i}] ${response.message}`; + } + } else { + message = err; + } + errors = errors.concat(message); + } + } + if (errors.length > 0) { + throw this.exceptionFactory(errors); + } + return targetArray; + } else { + value = await Promise.all(value.map(toClassInstance)); + } + } + return value; + } + isExpectedTypePrimitive() { + return [Boolean, Number, String].includes(this.options.items); + } + validatePrimitive(originalValue, index) { + if (this.options.items === Number) { + const value = originalValue !== null && originalValue !== "" ? +originalValue : NaN; + if (isNaN(value)) { + throw this.exceptionFactory(`${(0, shared_utils_1.isUndefined)(index) ? "" : `[${index}] `}item must be a number`); + } + return value; + } else if (this.options.items === String) { + if (!(0, shared_utils_1.isString)(originalValue)) { + return `${originalValue}`; + } + } else if (this.options.items === Boolean) { + if (typeof originalValue !== "boolean") { + throw this.exceptionFactory(`${(0, shared_utils_1.isUndefined)(index) ? "" : `[${index}] `}item must be a boolean value`); + } + } + return originalValue; + } + }; + exports2.ParseArrayPipe = ParseArrayPipe; + exports2.ParseArrayPipe = ParseArrayPipe = tslib_1.__decorate([ + (0, injectable_decorator_1.Injectable)(), + tslib_1.__param(0, (0, optional_decorator_1.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object]) + ], ParseArrayPipe); + } +}); + +// node_modules/@nestjs/common/pipes/parse-bool.pipe.js +var require_parse_bool_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/parse-bool.pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParseBoolPipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var injectable_decorator_1 = require_injectable_decorator(); + var optional_decorator_1 = require_optional_decorator(); + var http_status_enum_1 = require_http_status_enum(); + var http_error_by_code_util_1 = require_http_error_by_code_util(); + var shared_utils_1 = require_shared_utils(); + var ParseBoolPipe = class ParseBoolPipe { + static { + __name(this, "ParseBoolPipe"); + } + constructor(options) { + this.options = options; + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = http_status_enum_1.HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new http_error_by_code_util_1.HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if ((0, shared_utils_1.isNil)(value) && this.options?.optional) { + return value; + } + if (this.isTrue(value)) { + return true; + } + if (this.isFalse(value)) { + return false; + } + throw this.exceptionFactory("Validation failed (boolean string is expected)"); + } + /** + * @param value currently processed route argument + * @returns `true` if `value` is said 'true', ie., if it is equal to the boolean + * `true` or the string `"true"` + */ + isTrue(value) { + return value === true || value === "true"; + } + /** + * @param value currently processed route argument + * @returns `true` if `value` is said 'false', ie., if it is equal to the boolean + * `false` or the string `"false"` + */ + isFalse(value) { + return value === false || value === "false"; + } + }; + exports2.ParseBoolPipe = ParseBoolPipe; + exports2.ParseBoolPipe = ParseBoolPipe = tslib_1.__decorate([ + (0, injectable_decorator_1.Injectable)(), + tslib_1.__param(0, (0, optional_decorator_1.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object]) + ], ParseBoolPipe); + } +}); + +// node_modules/@nestjs/common/pipes/parse-date.pipe.js +var require_parse_date_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/parse-date.pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParseDatePipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var injectable_decorator_1 = require_injectable_decorator(); + var http_status_enum_1 = require_http_status_enum(); + var http_error_by_code_util_1 = require_http_error_by_code_util(); + var shared_utils_1 = require_shared_utils(); + var ParseDatePipe = class ParseDatePipe { + static { + __name(this, "ParseDatePipe"); + } + constructor(options = {}) { + this.options = options; + const { exceptionFactory, errorHttpStatusCode = http_status_enum_1.HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new http_error_by_code_util_1.HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + transform(value) { + if (this.options.optional && (0, shared_utils_1.isNil)(value)) { + return this.options.default ? this.options.default() : value; + } + if ((0, shared_utils_1.isNil)(value) || value === "") { + throw this.exceptionFactory("Validation failed (no Date provided)"); + } + const transformedValue = new Date(value); + if (isNaN(transformedValue.getTime())) { + throw this.exceptionFactory("Validation failed (invalid date format)"); + } + return transformedValue; + } + }; + exports2.ParseDatePipe = ParseDatePipe; + exports2.ParseDatePipe = ParseDatePipe = tslib_1.__decorate([ + (0, injectable_decorator_1.Injectable)(), + tslib_1.__metadata("design:paramtypes", [Object]) + ], ParseDatePipe); + } +}); + +// node_modules/@nestjs/common/pipes/parse-enum.pipe.js +var require_parse_enum_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/parse-enum.pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParseEnumPipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var core_12 = require_core(); + var index_1 = require_common(); + var http_error_by_code_util_1 = require_http_error_by_code_util(); + var shared_utils_1 = require_shared_utils(); + var ParseEnumPipe = class ParseEnumPipe { + static { + __name(this, "ParseEnumPipe"); + } + constructor(enumType, options) { + this.enumType = enumType; + this.options = options; + if (!enumType) { + throw new Error(`"ParseEnumPipe" requires "enumType" argument specified (to validate input values).`); + } + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = index_1.HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new http_error_by_code_util_1.HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if ((0, shared_utils_1.isNil)(value) && this.options?.optional) { + return value; + } + if (!this.isEnum(value)) { + throw this.exceptionFactory("Validation failed (enum string is expected)"); + } + return value; + } + isEnum(value) { + const enumValues = Object.keys(this.enumType).map((item) => this.enumType[item]); + return enumValues.includes(value); + } + }; + exports2.ParseEnumPipe = ParseEnumPipe; + exports2.ParseEnumPipe = ParseEnumPipe = tslib_1.__decorate([ + (0, core_12.Injectable)(), + tslib_1.__param(1, (0, core_12.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object, Object]) + ], ParseEnumPipe); + } +}); + +// node_modules/@nestjs/common/pipes/parse-float.pipe.js +var require_parse_float_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/parse-float.pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParseFloatPipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var core_12 = require_core(); + var index_1 = require_common(); + var http_error_by_code_util_1 = require_http_error_by_code_util(); + var shared_utils_1 = require_shared_utils(); + var ParseFloatPipe = class ParseFloatPipe { + static { + __name(this, "ParseFloatPipe"); + } + constructor(options) { + this.options = options; + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = index_1.HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new http_error_by_code_util_1.HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if ((0, shared_utils_1.isNil)(value) && this.options?.optional) { + return value; + } + if (!this.isNumeric(value)) { + throw this.exceptionFactory("Validation failed (numeric string is expected)"); + } + return parseFloat(value); + } + /** + * @param value currently processed route argument + * @returns `true` if `value` is a valid float number + */ + isNumeric(value) { + return ["string", "number"].includes(typeof value) && !isNaN(parseFloat(value)) && isFinite(value); + } + }; + exports2.ParseFloatPipe = ParseFloatPipe; + exports2.ParseFloatPipe = ParseFloatPipe = tslib_1.__decorate([ + (0, core_12.Injectable)(), + tslib_1.__param(0, (0, core_12.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object]) + ], ParseFloatPipe); + } +}); + +// node_modules/@nestjs/common/pipes/parse-int.pipe.js +var require_parse_int_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/parse-int.pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParseIntPipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var injectable_decorator_1 = require_injectable_decorator(); + var optional_decorator_1 = require_optional_decorator(); + var http_status_enum_1 = require_http_status_enum(); + var http_error_by_code_util_1 = require_http_error_by_code_util(); + var shared_utils_1 = require_shared_utils(); + var ParseIntPipe = class ParseIntPipe { + static { + __name(this, "ParseIntPipe"); + } + constructor(options) { + this.options = options; + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = http_status_enum_1.HttpStatus.BAD_REQUEST } = options; + this.exceptionFactory = exceptionFactory || ((error) => new http_error_by_code_util_1.HttpErrorByCode[errorHttpStatusCode](error)); + } + /** + * Method that accesses and performs optional transformation on argument for + * in-flight requests. + * + * @param value currently processed route argument + * @param metadata contains metadata about the currently processed route argument + */ + async transform(value, metadata) { + if ((0, shared_utils_1.isNil)(value) && this.options?.optional) { + return value; + } + if (!this.isNumeric(value)) { + throw this.exceptionFactory("Validation failed (numeric string is expected)"); + } + return parseInt(value, 10); + } + /** + * @param value currently processed route argument + * @returns `true` if `value` is a valid integer number + */ + isNumeric(value) { + return ["string", "number"].includes(typeof value) && /^-?\d+$/.test(value) && isFinite(value); + } + }; + exports2.ParseIntPipe = ParseIntPipe; + exports2.ParseIntPipe = ParseIntPipe = tslib_1.__decorate([ + (0, injectable_decorator_1.Injectable)(), + tslib_1.__param(0, (0, optional_decorator_1.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object]) + ], ParseIntPipe); + } +}); + +// node_modules/@nestjs/common/pipes/parse-uuid.pipe.js +var require_parse_uuid_pipe = __commonJS({ + "node_modules/@nestjs/common/pipes/parse-uuid.pipe.js"(exports2) { + "use strict"; + var ParseUUIDPipe_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParseUUIDPipe = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var injectable_decorator_1 = require_injectable_decorator(); + var optional_decorator_1 = require_optional_decorator(); + var http_status_enum_1 = require_http_status_enum(); + var http_error_by_code_util_1 = require_http_error_by_code_util(); + var shared_utils_1 = require_shared_utils(); + var ParseUUIDPipe = ParseUUIDPipe_1 = class ParseUUIDPipe { + static { + __name(this, "ParseUUIDPipe"); + } + constructor(options) { + this.options = options; + options = options || {}; + const { exceptionFactory, errorHttpStatusCode = http_status_enum_1.HttpStatus.BAD_REQUEST, version } = options; + this.version = version; + this.exceptionFactory = exceptionFactory || ((error) => new http_error_by_code_util_1.HttpErrorByCode[errorHttpStatusCode](error)); + } + async transform(value, metadata) { + if ((0, shared_utils_1.isNil)(value) && this.options?.optional) { + return value; + } + if (!this.isUUID(value, this.version)) { + throw this.exceptionFactory(`Validation failed (uuid${this.version ? ` v ${this.version}` : ""} is expected)`); + } + return value; + } + isUUID(str, version = "all") { + if (!(0, shared_utils_1.isString)(str)) { + throw this.exceptionFactory("The value passed as UUID is not a string"); + } + const pattern = ParseUUIDPipe_1.uuidRegExps[version]; + return pattern?.test(str); + } + }; + exports2.ParseUUIDPipe = ParseUUIDPipe; + ParseUUIDPipe.uuidRegExps = { + 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i, + 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + 7: /^[0-9A-F]{8}-[0-9A-F]{4}-7[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, + all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i + }; + exports2.ParseUUIDPipe = ParseUUIDPipe = ParseUUIDPipe_1 = tslib_1.__decorate([ + (0, injectable_decorator_1.Injectable)(), + tslib_1.__param(0, (0, optional_decorator_1.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object]) + ], ParseUUIDPipe); + } +}); + +// node_modules/@nestjs/common/pipes/index.js +var require_pipes = __commonJS({ + "node_modules/@nestjs/common/pipes/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_default_value_pipe(), exports2); + tslib_1.__exportStar(require_file(), exports2); + tslib_1.__exportStar(require_parse_array_pipe(), exports2); + tslib_1.__exportStar(require_parse_bool_pipe(), exports2); + tslib_1.__exportStar(require_parse_date_pipe(), exports2); + tslib_1.__exportStar(require_parse_enum_pipe(), exports2); + tslib_1.__exportStar(require_parse_float_pipe(), exports2); + tslib_1.__exportStar(require_parse_int_pipe(), exports2); + tslib_1.__exportStar(require_parse_uuid_pipe(), exports2); + tslib_1.__exportStar(require_validation_pipe(), exports2); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isFunction.js +var require_isFunction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isFunction.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isFunction = void 0; + function isFunction(value) { + return typeof value === "function"; + } + __name(isFunction, "isFunction"); + exports2.isFunction = isFunction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/lift.js +var require_lift = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/lift.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.operate = exports2.hasLift = void 0; + var isFunction_1 = require_isFunction(); + function hasLift(source) { + return isFunction_1.isFunction(source === null || source === void 0 ? void 0 : source.lift); + } + __name(hasLift, "hasLift"); + exports2.hasLift = hasLift; + function operate(init) { + return function(source) { + if (hasLift(source)) { + return source.lift(function(liftedSource) { + try { + return init(liftedSource, this); + } catch (err) { + this.error(err); + } + }); + } + throw new TypeError("Unable to lift unknown Observable type"); + }; + } + __name(operate, "operate"); + exports2.operate = operate; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isArrayLike.js +var require_isArrayLike = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isArrayLike.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isArrayLike = void 0; + exports2.isArrayLike = (function(x) { + return x && typeof x.length === "number" && typeof x !== "function"; + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isPromise.js +var require_isPromise = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isPromise.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isPromise = void 0; + var isFunction_1 = require_isFunction(); + function isPromise(value) { + return isFunction_1.isFunction(value === null || value === void 0 ? void 0 : value.then); + } + __name(isPromise, "isPromise"); + exports2.isPromise = isPromise; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js +var require_createErrorClass = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createErrorClass = void 0; + function createErrorClass(createImpl) { + var _super = /* @__PURE__ */ __name(function(instance) { + Error.call(instance); + instance.stack = new Error().stack; + }, "_super"); + var ctorFunc = createImpl(_super); + ctorFunc.prototype = Object.create(Error.prototype); + ctorFunc.prototype.constructor = ctorFunc; + return ctorFunc; + } + __name(createErrorClass, "createErrorClass"); + exports2.createErrorClass = createErrorClass; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/UnsubscriptionError.js +var require_UnsubscriptionError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/UnsubscriptionError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnsubscriptionError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.UnsubscriptionError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function UnsubscriptionErrorImpl(errors) { + _super(this); + this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function(err, i) { + return i + 1 + ") " + err.toString(); + }).join("\n ") : ""; + this.name = "UnsubscriptionError"; + this.errors = errors; + }, "UnsubscriptionErrorImpl"); + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/arrRemove.js +var require_arrRemove = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/arrRemove.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.arrRemove = void 0; + function arrRemove(arr, item) { + if (arr) { + var index = arr.indexOf(item); + 0 <= index && arr.splice(index, 1); + } + } + __name(arrRemove, "arrRemove"); + exports2.arrRemove = arrRemove; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Subscription.js +var require_Subscription = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Subscription.js"(exports2) { + "use strict"; + var __values2 = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isSubscription = exports2.EMPTY_SUBSCRIPTION = exports2.Subscription = void 0; + var isFunction_1 = require_isFunction(); + var UnsubscriptionError_1 = require_UnsubscriptionError(); + var arrRemove_1 = require_arrRemove(); + var Subscription = (function() { + function Subscription2(initialTeardown) { + this.initialTeardown = initialTeardown; + this.closed = false; + this._parentage = null; + this._finalizers = null; + } + __name(Subscription2, "Subscription"); + Subscription2.prototype.unsubscribe = function() { + var e_1, _a, e_2, _b; + var errors; + if (!this.closed) { + this.closed = true; + var _parentage = this._parentage; + if (_parentage) { + this._parentage = null; + if (Array.isArray(_parentage)) { + try { + for (var _parentage_1 = __values2(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { + var parent_1 = _parentage_1_1.value; + parent_1.remove(this); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1); + } finally { + if (e_1) throw e_1.error; + } + } + } else { + _parentage.remove(this); + } + } + var initialFinalizer = this.initialTeardown; + if (isFunction_1.isFunction(initialFinalizer)) { + try { + initialFinalizer(); + } catch (e) { + errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? e.errors : [e]; + } + } + var _finalizers = this._finalizers; + if (_finalizers) { + this._finalizers = null; + try { + for (var _finalizers_1 = __values2(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { + var finalizer = _finalizers_1_1.value; + try { + execFinalizer(finalizer); + } catch (err) { + errors = errors !== null && errors !== void 0 ? errors : []; + if (err instanceof UnsubscriptionError_1.UnsubscriptionError) { + errors = __spreadArray2(__spreadArray2([], __read2(errors)), __read2(err.errors)); + } else { + errors.push(err); + } + } + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); + } finally { + if (e_2) throw e_2.error; + } + } + } + if (errors) { + throw new UnsubscriptionError_1.UnsubscriptionError(errors); + } + } + }; + Subscription2.prototype.add = function(teardown) { + var _a; + if (teardown && teardown !== this) { + if (this.closed) { + execFinalizer(teardown); + } else { + if (teardown instanceof Subscription2) { + if (teardown.closed || teardown._hasParent(this)) { + return; + } + teardown._addParent(this); + } + (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); + } + } + }; + Subscription2.prototype._hasParent = function(parent) { + var _parentage = this._parentage; + return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent); + }; + Subscription2.prototype._addParent = function(parent) { + var _parentage = this._parentage; + this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; + }; + Subscription2.prototype._removeParent = function(parent) { + var _parentage = this._parentage; + if (_parentage === parent) { + this._parentage = null; + } else if (Array.isArray(_parentage)) { + arrRemove_1.arrRemove(_parentage, parent); + } + }; + Subscription2.prototype.remove = function(teardown) { + var _finalizers = this._finalizers; + _finalizers && arrRemove_1.arrRemove(_finalizers, teardown); + if (teardown instanceof Subscription2) { + teardown._removeParent(this); + } + }; + Subscription2.EMPTY = (function() { + var empty2 = new Subscription2(); + empty2.closed = true; + return empty2; + })(); + return Subscription2; + })(); + exports2.Subscription = Subscription; + exports2.EMPTY_SUBSCRIPTION = Subscription.EMPTY; + function isSubscription(value) { + return value instanceof Subscription || value && "closed" in value && isFunction_1.isFunction(value.remove) && isFunction_1.isFunction(value.add) && isFunction_1.isFunction(value.unsubscribe); + } + __name(isSubscription, "isSubscription"); + exports2.isSubscription = isSubscription; + function execFinalizer(finalizer) { + if (isFunction_1.isFunction(finalizer)) { + finalizer(); + } else { + finalizer.unsubscribe(); + } + } + __name(execFinalizer, "execFinalizer"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/config.js +var require_config = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/config.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.config = void 0; + exports2.config = { + onUnhandledError: null, + onStoppedNotification: null, + Promise: void 0, + useDeprecatedSynchronousErrorHandling: false, + useDeprecatedNextContext: false + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/timeoutProvider.js +var require_timeoutProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/timeoutProvider.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timeoutProvider = void 0; + exports2.timeoutProvider = { + setTimeout: /* @__PURE__ */ __name(function(handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var delegate = exports2.timeoutProvider.delegate; + if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) { + return delegate.setTimeout.apply(delegate, __spreadArray2([handler, timeout], __read2(args))); + } + return setTimeout.apply(void 0, __spreadArray2([handler, timeout], __read2(args))); + }, "setTimeout"), + clearTimeout: /* @__PURE__ */ __name(function(handle) { + var delegate = exports2.timeoutProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle); + }, "clearTimeout"), + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/reportUnhandledError.js +var require_reportUnhandledError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/reportUnhandledError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.reportUnhandledError = void 0; + var config_1 = require_config(); + var timeoutProvider_1 = require_timeoutProvider(); + function reportUnhandledError(err) { + timeoutProvider_1.timeoutProvider.setTimeout(function() { + var onUnhandledError = config_1.config.onUnhandledError; + if (onUnhandledError) { + onUnhandledError(err); + } else { + throw err; + } + }); + } + __name(reportUnhandledError, "reportUnhandledError"); + exports2.reportUnhandledError = reportUnhandledError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/noop.js +var require_noop = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/noop.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.noop = void 0; + function noop() { + } + __name(noop, "noop"); + exports2.noop = noop; + } +}); + +// node_modules/rxjs/dist/cjs/internal/NotificationFactories.js +var require_NotificationFactories = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/NotificationFactories.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createNotification = exports2.nextNotification = exports2.errorNotification = exports2.COMPLETE_NOTIFICATION = void 0; + exports2.COMPLETE_NOTIFICATION = (function() { + return createNotification("C", void 0, void 0); + })(); + function errorNotification(error) { + return createNotification("E", void 0, error); + } + __name(errorNotification, "errorNotification"); + exports2.errorNotification = errorNotification; + function nextNotification(value) { + return createNotification("N", value, void 0); + } + __name(nextNotification, "nextNotification"); + exports2.nextNotification = nextNotification; + function createNotification(kind, value, error) { + return { + kind, + value, + error + }; + } + __name(createNotification, "createNotification"); + exports2.createNotification = createNotification; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/errorContext.js +var require_errorContext = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/errorContext.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.captureError = exports2.errorContext = void 0; + var config_1 = require_config(); + var context = null; + function errorContext(cb) { + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + var isRoot = !context; + if (isRoot) { + context = { errorThrown: false, error: null }; + } + cb(); + if (isRoot) { + var _a = context, errorThrown = _a.errorThrown, error = _a.error; + context = null; + if (errorThrown) { + throw error; + } + } + } else { + cb(); + } + } + __name(errorContext, "errorContext"); + exports2.errorContext = errorContext; + function captureError(err) { + if (config_1.config.useDeprecatedSynchronousErrorHandling && context) { + context.errorThrown = true; + context.error = err; + } + } + __name(captureError, "captureError"); + exports2.captureError = captureError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Subscriber.js +var require_Subscriber = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Subscriber.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.EMPTY_OBSERVER = exports2.SafeSubscriber = exports2.Subscriber = void 0; + var isFunction_1 = require_isFunction(); + var Subscription_1 = require_Subscription(); + var config_1 = require_config(); + var reportUnhandledError_1 = require_reportUnhandledError(); + var noop_1 = require_noop(); + var NotificationFactories_1 = require_NotificationFactories(); + var timeoutProvider_1 = require_timeoutProvider(); + var errorContext_1 = require_errorContext(); + var Subscriber = (function(_super) { + __extends2(Subscriber2, _super); + function Subscriber2(destination) { + var _this = _super.call(this) || this; + _this.isStopped = false; + if (destination) { + _this.destination = destination; + if (Subscription_1.isSubscription(destination)) { + destination.add(_this); + } + } else { + _this.destination = exports2.EMPTY_OBSERVER; + } + return _this; + } + __name(Subscriber2, "Subscriber"); + Subscriber2.create = function(next, error, complete) { + return new SafeSubscriber(next, error, complete); + }; + Subscriber2.prototype.next = function(value) { + if (this.isStopped) { + handleStoppedNotification(NotificationFactories_1.nextNotification(value), this); + } else { + this._next(value); + } + }; + Subscriber2.prototype.error = function(err) { + if (this.isStopped) { + handleStoppedNotification(NotificationFactories_1.errorNotification(err), this); + } else { + this.isStopped = true; + this._error(err); + } + }; + Subscriber2.prototype.complete = function() { + if (this.isStopped) { + handleStoppedNotification(NotificationFactories_1.COMPLETE_NOTIFICATION, this); + } else { + this.isStopped = true; + this._complete(); + } + }; + Subscriber2.prototype.unsubscribe = function() { + if (!this.closed) { + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + this.destination = null; + } + }; + Subscriber2.prototype._next = function(value) { + this.destination.next(value); + }; + Subscriber2.prototype._error = function(err) { + try { + this.destination.error(err); + } finally { + this.unsubscribe(); + } + }; + Subscriber2.prototype._complete = function() { + try { + this.destination.complete(); + } finally { + this.unsubscribe(); + } + }; + return Subscriber2; + })(Subscription_1.Subscription); + exports2.Subscriber = Subscriber; + var _bind = Function.prototype.bind; + function bind(fn, thisArg) { + return _bind.call(fn, thisArg); + } + __name(bind, "bind"); + var ConsumerObserver = (function() { + function ConsumerObserver2(partialObserver) { + this.partialObserver = partialObserver; + } + __name(ConsumerObserver2, "ConsumerObserver"); + ConsumerObserver2.prototype.next = function(value) { + var partialObserver = this.partialObserver; + if (partialObserver.next) { + try { + partialObserver.next(value); + } catch (error) { + handleUnhandledError(error); + } + } + }; + ConsumerObserver2.prototype.error = function(err) { + var partialObserver = this.partialObserver; + if (partialObserver.error) { + try { + partialObserver.error(err); + } catch (error) { + handleUnhandledError(error); + } + } else { + handleUnhandledError(err); + } + }; + ConsumerObserver2.prototype.complete = function() { + var partialObserver = this.partialObserver; + if (partialObserver.complete) { + try { + partialObserver.complete(); + } catch (error) { + handleUnhandledError(error); + } + } + }; + return ConsumerObserver2; + })(); + var SafeSubscriber = (function(_super) { + __extends2(SafeSubscriber2, _super); + function SafeSubscriber2(observerOrNext, error, complete) { + var _this = _super.call(this) || this; + var partialObserver; + if (isFunction_1.isFunction(observerOrNext) || !observerOrNext) { + partialObserver = { + next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : void 0, + error: error !== null && error !== void 0 ? error : void 0, + complete: complete !== null && complete !== void 0 ? complete : void 0 + }; + } else { + var context_1; + if (_this && config_1.config.useDeprecatedNextContext) { + context_1 = Object.create(observerOrNext); + context_1.unsubscribe = function() { + return _this.unsubscribe(); + }; + partialObserver = { + next: observerOrNext.next && bind(observerOrNext.next, context_1), + error: observerOrNext.error && bind(observerOrNext.error, context_1), + complete: observerOrNext.complete && bind(observerOrNext.complete, context_1) + }; + } else { + partialObserver = observerOrNext; + } + } + _this.destination = new ConsumerObserver(partialObserver); + return _this; + } + __name(SafeSubscriber2, "SafeSubscriber"); + return SafeSubscriber2; + })(Subscriber); + exports2.SafeSubscriber = SafeSubscriber; + function handleUnhandledError(error) { + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + errorContext_1.captureError(error); + } else { + reportUnhandledError_1.reportUnhandledError(error); + } + } + __name(handleUnhandledError, "handleUnhandledError"); + function defaultErrorHandler(err) { + throw err; + } + __name(defaultErrorHandler, "defaultErrorHandler"); + function handleStoppedNotification(notification, subscriber) { + var onStoppedNotification = config_1.config.onStoppedNotification; + onStoppedNotification && timeoutProvider_1.timeoutProvider.setTimeout(function() { + return onStoppedNotification(notification, subscriber); + }); + } + __name(handleStoppedNotification, "handleStoppedNotification"); + exports2.EMPTY_OBSERVER = { + closed: true, + next: noop_1.noop, + error: defaultErrorHandler, + complete: noop_1.noop + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/symbol/observable.js +var require_observable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/symbol/observable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.observable = void 0; + exports2.observable = (function() { + return typeof Symbol === "function" && Symbol.observable || "@@observable"; + })(); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/identity.js +var require_identity = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/identity.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.identity = void 0; + function identity(x) { + return x; + } + __name(identity, "identity"); + exports2.identity = identity; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/pipe.js +var require_pipe = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/pipe.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.pipeFromArray = exports2.pipe = void 0; + var identity_1 = require_identity(); + function pipe() { + var fns = []; + for (var _i = 0; _i < arguments.length; _i++) { + fns[_i] = arguments[_i]; + } + return pipeFromArray(fns); + } + __name(pipe, "pipe"); + exports2.pipe = pipe; + function pipeFromArray(fns) { + if (fns.length === 0) { + return identity_1.identity; + } + if (fns.length === 1) { + return fns[0]; + } + return /* @__PURE__ */ __name(function piped(input) { + return fns.reduce(function(prev, fn) { + return fn(prev); + }, input); + }, "piped"); + } + __name(pipeFromArray, "pipeFromArray"); + exports2.pipeFromArray = pipeFromArray; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Observable.js +var require_Observable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Observable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Observable = void 0; + var Subscriber_1 = require_Subscriber(); + var Subscription_1 = require_Subscription(); + var observable_1 = require_observable(); + var pipe_1 = require_pipe(); + var config_1 = require_config(); + var isFunction_1 = require_isFunction(); + var errorContext_1 = require_errorContext(); + var Observable = (function() { + function Observable2(subscribe) { + if (subscribe) { + this._subscribe = subscribe; + } + } + __name(Observable2, "Observable"); + Observable2.prototype.lift = function(operator) { + var observable = new Observable2(); + observable.source = this; + observable.operator = operator; + return observable; + }; + Observable2.prototype.subscribe = function(observerOrNext, error, complete) { + var _this = this; + var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new Subscriber_1.SafeSubscriber(observerOrNext, error, complete); + errorContext_1.errorContext(function() { + var _a = _this, operator = _a.operator, source = _a.source; + subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); + }); + return subscriber; + }; + Observable2.prototype._trySubscribe = function(sink) { + try { + return this._subscribe(sink); + } catch (err) { + sink.error(err); + } + }; + Observable2.prototype.forEach = function(next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var subscriber = new Subscriber_1.SafeSubscriber({ + next: /* @__PURE__ */ __name(function(value) { + try { + next(value); + } catch (err) { + reject(err); + subscriber.unsubscribe(); + } + }, "next"), + error: reject, + complete: resolve + }); + _this.subscribe(subscriber); + }); + }; + Observable2.prototype._subscribe = function(subscriber) { + var _a; + return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); + }; + Observable2.prototype[observable_1.observable] = function() { + return this; + }; + Observable2.prototype.pipe = function() { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + return pipe_1.pipeFromArray(operations)(this); + }; + Observable2.prototype.toPromise = function(promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function(resolve, reject) { + var value; + _this.subscribe(function(x) { + return value = x; + }, function(err) { + return reject(err); + }, function() { + return resolve(value); + }); + }); + }; + Observable2.create = function(subscribe) { + return new Observable2(subscribe); + }; + return Observable2; + })(); + exports2.Observable = Observable; + function getPromiseCtor(promiseCtor) { + var _a; + return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config_1.config.Promise) !== null && _a !== void 0 ? _a : Promise; + } + __name(getPromiseCtor, "getPromiseCtor"); + function isObserver(value) { + return value && isFunction_1.isFunction(value.next) && isFunction_1.isFunction(value.error) && isFunction_1.isFunction(value.complete); + } + __name(isObserver, "isObserver"); + function isSubscriber(value) { + return value && value instanceof Subscriber_1.Subscriber || isObserver(value) && Subscription_1.isSubscription(value); + } + __name(isSubscriber, "isSubscriber"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isInteropObservable.js +var require_isInteropObservable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isInteropObservable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isInteropObservable = void 0; + var observable_1 = require_observable(); + var isFunction_1 = require_isFunction(); + function isInteropObservable(input) { + return isFunction_1.isFunction(input[observable_1.observable]); + } + __name(isInteropObservable, "isInteropObservable"); + exports2.isInteropObservable = isInteropObservable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isAsyncIterable.js +var require_isAsyncIterable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isAsyncIterable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isAsyncIterable = void 0; + var isFunction_1 = require_isFunction(); + function isAsyncIterable(obj) { + return Symbol.asyncIterator && isFunction_1.isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]); + } + __name(isAsyncIterable, "isAsyncIterable"); + exports2.isAsyncIterable = isAsyncIterable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/throwUnobservableError.js +var require_throwUnobservableError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/throwUnobservableError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createInvalidObservableTypeError = void 0; + function createInvalidObservableTypeError(input) { + return new TypeError("You provided " + (input !== null && typeof input === "object" ? "an invalid object" : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable."); + } + __name(createInvalidObservableTypeError, "createInvalidObservableTypeError"); + exports2.createInvalidObservableTypeError = createInvalidObservableTypeError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/symbol/iterator.js +var require_iterator = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/symbol/iterator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.iterator = exports2.getSymbolIterator = void 0; + function getSymbolIterator() { + if (typeof Symbol !== "function" || !Symbol.iterator) { + return "@@iterator"; + } + return Symbol.iterator; + } + __name(getSymbolIterator, "getSymbolIterator"); + exports2.getSymbolIterator = getSymbolIterator; + exports2.iterator = getSymbolIterator(); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isIterable.js +var require_isIterable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isIterable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isIterable = void 0; + var iterator_1 = require_iterator(); + var isFunction_1 = require_isFunction(); + function isIterable(input) { + return isFunction_1.isFunction(input === null || input === void 0 ? void 0 : input[iterator_1.iterator]); + } + __name(isIterable, "isIterable"); + exports2.isIterable = isIterable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isReadableStreamLike.js +var require_isReadableStreamLike = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isReadableStreamLike.js"(exports2) { + "use strict"; + var __generator2 = exports2 && exports2.__generator || function(thisArg, body) { + var _ = { label: 0, sent: /* @__PURE__ */ __name(function() { + if (t[0] & 1) throw t[1]; + return t[1]; + }, "sent"), trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + __name(verb, "verb"); + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + __name(step, "step"); + }; + var __await2 = exports2 && exports2.__await || function(v) { + return this instanceof __await2 ? (this.v = v, this) : new __await2(v); + }; + var __asyncGenerator2 = exports2 && exports2.__asyncGenerator || function(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i; + function verb(n) { + if (g[n]) i[n] = function(v) { + return new Promise(function(a, b) { + q.push([n, v, a, b]) > 1 || resume(n, v); + }); + }; + } + __name(verb, "verb"); + function resume(n, v) { + try { + step(g[n](v)); + } catch (e) { + settle(q[0][3], e); + } + } + __name(resume, "resume"); + function step(r) { + r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); + } + __name(step, "step"); + function fulfill(value) { + resume("next", value); + } + __name(fulfill, "fulfill"); + function reject(value) { + resume("throw", value); + } + __name(reject, "reject"); + function settle(f, v) { + if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); + } + __name(settle, "settle"); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isReadableStreamLike = exports2.readableStreamLikeToAsyncGenerator = void 0; + var isFunction_1 = require_isFunction(); + function readableStreamLikeToAsyncGenerator(readableStream) { + return __asyncGenerator2(this, arguments, /* @__PURE__ */ __name(function readableStreamLikeToAsyncGenerator_1() { + var reader, _a, value, done; + return __generator2(this, function(_b) { + switch (_b.label) { + case 0: + reader = readableStream.getReader(); + _b.label = 1; + case 1: + _b.trys.push([1, , 9, 10]); + _b.label = 2; + case 2: + if (false) return [3, 8]; + return [4, __await2(reader.read())]; + case 3: + _a = _b.sent(), value = _a.value, done = _a.done; + if (!done) return [3, 5]; + return [4, __await2(void 0)]; + case 4: + return [2, _b.sent()]; + case 5: + return [4, __await2(value)]; + case 6: + return [4, _b.sent()]; + case 7: + _b.sent(); + return [3, 2]; + case 8: + return [3, 10]; + case 9: + reader.releaseLock(); + return [7]; + case 10: + return [2]; + } + }); + }, "readableStreamLikeToAsyncGenerator_1")); + } + __name(readableStreamLikeToAsyncGenerator, "readableStreamLikeToAsyncGenerator"); + exports2.readableStreamLikeToAsyncGenerator = readableStreamLikeToAsyncGenerator; + function isReadableStreamLike(obj) { + return isFunction_1.isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader); + } + __name(isReadableStreamLike, "isReadableStreamLike"); + exports2.isReadableStreamLike = isReadableStreamLike; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/innerFrom.js +var require_innerFrom = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/innerFrom.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + __name(adopt, "adopt"); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + __name(fulfilled, "fulfilled"); + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + __name(rejected, "rejected"); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + __name(step, "step"); + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __generator2 = exports2 && exports2.__generator || function(thisArg, body) { + var _ = { label: 0, sent: /* @__PURE__ */ __name(function() { + if (t[0] & 1) throw t[1]; + return t[1]; + }, "sent"), trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + __name(verb, "verb"); + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + __name(step, "step"); + }; + var __asyncValues2 = exports2 && exports2.__asyncValues || function(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values2 === "function" ? __values2(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i); + function verb(n) { + i[n] = o[n] && function(v) { + return new Promise(function(resolve, reject) { + v = o[n](v), settle(resolve, reject, v.done, v.value); + }); + }; + } + __name(verb, "verb"); + function settle(resolve, reject, d, v) { + Promise.resolve(v).then(function(v2) { + resolve({ value: v2, done: d }); + }, reject); + } + __name(settle, "settle"); + }; + var __values2 = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromReadableStreamLike = exports2.fromAsyncIterable = exports2.fromIterable = exports2.fromPromise = exports2.fromArrayLike = exports2.fromInteropObservable = exports2.innerFrom = void 0; + var isArrayLike_1 = require_isArrayLike(); + var isPromise_1 = require_isPromise(); + var Observable_1 = require_Observable(); + var isInteropObservable_1 = require_isInteropObservable(); + var isAsyncIterable_1 = require_isAsyncIterable(); + var throwUnobservableError_1 = require_throwUnobservableError(); + var isIterable_1 = require_isIterable(); + var isReadableStreamLike_1 = require_isReadableStreamLike(); + var isFunction_1 = require_isFunction(); + var reportUnhandledError_1 = require_reportUnhandledError(); + var observable_1 = require_observable(); + function innerFrom(input) { + if (input instanceof Observable_1.Observable) { + return input; + } + if (input != null) { + if (isInteropObservable_1.isInteropObservable(input)) { + return fromInteropObservable(input); + } + if (isArrayLike_1.isArrayLike(input)) { + return fromArrayLike(input); + } + if (isPromise_1.isPromise(input)) { + return fromPromise(input); + } + if (isAsyncIterable_1.isAsyncIterable(input)) { + return fromAsyncIterable(input); + } + if (isIterable_1.isIterable(input)) { + return fromIterable(input); + } + if (isReadableStreamLike_1.isReadableStreamLike(input)) { + return fromReadableStreamLike(input); + } + } + throw throwUnobservableError_1.createInvalidObservableTypeError(input); + } + __name(innerFrom, "innerFrom"); + exports2.innerFrom = innerFrom; + function fromInteropObservable(obj) { + return new Observable_1.Observable(function(subscriber) { + var obs = obj[observable_1.observable](); + if (isFunction_1.isFunction(obs.subscribe)) { + return obs.subscribe(subscriber); + } + throw new TypeError("Provided object does not correctly implement Symbol.observable"); + }); + } + __name(fromInteropObservable, "fromInteropObservable"); + exports2.fromInteropObservable = fromInteropObservable; + function fromArrayLike(array) { + return new Observable_1.Observable(function(subscriber) { + for (var i = 0; i < array.length && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); + }); + } + __name(fromArrayLike, "fromArrayLike"); + exports2.fromArrayLike = fromArrayLike; + function fromPromise(promise) { + return new Observable_1.Observable(function(subscriber) { + promise.then(function(value) { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, function(err) { + return subscriber.error(err); + }).then(null, reportUnhandledError_1.reportUnhandledError); + }); + } + __name(fromPromise, "fromPromise"); + exports2.fromPromise = fromPromise; + function fromIterable(iterable) { + return new Observable_1.Observable(function(subscriber) { + var e_1, _a; + try { + for (var iterable_1 = __values2(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) { + var value = iterable_1_1.value; + subscriber.next(value); + if (subscriber.closed) { + return; + } + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1); + } finally { + if (e_1) throw e_1.error; + } + } + subscriber.complete(); + }); + } + __name(fromIterable, "fromIterable"); + exports2.fromIterable = fromIterable; + function fromAsyncIterable(asyncIterable) { + return new Observable_1.Observable(function(subscriber) { + process2(asyncIterable, subscriber).catch(function(err) { + return subscriber.error(err); + }); + }); + } + __name(fromAsyncIterable, "fromAsyncIterable"); + exports2.fromAsyncIterable = fromAsyncIterable; + function fromReadableStreamLike(readableStream) { + return fromAsyncIterable(isReadableStreamLike_1.readableStreamLikeToAsyncGenerator(readableStream)); + } + __name(fromReadableStreamLike, "fromReadableStreamLike"); + exports2.fromReadableStreamLike = fromReadableStreamLike; + function process2(asyncIterable, subscriber) { + var asyncIterable_1, asyncIterable_1_1; + var e_2, _a; + return __awaiter2(this, void 0, void 0, function() { + var value, e_2_1; + return __generator2(this, function(_b) { + switch (_b.label) { + case 0: + _b.trys.push([0, 5, 6, 11]); + asyncIterable_1 = __asyncValues2(asyncIterable); + _b.label = 1; + case 1: + return [4, asyncIterable_1.next()]; + case 2: + if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4]; + value = asyncIterable_1_1.value; + subscriber.next(value); + if (subscriber.closed) { + return [2]; + } + _b.label = 3; + case 3: + return [3, 1]; + case 4: + return [3, 11]; + case 5: + e_2_1 = _b.sent(); + e_2 = { error: e_2_1 }; + return [3, 11]; + case 6: + _b.trys.push([6, , 9, 10]); + if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8]; + return [4, _a.call(asyncIterable_1)]; + case 7: + _b.sent(); + _b.label = 8; + case 8: + return [3, 10]; + case 9: + if (e_2) throw e_2.error; + return [7]; + case 10: + return [7]; + case 11: + subscriber.complete(); + return [2]; + } + }); + }); + } + __name(process2, "process"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js +var require_OperatorSubscriber = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.OperatorSubscriber = exports2.createOperatorSubscriber = void 0; + var Subscriber_1 = require_Subscriber(); + function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { + return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); + } + __name(createOperatorSubscriber, "createOperatorSubscriber"); + exports2.createOperatorSubscriber = createOperatorSubscriber; + var OperatorSubscriber = (function(_super) { + __extends2(OperatorSubscriber2, _super); + function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { + var _this = _super.call(this, destination) || this; + _this.onFinalize = onFinalize; + _this.shouldUnsubscribe = shouldUnsubscribe; + _this._next = onNext ? function(value) { + try { + onNext(value); + } catch (err) { + destination.error(err); + } + } : _super.prototype._next; + _this._error = onError ? function(err) { + try { + onError(err); + } catch (err2) { + destination.error(err2); + } finally { + this.unsubscribe(); + } + } : _super.prototype._error; + _this._complete = onComplete ? function() { + try { + onComplete(); + } catch (err) { + destination.error(err); + } finally { + this.unsubscribe(); + } + } : _super.prototype._complete; + return _this; + } + __name(OperatorSubscriber2, "OperatorSubscriber"); + OperatorSubscriber2.prototype.unsubscribe = function() { + var _a; + if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { + var closed_1 = this.closed; + _super.prototype.unsubscribe.call(this); + !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); + } + }; + return OperatorSubscriber2; + })(Subscriber_1.Subscriber); + exports2.OperatorSubscriber = OperatorSubscriber; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/audit.js +var require_audit = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/audit.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.audit = void 0; + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function audit(durationSelector) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var lastValue = null; + var durationSubscriber = null; + var isComplete = false; + var endDuration = /* @__PURE__ */ __name(function() { + durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); + durationSubscriber = null; + if (hasValue) { + hasValue = false; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + isComplete && subscriber.complete(); + }, "endDuration"); + var cleanupDuration = /* @__PURE__ */ __name(function() { + durationSubscriber = null; + isComplete && subscriber.complete(); + }, "cleanupDuration"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + lastValue = value; + if (!durationSubscriber) { + innerFrom_1.innerFrom(durationSelector(value)).subscribe(durationSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, endDuration, cleanupDuration)); + } + }, function() { + isComplete = true; + (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete(); + })); + }); + } + __name(audit, "audit"); + exports2.audit = audit; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/Action.js +var require_Action = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/Action.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Action = void 0; + var Subscription_1 = require_Subscription(); + var Action = (function(_super) { + __extends2(Action2, _super); + function Action2(scheduler2, work) { + return _super.call(this) || this; + } + __name(Action2, "Action"); + Action2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + return this; + }; + return Action2; + })(Subscription_1.Subscription); + exports2.Action = Action; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/intervalProvider.js +var require_intervalProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/intervalProvider.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.intervalProvider = void 0; + exports2.intervalProvider = { + setInterval: /* @__PURE__ */ __name(function(handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var delegate = exports2.intervalProvider.delegate; + if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) { + return delegate.setInterval.apply(delegate, __spreadArray2([handler, timeout], __read2(args))); + } + return setInterval.apply(void 0, __spreadArray2([handler, timeout], __read2(args))); + }, "setInterval"), + clearInterval: /* @__PURE__ */ __name(function(handle) { + var delegate = exports2.intervalProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle); + }, "clearInterval"), + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js +var require_AsyncAction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsyncAction = void 0; + var Action_1 = require_Action(); + var intervalProvider_1 = require_intervalProvider(); + var arrRemove_1 = require_arrRemove(); + var AsyncAction = (function(_super) { + __extends2(AsyncAction2, _super); + function AsyncAction2(scheduler2, work) { + var _this = _super.call(this, scheduler2, work) || this; + _this.scheduler = scheduler2; + _this.work = work; + _this.pending = false; + return _this; + } + __name(AsyncAction2, "AsyncAction"); + AsyncAction2.prototype.schedule = function(state, delay) { + var _a; + if (delay === void 0) { + delay = 0; + } + if (this.closed) { + return this; + } + this.state = state; + var id = this.id; + var scheduler2 = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler2, id, delay); + } + this.pending = true; + this.delay = delay; + this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler2, this.id, delay); + return this; + }; + AsyncAction2.prototype.requestAsyncId = function(scheduler2, _id, delay) { + if (delay === void 0) { + delay = 0; + } + return intervalProvider_1.intervalProvider.setInterval(scheduler2.flush.bind(scheduler2, this), delay); + }; + AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay != null && this.delay === delay && this.pending === false) { + return id; + } + if (id != null) { + intervalProvider_1.intervalProvider.clearInterval(id); + } + return void 0; + }; + AsyncAction2.prototype.execute = function(state, delay) { + if (this.closed) { + return new Error("executing a cancelled action"); + } + this.pending = false; + var error = this._execute(state, delay); + if (error) { + return error; + } else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } + }; + AsyncAction2.prototype._execute = function(state, _delay) { + var errored = false; + var errorValue; + try { + this.work(state); + } catch (e) { + errored = true; + errorValue = e ? e : new Error("Scheduled action threw falsy error"); + } + if (errored) { + this.unsubscribe(); + return errorValue; + } + }; + AsyncAction2.prototype.unsubscribe = function() { + if (!this.closed) { + var _a = this, id = _a.id, scheduler2 = _a.scheduler; + var actions = scheduler2.actions; + this.work = this.state = this.scheduler = null; + this.pending = false; + arrRemove_1.arrRemove(actions, this); + if (id != null) { + this.id = this.recycleAsyncId(scheduler2, id, null); + } + this.delay = null; + _super.prototype.unsubscribe.call(this); + } + }; + return AsyncAction2; + })(Action_1.Action); + exports2.AsyncAction = AsyncAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/dateTimestampProvider.js +var require_dateTimestampProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/dateTimestampProvider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.dateTimestampProvider = void 0; + exports2.dateTimestampProvider = { + now: /* @__PURE__ */ __name(function() { + return (exports2.dateTimestampProvider.delegate || Date).now(); + }, "now"), + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Scheduler.js +var require_Scheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Scheduler.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Scheduler = void 0; + var dateTimestampProvider_1 = require_dateTimestampProvider(); + var Scheduler = (function() { + function Scheduler2(schedulerActionCtor, now) { + if (now === void 0) { + now = Scheduler2.now; + } + this.schedulerActionCtor = schedulerActionCtor; + this.now = now; + } + __name(Scheduler2, "Scheduler"); + Scheduler2.prototype.schedule = function(work, delay, state) { + if (delay === void 0) { + delay = 0; + } + return new this.schedulerActionCtor(this, work).schedule(state, delay); + }; + Scheduler2.now = dateTimestampProvider_1.dateTimestampProvider.now; + return Scheduler2; + })(); + exports2.Scheduler = Scheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js +var require_AsyncScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsyncScheduler = void 0; + var Scheduler_1 = require_Scheduler(); + var AsyncScheduler = (function(_super) { + __extends2(AsyncScheduler2, _super); + function AsyncScheduler2(SchedulerAction, now) { + if (now === void 0) { + now = Scheduler_1.Scheduler.now; + } + var _this = _super.call(this, SchedulerAction, now) || this; + _this.actions = []; + _this._active = false; + return _this; + } + __name(AsyncScheduler2, "AsyncScheduler"); + AsyncScheduler2.prototype.flush = function(action) { + var actions = this.actions; + if (this._active) { + actions.push(action); + return; + } + var error; + this._active = true; + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (action = actions.shift()); + this._active = false; + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsyncScheduler2; + })(Scheduler_1.Scheduler); + exports2.AsyncScheduler = AsyncScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/async.js +var require_async = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/async.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.async = exports2.asyncScheduler = void 0; + var AsyncAction_1 = require_AsyncAction(); + var AsyncScheduler_1 = require_AsyncScheduler(); + exports2.asyncScheduler = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction); + exports2.async = exports2.asyncScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isScheduler.js +var require_isScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isScheduler.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isScheduler = void 0; + var isFunction_1 = require_isFunction(); + function isScheduler(value) { + return value && isFunction_1.isFunction(value.schedule); + } + __name(isScheduler, "isScheduler"); + exports2.isScheduler = isScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isDate.js +var require_isDate2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isDate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isValidDate = void 0; + function isValidDate(value) { + return value instanceof Date && !isNaN(value); + } + __name(isValidDate, "isValidDate"); + exports2.isValidDate = isValidDate; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/timer.js +var require_timer = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/timer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timer = void 0; + var Observable_1 = require_Observable(); + var async_1 = require_async(); + var isScheduler_1 = require_isScheduler(); + var isDate_1 = require_isDate2(); + function timer(dueTime, intervalOrScheduler, scheduler2) { + if (dueTime === void 0) { + dueTime = 0; + } + if (scheduler2 === void 0) { + scheduler2 = async_1.async; + } + var intervalDuration = -1; + if (intervalOrScheduler != null) { + if (isScheduler_1.isScheduler(intervalOrScheduler)) { + scheduler2 = intervalOrScheduler; + } else { + intervalDuration = intervalOrScheduler; + } + } + return new Observable_1.Observable(function(subscriber) { + var due = isDate_1.isValidDate(dueTime) ? +dueTime - scheduler2.now() : dueTime; + if (due < 0) { + due = 0; + } + var n = 0; + return scheduler2.schedule(function() { + if (!subscriber.closed) { + subscriber.next(n++); + if (0 <= intervalDuration) { + this.schedule(void 0, intervalDuration); + } else { + subscriber.complete(); + } + } + }, due); + }); + } + __name(timer, "timer"); + exports2.timer = timer; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/auditTime.js +var require_auditTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/auditTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.auditTime = void 0; + var async_1 = require_async(); + var audit_1 = require_audit(); + var timer_1 = require_timer(); + function auditTime(duration, scheduler2) { + if (scheduler2 === void 0) { + scheduler2 = async_1.asyncScheduler; + } + return audit_1.audit(function() { + return timer_1.timer(duration, scheduler2); + }); + } + __name(auditTime, "auditTime"); + exports2.auditTime = auditTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/buffer.js +var require_buffer = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/buffer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.buffer = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function buffer(closingNotifier) { + return lift_1.operate(function(source, subscriber) { + var currentBuffer = []; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return currentBuffer.push(value); + }, function() { + subscriber.next(currentBuffer); + subscriber.complete(); + })); + innerFrom_1.innerFrom(closingNotifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + var b = currentBuffer; + currentBuffer = []; + subscriber.next(b); + }, noop_1.noop)); + return function() { + currentBuffer = null; + }; + }); + } + __name(buffer, "buffer"); + exports2.buffer = buffer; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/bufferCount.js +var require_bufferCount = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/bufferCount.js"(exports2) { + "use strict"; + var __values2 = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bufferCount = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var arrRemove_1 = require_arrRemove(); + function bufferCount(bufferSize, startBufferEvery) { + if (startBufferEvery === void 0) { + startBufferEvery = null; + } + startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize; + return lift_1.operate(function(source, subscriber) { + var buffers = []; + var count = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a, e_2, _b; + var toEmit = null; + if (count++ % startBufferEvery === 0) { + buffers.push([]); + } + try { + for (var buffers_1 = __values2(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) { + var buffer = buffers_1_1.value; + buffer.push(value); + if (bufferSize <= buffer.length) { + toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : []; + toEmit.push(buffer); + } + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1); + } finally { + if (e_1) throw e_1.error; + } + } + if (toEmit) { + try { + for (var toEmit_1 = __values2(toEmit), toEmit_1_1 = toEmit_1.next(); !toEmit_1_1.done; toEmit_1_1 = toEmit_1.next()) { + var buffer = toEmit_1_1.value; + arrRemove_1.arrRemove(buffers, buffer); + subscriber.next(buffer); + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (toEmit_1_1 && !toEmit_1_1.done && (_b = toEmit_1.return)) _b.call(toEmit_1); + } finally { + if (e_2) throw e_2.error; + } + } + } + }, function() { + var e_3, _a; + try { + for (var buffers_2 = __values2(buffers), buffers_2_1 = buffers_2.next(); !buffers_2_1.done; buffers_2_1 = buffers_2.next()) { + var buffer = buffers_2_1.value; + subscriber.next(buffer); + } + } catch (e_3_1) { + e_3 = { error: e_3_1 }; + } finally { + try { + if (buffers_2_1 && !buffers_2_1.done && (_a = buffers_2.return)) _a.call(buffers_2); + } finally { + if (e_3) throw e_3.error; + } + } + subscriber.complete(); + }, void 0, function() { + buffers = null; + })); + }); + } + __name(bufferCount, "bufferCount"); + exports2.bufferCount = bufferCount; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/args.js +var require_args = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/args.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.popNumber = exports2.popScheduler = exports2.popResultSelector = void 0; + var isFunction_1 = require_isFunction(); + var isScheduler_1 = require_isScheduler(); + function last(arr) { + return arr[arr.length - 1]; + } + __name(last, "last"); + function popResultSelector(args) { + return isFunction_1.isFunction(last(args)) ? args.pop() : void 0; + } + __name(popResultSelector, "popResultSelector"); + exports2.popResultSelector = popResultSelector; + function popScheduler(args) { + return isScheduler_1.isScheduler(last(args)) ? args.pop() : void 0; + } + __name(popScheduler, "popScheduler"); + exports2.popScheduler = popScheduler; + function popNumber(args, defaultValue) { + return typeof last(args) === "number" ? args.pop() : defaultValue; + } + __name(popNumber, "popNumber"); + exports2.popNumber = popNumber; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/executeSchedule.js +var require_executeSchedule = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/executeSchedule.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.executeSchedule = void 0; + function executeSchedule(parentSubscription, scheduler2, work, delay, repeat) { + if (delay === void 0) { + delay = 0; + } + if (repeat === void 0) { + repeat = false; + } + var scheduleSubscription = scheduler2.schedule(function() { + work(); + if (repeat) { + parentSubscription.add(this.schedule(null, delay)); + } else { + this.unsubscribe(); + } + }, delay); + parentSubscription.add(scheduleSubscription); + if (!repeat) { + return scheduleSubscription; + } + } + __name(executeSchedule, "executeSchedule"); + exports2.executeSchedule = executeSchedule; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/bufferTime.js +var require_bufferTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/bufferTime.js"(exports2) { + "use strict"; + var __values2 = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bufferTime = void 0; + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var arrRemove_1 = require_arrRemove(); + var async_1 = require_async(); + var args_1 = require_args(); + var executeSchedule_1 = require_executeSchedule(); + function bufferTime(bufferTimeSpan) { + var _a, _b; + var otherArgs = []; + for (var _i = 1; _i < arguments.length; _i++) { + otherArgs[_i - 1] = arguments[_i]; + } + var scheduler2 = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : async_1.asyncScheduler; + var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null; + var maxBufferSize = otherArgs[1] || Infinity; + return lift_1.operate(function(source, subscriber) { + var bufferRecords = []; + var restartOnEmit = false; + var emit = /* @__PURE__ */ __name(function(record) { + var buffer = record.buffer, subs = record.subs; + subs.unsubscribe(); + arrRemove_1.arrRemove(bufferRecords, record); + subscriber.next(buffer); + restartOnEmit && startBuffer(); + }, "emit"); + var startBuffer = /* @__PURE__ */ __name(function() { + if (bufferRecords) { + var subs = new Subscription_1.Subscription(); + subscriber.add(subs); + var buffer = []; + var record_1 = { + buffer, + subs + }; + bufferRecords.push(record_1); + executeSchedule_1.executeSchedule(subs, scheduler2, function() { + return emit(record_1); + }, bufferTimeSpan); + } + }, "startBuffer"); + if (bufferCreationInterval !== null && bufferCreationInterval >= 0) { + executeSchedule_1.executeSchedule(subscriber, scheduler2, startBuffer, bufferCreationInterval, true); + } else { + restartOnEmit = true; + } + startBuffer(); + var bufferTimeSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a2; + var recordsCopy = bufferRecords.slice(); + try { + for (var recordsCopy_1 = __values2(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next(); !recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) { + var record = recordsCopy_1_1.value; + var buffer = record.buffer; + buffer.push(value); + maxBufferSize <= buffer.length && emit(record); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a2 = recordsCopy_1.return)) _a2.call(recordsCopy_1); + } finally { + if (e_1) throw e_1.error; + } + } + }, function() { + while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) { + subscriber.next(bufferRecords.shift().buffer); + } + bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe(); + subscriber.complete(); + subscriber.unsubscribe(); + }, void 0, function() { + return bufferRecords = null; + }); + source.subscribe(bufferTimeSubscriber); + }); + } + __name(bufferTime, "bufferTime"); + exports2.bufferTime = bufferTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/bufferToggle.js +var require_bufferToggle = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/bufferToggle.js"(exports2) { + "use strict"; + var __values2 = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bufferToggle = void 0; + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var arrRemove_1 = require_arrRemove(); + function bufferToggle(openings, closingSelector) { + return lift_1.operate(function(source, subscriber) { + var buffers = []; + innerFrom_1.innerFrom(openings).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(openValue) { + var buffer = []; + buffers.push(buffer); + var closingSubscription = new Subscription_1.Subscription(); + var emitBuffer = /* @__PURE__ */ __name(function() { + arrRemove_1.arrRemove(buffers, buffer); + subscriber.next(buffer); + closingSubscription.unsubscribe(); + }, "emitBuffer"); + closingSubscription.add(innerFrom_1.innerFrom(closingSelector(openValue)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, emitBuffer, noop_1.noop))); + }, noop_1.noop)); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a; + try { + for (var buffers_1 = __values2(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) { + var buffer = buffers_1_1.value; + buffer.push(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1); + } finally { + if (e_1) throw e_1.error; + } + } + }, function() { + while (buffers.length > 0) { + subscriber.next(buffers.shift()); + } + subscriber.complete(); + })); + }); + } + __name(bufferToggle, "bufferToggle"); + exports2.bufferToggle = bufferToggle; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/bufferWhen.js +var require_bufferWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/bufferWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bufferWhen = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function bufferWhen(closingSelector) { + return lift_1.operate(function(source, subscriber) { + var buffer = null; + var closingSubscriber = null; + var openBuffer = /* @__PURE__ */ __name(function() { + closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); + var b = buffer; + buffer = []; + b && subscriber.next(b); + innerFrom_1.innerFrom(closingSelector()).subscribe(closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openBuffer, noop_1.noop)); + }, "openBuffer"); + openBuffer(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return buffer === null || buffer === void 0 ? void 0 : buffer.push(value); + }, function() { + buffer && subscriber.next(buffer); + subscriber.complete(); + }, void 0, function() { + return buffer = closingSubscriber = null; + })); + }); + } + __name(bufferWhen, "bufferWhen"); + exports2.bufferWhen = bufferWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/catchError.js +var require_catchError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/catchError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.catchError = void 0; + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var lift_1 = require_lift(); + function catchError(selector) { + return lift_1.operate(function(source, subscriber) { + var innerSub = null; + var syncUnsub = false; + var handledResult; + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, void 0, function(err) { + handledResult = innerFrom_1.innerFrom(selector(err, catchError(selector)(source))); + if (innerSub) { + innerSub.unsubscribe(); + innerSub = null; + handledResult.subscribe(subscriber); + } else { + syncUnsub = true; + } + })); + if (syncUnsub) { + innerSub.unsubscribe(); + innerSub = null; + handledResult.subscribe(subscriber); + } + }); + } + __name(catchError, "catchError"); + exports2.catchError = catchError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/argsArgArrayOrObject.js +var require_argsArgArrayOrObject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/argsArgArrayOrObject.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.argsArgArrayOrObject = void 0; + var isArray = Array.isArray; + var getPrototypeOf = Object.getPrototypeOf; + var objectProto = Object.prototype; + var getKeys = Object.keys; + function argsArgArrayOrObject(args) { + if (args.length === 1) { + var first_1 = args[0]; + if (isArray(first_1)) { + return { args: first_1, keys: null }; + } + if (isPOJO(first_1)) { + var keys = getKeys(first_1); + return { + args: keys.map(function(key) { + return first_1[key]; + }), + keys + }; + } + } + return { args, keys: null }; + } + __name(argsArgArrayOrObject, "argsArgArrayOrObject"); + exports2.argsArgArrayOrObject = argsArgArrayOrObject; + function isPOJO(obj) { + return obj && typeof obj === "object" && getPrototypeOf(obj) === objectProto; + } + __name(isPOJO, "isPOJO"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/observeOn.js +var require_observeOn = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/observeOn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.observeOn = void 0; + var executeSchedule_1 = require_executeSchedule(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function observeOn(scheduler2, delay) { + if (delay === void 0) { + delay = 0; + } + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return executeSchedule_1.executeSchedule(subscriber, scheduler2, function() { + return subscriber.next(value); + }, delay); + }, function() { + return executeSchedule_1.executeSchedule(subscriber, scheduler2, function() { + return subscriber.complete(); + }, delay); + }, function(err) { + return executeSchedule_1.executeSchedule(subscriber, scheduler2, function() { + return subscriber.error(err); + }, delay); + })); + }); + } + __name(observeOn, "observeOn"); + exports2.observeOn = observeOn; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/subscribeOn.js +var require_subscribeOn = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/subscribeOn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.subscribeOn = void 0; + var lift_1 = require_lift(); + function subscribeOn(scheduler2, delay) { + if (delay === void 0) { + delay = 0; + } + return lift_1.operate(function(source, subscriber) { + subscriber.add(scheduler2.schedule(function() { + return source.subscribe(subscriber); + }, delay)); + }); + } + __name(subscribeOn, "subscribeOn"); + exports2.subscribeOn = subscribeOn; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleObservable.js +var require_scheduleObservable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleObservable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleObservable = void 0; + var innerFrom_1 = require_innerFrom(); + var observeOn_1 = require_observeOn(); + var subscribeOn_1 = require_subscribeOn(); + function scheduleObservable(input, scheduler2) { + return innerFrom_1.innerFrom(input).pipe(subscribeOn_1.subscribeOn(scheduler2), observeOn_1.observeOn(scheduler2)); + } + __name(scheduleObservable, "scheduleObservable"); + exports2.scheduleObservable = scheduleObservable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/schedulePromise.js +var require_schedulePromise = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/schedulePromise.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.schedulePromise = void 0; + var innerFrom_1 = require_innerFrom(); + var observeOn_1 = require_observeOn(); + var subscribeOn_1 = require_subscribeOn(); + function schedulePromise(input, scheduler2) { + return innerFrom_1.innerFrom(input).pipe(subscribeOn_1.subscribeOn(scheduler2), observeOn_1.observeOn(scheduler2)); + } + __name(schedulePromise, "schedulePromise"); + exports2.schedulePromise = schedulePromise; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleArray.js +var require_scheduleArray = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleArray.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleArray = void 0; + var Observable_1 = require_Observable(); + function scheduleArray(input, scheduler2) { + return new Observable_1.Observable(function(subscriber) { + var i = 0; + return scheduler2.schedule(function() { + if (i === input.length) { + subscriber.complete(); + } else { + subscriber.next(input[i++]); + if (!subscriber.closed) { + this.schedule(); + } + } + }); + }); + } + __name(scheduleArray, "scheduleArray"); + exports2.scheduleArray = scheduleArray; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleIterable.js +var require_scheduleIterable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleIterable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleIterable = void 0; + var Observable_1 = require_Observable(); + var iterator_1 = require_iterator(); + var isFunction_1 = require_isFunction(); + var executeSchedule_1 = require_executeSchedule(); + function scheduleIterable(input, scheduler2) { + return new Observable_1.Observable(function(subscriber) { + var iterator; + executeSchedule_1.executeSchedule(subscriber, scheduler2, function() { + iterator = input[iterator_1.iterator](); + executeSchedule_1.executeSchedule(subscriber, scheduler2, function() { + var _a; + var value; + var done; + try { + _a = iterator.next(), value = _a.value, done = _a.done; + } catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } else { + subscriber.next(value); + } + }, 0, true); + }); + return function() { + return isFunction_1.isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); + }; + }); + } + __name(scheduleIterable, "scheduleIterable"); + exports2.scheduleIterable = scheduleIterable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleAsyncIterable.js +var require_scheduleAsyncIterable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleAsyncIterable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleAsyncIterable = void 0; + var Observable_1 = require_Observable(); + var executeSchedule_1 = require_executeSchedule(); + function scheduleAsyncIterable(input, scheduler2) { + if (!input) { + throw new Error("Iterable cannot be null"); + } + return new Observable_1.Observable(function(subscriber) { + executeSchedule_1.executeSchedule(subscriber, scheduler2, function() { + var iterator = input[Symbol.asyncIterator](); + executeSchedule_1.executeSchedule(subscriber, scheduler2, function() { + iterator.next().then(function(result) { + if (result.done) { + subscriber.complete(); + } else { + subscriber.next(result.value); + } + }); + }, 0, true); + }); + }); + } + __name(scheduleAsyncIterable, "scheduleAsyncIterable"); + exports2.scheduleAsyncIterable = scheduleAsyncIterable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduleReadableStreamLike.js +var require_scheduleReadableStreamLike = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduleReadableStreamLike.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduleReadableStreamLike = void 0; + var scheduleAsyncIterable_1 = require_scheduleAsyncIterable(); + var isReadableStreamLike_1 = require_isReadableStreamLike(); + function scheduleReadableStreamLike(input, scheduler2) { + return scheduleAsyncIterable_1.scheduleAsyncIterable(isReadableStreamLike_1.readableStreamLikeToAsyncGenerator(input), scheduler2); + } + __name(scheduleReadableStreamLike, "scheduleReadableStreamLike"); + exports2.scheduleReadableStreamLike = scheduleReadableStreamLike; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduled/scheduled.js +var require_scheduled = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduled/scheduled.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scheduled = void 0; + var scheduleObservable_1 = require_scheduleObservable(); + var schedulePromise_1 = require_schedulePromise(); + var scheduleArray_1 = require_scheduleArray(); + var scheduleIterable_1 = require_scheduleIterable(); + var scheduleAsyncIterable_1 = require_scheduleAsyncIterable(); + var isInteropObservable_1 = require_isInteropObservable(); + var isPromise_1 = require_isPromise(); + var isArrayLike_1 = require_isArrayLike(); + var isIterable_1 = require_isIterable(); + var isAsyncIterable_1 = require_isAsyncIterable(); + var throwUnobservableError_1 = require_throwUnobservableError(); + var isReadableStreamLike_1 = require_isReadableStreamLike(); + var scheduleReadableStreamLike_1 = require_scheduleReadableStreamLike(); + function scheduled(input, scheduler2) { + if (input != null) { + if (isInteropObservable_1.isInteropObservable(input)) { + return scheduleObservable_1.scheduleObservable(input, scheduler2); + } + if (isArrayLike_1.isArrayLike(input)) { + return scheduleArray_1.scheduleArray(input, scheduler2); + } + if (isPromise_1.isPromise(input)) { + return schedulePromise_1.schedulePromise(input, scheduler2); + } + if (isAsyncIterable_1.isAsyncIterable(input)) { + return scheduleAsyncIterable_1.scheduleAsyncIterable(input, scheduler2); + } + if (isIterable_1.isIterable(input)) { + return scheduleIterable_1.scheduleIterable(input, scheduler2); + } + if (isReadableStreamLike_1.isReadableStreamLike(input)) { + return scheduleReadableStreamLike_1.scheduleReadableStreamLike(input, scheduler2); + } + } + throw throwUnobservableError_1.createInvalidObservableTypeError(input); + } + __name(scheduled, "scheduled"); + exports2.scheduled = scheduled; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/from.js +var require_from = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/from.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.from = void 0; + var scheduled_1 = require_scheduled(); + var innerFrom_1 = require_innerFrom(); + function from(input, scheduler2) { + return scheduler2 ? scheduled_1.scheduled(input, scheduler2) : innerFrom_1.innerFrom(input); + } + __name(from, "from"); + exports2.from = from; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/map.js +var require_map2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/map.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.map = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function map(project, thisArg) { + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + subscriber.next(project.call(thisArg, value, index++)); + })); + }); + } + __name(map, "map"); + exports2.map = map; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/mapOneOrManyArgs.js +var require_mapOneOrManyArgs = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/mapOneOrManyArgs.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mapOneOrManyArgs = void 0; + var map_1 = require_map2(); + var isArray = Array.isArray; + function callOrApply(fn, args) { + return isArray(args) ? fn.apply(void 0, __spreadArray2([], __read2(args))) : fn(args); + } + __name(callOrApply, "callOrApply"); + function mapOneOrManyArgs(fn) { + return map_1.map(function(args) { + return callOrApply(fn, args); + }); + } + __name(mapOneOrManyArgs, "mapOneOrManyArgs"); + exports2.mapOneOrManyArgs = mapOneOrManyArgs; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/createObject.js +var require_createObject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/createObject.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createObject = void 0; + function createObject(keys, values) { + return keys.reduce(function(result, key, i) { + return result[key] = values[i], result; + }, {}); + } + __name(createObject, "createObject"); + exports2.createObject = createObject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/combineLatest.js +var require_combineLatest = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/combineLatest.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineLatestInit = exports2.combineLatest = void 0; + var Observable_1 = require_Observable(); + var argsArgArrayOrObject_1 = require_argsArgArrayOrObject(); + var from_1 = require_from(); + var identity_1 = require_identity(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var args_1 = require_args(); + var createObject_1 = require_createObject(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var executeSchedule_1 = require_executeSchedule(); + function combineLatest() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler2 = args_1.popScheduler(args); + var resultSelector = args_1.popResultSelector(args); + var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys; + if (observables.length === 0) { + return from_1.from([], scheduler2); + } + var result = new Observable_1.Observable(combineLatestInit(observables, scheduler2, keys ? function(values) { + return createObject_1.createObject(keys, values); + } : identity_1.identity)); + return resultSelector ? result.pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : result; + } + __name(combineLatest, "combineLatest"); + exports2.combineLatest = combineLatest; + function combineLatestInit(observables, scheduler2, valueTransform) { + if (valueTransform === void 0) { + valueTransform = identity_1.identity; + } + return function(subscriber) { + maybeSchedule(scheduler2, function() { + var length = observables.length; + var values = new Array(length); + var active = length; + var remainingFirstValues = length; + var _loop_1 = /* @__PURE__ */ __name(function(i2) { + maybeSchedule(scheduler2, function() { + var source = from_1.from(observables[i2], scheduler2); + var hasFirstValue = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + values[i2] = value; + if (!hasFirstValue) { + hasFirstValue = true; + remainingFirstValues--; + } + if (!remainingFirstValues) { + subscriber.next(valueTransform(values.slice())); + } + }, function() { + if (!--active) { + subscriber.complete(); + } + })); + }, subscriber); + }, "_loop_1"); + for (var i = 0; i < length; i++) { + _loop_1(i); + } + }, subscriber); + }; + } + __name(combineLatestInit, "combineLatestInit"); + exports2.combineLatestInit = combineLatestInit; + function maybeSchedule(scheduler2, execute, subscription) { + if (scheduler2) { + executeSchedule_1.executeSchedule(subscription, scheduler2, execute); + } else { + execute(); + } + } + __name(maybeSchedule, "maybeSchedule"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js +var require_mergeInternals = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeInternals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeInternals = void 0; + var innerFrom_1 = require_innerFrom(); + var executeSchedule_1 = require_executeSchedule(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) { + var buffer = []; + var active = 0; + var index = 0; + var isComplete = false; + var checkComplete = /* @__PURE__ */ __name(function() { + if (isComplete && !buffer.length && !active) { + subscriber.complete(); + } + }, "checkComplete"); + var outerNext = /* @__PURE__ */ __name(function(value) { + return active < concurrent ? doInnerSub(value) : buffer.push(value); + }, "outerNext"); + var doInnerSub = /* @__PURE__ */ __name(function(value) { + expand && subscriber.next(value); + active++; + var innerComplete = false; + innerFrom_1.innerFrom(project(value, index++)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(innerValue) { + onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue); + if (expand) { + outerNext(innerValue); + } else { + subscriber.next(innerValue); + } + }, function() { + innerComplete = true; + }, void 0, function() { + if (innerComplete) { + try { + active--; + var _loop_1 = /* @__PURE__ */ __name(function() { + var bufferedValue = buffer.shift(); + if (innerSubScheduler) { + executeSchedule_1.executeSchedule(subscriber, innerSubScheduler, function() { + return doInnerSub(bufferedValue); + }); + } else { + doInnerSub(bufferedValue); + } + }, "_loop_1"); + while (buffer.length && active < concurrent) { + _loop_1(); + } + checkComplete(); + } catch (err) { + subscriber.error(err); + } + } + })); + }, "doInnerSub"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, outerNext, function() { + isComplete = true; + checkComplete(); + })); + return function() { + additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer(); + }; + } + __name(mergeInternals, "mergeInternals"); + exports2.mergeInternals = mergeInternals; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeMap.js +var require_mergeMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeMap = void 0; + var map_1 = require_map2(); + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var mergeInternals_1 = require_mergeInternals(); + var isFunction_1 = require_isFunction(); + function mergeMap(project, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + if (isFunction_1.isFunction(resultSelector)) { + return mergeMap(function(a, i) { + return map_1.map(function(b, ii) { + return resultSelector(a, b, i, ii); + })(innerFrom_1.innerFrom(project(a, i))); + }, concurrent); + } else if (typeof resultSelector === "number") { + concurrent = resultSelector; + } + return lift_1.operate(function(source, subscriber) { + return mergeInternals_1.mergeInternals(source, subscriber, project, concurrent); + }); + } + __name(mergeMap, "mergeMap"); + exports2.mergeMap = mergeMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/scanInternals.js +var require_scanInternals = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/scanInternals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scanInternals = void 0; + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) { + return function(source, subscriber) { + var hasState = hasSeed; + var state = seed; + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var i = index++; + state = hasState ? accumulator(state, value, i) : (hasState = true, value); + emitOnNext && subscriber.next(state); + }, emitBeforeComplete && (function() { + hasState && subscriber.next(state); + subscriber.complete(); + }))); + }; + } + __name(scanInternals, "scanInternals"); + exports2.scanInternals = scanInternals; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/reduce.js +var require_reduce = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/reduce.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.reduce = void 0; + var scanInternals_1 = require_scanInternals(); + var lift_1 = require_lift(); + function reduce(accumulator, seed) { + return lift_1.operate(scanInternals_1.scanInternals(accumulator, seed, arguments.length >= 2, false, true)); + } + __name(reduce, "reduce"); + exports2.reduce = reduce; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/toArray.js +var require_toArray = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/toArray.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.toArray = void 0; + var reduce_1 = require_reduce(); + var lift_1 = require_lift(); + var arrReducer = /* @__PURE__ */ __name(function(arr, value) { + return arr.push(value), arr; + }, "arrReducer"); + function toArray() { + return lift_1.operate(function(source, subscriber) { + reduce_1.reduce(arrReducer, [])(source).subscribe(subscriber); + }); + } + __name(toArray, "toArray"); + exports2.toArray = toArray; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/joinAllInternals.js +var require_joinAllInternals = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/joinAllInternals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.joinAllInternals = void 0; + var identity_1 = require_identity(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var pipe_1 = require_pipe(); + var mergeMap_1 = require_mergeMap(); + var toArray_1 = require_toArray(); + function joinAllInternals(joinFn, project) { + return pipe_1.pipe(toArray_1.toArray(), mergeMap_1.mergeMap(function(sources) { + return joinFn(sources); + }), project ? mapOneOrManyArgs_1.mapOneOrManyArgs(project) : identity_1.identity); + } + __name(joinAllInternals, "joinAllInternals"); + exports2.joinAllInternals = joinAllInternals; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/combineLatestAll.js +var require_combineLatestAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/combineLatestAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineLatestAll = void 0; + var combineLatest_1 = require_combineLatest(); + var joinAllInternals_1 = require_joinAllInternals(); + function combineLatestAll(project) { + return joinAllInternals_1.joinAllInternals(combineLatest_1.combineLatest, project); + } + __name(combineLatestAll, "combineLatestAll"); + exports2.combineLatestAll = combineLatestAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/combineAll.js +var require_combineAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/combineAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineAll = void 0; + var combineLatestAll_1 = require_combineLatestAll(); + exports2.combineAll = combineLatestAll_1.combineLatestAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/argsOrArgArray.js +var require_argsOrArgArray = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/argsOrArgArray.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.argsOrArgArray = void 0; + var isArray = Array.isArray; + function argsOrArgArray(args) { + return args.length === 1 && isArray(args[0]) ? args[0] : args; + } + __name(argsOrArgArray, "argsOrArgArray"); + exports2.argsOrArgArray = argsOrArgArray; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/combineLatest.js +var require_combineLatest2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/combineLatest.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineLatest = void 0; + var combineLatest_1 = require_combineLatest(); + var lift_1 = require_lift(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var pipe_1 = require_pipe(); + var args_1 = require_args(); + function combineLatest() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var resultSelector = args_1.popResultSelector(args); + return resultSelector ? pipe_1.pipe(combineLatest.apply(void 0, __spreadArray2([], __read2(args))), mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : lift_1.operate(function(source, subscriber) { + combineLatest_1.combineLatestInit(__spreadArray2([source], __read2(argsOrArgArray_1.argsOrArgArray(args))))(subscriber); + }); + } + __name(combineLatest, "combineLatest"); + exports2.combineLatest = combineLatest; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/combineLatestWith.js +var require_combineLatestWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/combineLatestWith.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.combineLatestWith = void 0; + var combineLatest_1 = require_combineLatest2(); + function combineLatestWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return combineLatest_1.combineLatest.apply(void 0, __spreadArray2([], __read2(otherSources))); + } + __name(combineLatestWith, "combineLatestWith"); + exports2.combineLatestWith = combineLatestWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeAll.js +var require_mergeAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeAll = void 0; + var mergeMap_1 = require_mergeMap(); + var identity_1 = require_identity(); + function mergeAll(concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + return mergeMap_1.mergeMap(identity_1.identity, concurrent); + } + __name(mergeAll, "mergeAll"); + exports2.mergeAll = mergeAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concatAll.js +var require_concatAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concatAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concatAll = void 0; + var mergeAll_1 = require_mergeAll(); + function concatAll() { + return mergeAll_1.mergeAll(1); + } + __name(concatAll, "concatAll"); + exports2.concatAll = concatAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concat.js +var require_concat2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concat.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concat = void 0; + var lift_1 = require_lift(); + var concatAll_1 = require_concatAll(); + var args_1 = require_args(); + var from_1 = require_from(); + function concat() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler2 = args_1.popScheduler(args); + return lift_1.operate(function(source, subscriber) { + concatAll_1.concatAll()(from_1.from(__spreadArray2([source], __read2(args)), scheduler2)).subscribe(subscriber); + }); + } + __name(concat, "concat"); + exports2.concat = concat; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concatMap.js +var require_concatMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concatMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concatMap = void 0; + var mergeMap_1 = require_mergeMap(); + var isFunction_1 = require_isFunction(); + function concatMap(project, resultSelector) { + return isFunction_1.isFunction(resultSelector) ? mergeMap_1.mergeMap(project, resultSelector, 1) : mergeMap_1.mergeMap(project, 1); + } + __name(concatMap, "concatMap"); + exports2.concatMap = concatMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concatMapTo.js +var require_concatMapTo = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concatMapTo.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concatMapTo = void 0; + var concatMap_1 = require_concatMap(); + var isFunction_1 = require_isFunction(); + function concatMapTo(innerObservable, resultSelector) { + return isFunction_1.isFunction(resultSelector) ? concatMap_1.concatMap(function() { + return innerObservable; + }, resultSelector) : concatMap_1.concatMap(function() { + return innerObservable; + }); + } + __name(concatMapTo, "concatMapTo"); + exports2.concatMapTo = concatMapTo; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/concatWith.js +var require_concatWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/concatWith.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concatWith = void 0; + var concat_1 = require_concat2(); + function concatWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return concat_1.concat.apply(void 0, __spreadArray2([], __read2(otherSources))); + } + __name(concatWith, "concatWith"); + exports2.concatWith = concatWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/ObjectUnsubscribedError.js +var require_ObjectUnsubscribedError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/ObjectUnsubscribedError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ObjectUnsubscribedError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.ObjectUnsubscribedError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function ObjectUnsubscribedErrorImpl() { + _super(this); + this.name = "ObjectUnsubscribedError"; + this.message = "object unsubscribed"; + }, "ObjectUnsubscribedErrorImpl"); + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/Subject.js +var require_Subject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Subject.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + var __values2 = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AnonymousSubject = exports2.Subject = void 0; + var Observable_1 = require_Observable(); + var Subscription_1 = require_Subscription(); + var ObjectUnsubscribedError_1 = require_ObjectUnsubscribedError(); + var arrRemove_1 = require_arrRemove(); + var errorContext_1 = require_errorContext(); + var Subject = (function(_super) { + __extends2(Subject2, _super); + function Subject2() { + var _this = _super.call(this) || this; + _this.closed = false; + _this.currentObservers = null; + _this.observers = []; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + __name(Subject2, "Subject"); + Subject2.prototype.lift = function(operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject2.prototype._throwIfClosed = function() { + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + }; + Subject2.prototype.next = function(value) { + var _this = this; + errorContext_1.errorContext(function() { + var e_1, _a; + _this._throwIfClosed(); + if (!_this.isStopped) { + if (!_this.currentObservers) { + _this.currentObservers = Array.from(_this.observers); + } + try { + for (var _b = __values2(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) { + var observer = _c.value; + observer.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_c && !_c.done && (_a = _b.return)) _a.call(_b); + } finally { + if (e_1) throw e_1.error; + } + } + } + }); + }; + Subject2.prototype.error = function(err) { + var _this = this; + errorContext_1.errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.hasError = _this.isStopped = true; + _this.thrownError = err; + var observers = _this.observers; + while (observers.length) { + observers.shift().error(err); + } + } + }); + }; + Subject2.prototype.complete = function() { + var _this = this; + errorContext_1.errorContext(function() { + _this._throwIfClosed(); + if (!_this.isStopped) { + _this.isStopped = true; + var observers = _this.observers; + while (observers.length) { + observers.shift().complete(); + } + } + }); + }; + Subject2.prototype.unsubscribe = function() { + this.isStopped = this.closed = true; + this.observers = this.currentObservers = null; + }; + Object.defineProperty(Subject2.prototype, "observed", { + get: /* @__PURE__ */ __name(function() { + var _a; + return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0; + }, "get"), + enumerable: false, + configurable: true + }); + Subject2.prototype._trySubscribe = function(subscriber) { + this._throwIfClosed(); + return _super.prototype._trySubscribe.call(this, subscriber); + }; + Subject2.prototype._subscribe = function(subscriber) { + this._throwIfClosed(); + this._checkFinalizedStatuses(subscriber); + return this._innerSubscribe(subscriber); + }; + Subject2.prototype._innerSubscribe = function(subscriber) { + var _this = this; + var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; + if (hasError || isStopped) { + return Subscription_1.EMPTY_SUBSCRIPTION; + } + this.currentObservers = null; + observers.push(subscriber); + return new Subscription_1.Subscription(function() { + _this.currentObservers = null; + arrRemove_1.arrRemove(observers, subscriber); + }); + }; + Subject2.prototype._checkFinalizedStatuses = function(subscriber) { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; + if (hasError) { + subscriber.error(thrownError); + } else if (isStopped) { + subscriber.complete(); + } + }; + Subject2.prototype.asObservable = function() { + var observable = new Observable_1.Observable(); + observable.source = this; + return observable; + }; + Subject2.create = function(destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject2; + })(Observable_1.Observable); + exports2.Subject = Subject; + var AnonymousSubject = (function(_super) { + __extends2(AnonymousSubject2, _super); + function AnonymousSubject2(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + __name(AnonymousSubject2, "AnonymousSubject"); + AnonymousSubject2.prototype.next = function(value) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value); + }; + AnonymousSubject2.prototype.error = function(err) { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err); + }; + AnonymousSubject2.prototype.complete = function() { + var _a, _b; + (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a); + }; + AnonymousSubject2.prototype._subscribe = function(subscriber) { + var _a, _b; + return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : Subscription_1.EMPTY_SUBSCRIPTION; + }; + return AnonymousSubject2; + })(Subject); + exports2.AnonymousSubject = AnonymousSubject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/fromSubscribable.js +var require_fromSubscribable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/fromSubscribable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromSubscribable = void 0; + var Observable_1 = require_Observable(); + function fromSubscribable(subscribable) { + return new Observable_1.Observable(function(subscriber) { + return subscribable.subscribe(subscriber); + }); + } + __name(fromSubscribable, "fromSubscribable"); + exports2.fromSubscribable = fromSubscribable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/connect.js +var require_connect = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/connect.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.connect = void 0; + var Subject_1 = require_Subject(); + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var fromSubscribable_1 = require_fromSubscribable(); + var DEFAULT_CONFIG = { + connector: /* @__PURE__ */ __name(function() { + return new Subject_1.Subject(); + }, "connector") + }; + function connect(selector, config) { + if (config === void 0) { + config = DEFAULT_CONFIG; + } + var connector = config.connector; + return lift_1.operate(function(source, subscriber) { + var subject = connector(); + innerFrom_1.innerFrom(selector(fromSubscribable_1.fromSubscribable(subject))).subscribe(subscriber); + subscriber.add(source.subscribe(subject)); + }); + } + __name(connect, "connect"); + exports2.connect = connect; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/count.js +var require_count = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/count.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.count = void 0; + var reduce_1 = require_reduce(); + function count(predicate) { + return reduce_1.reduce(function(total, value, i) { + return !predicate || predicate(value, i) ? total + 1 : total; + }, 0); + } + __name(count, "count"); + exports2.count = count; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/debounce.js +var require_debounce = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/debounce.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.debounce = void 0; + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function debounce(durationSelector) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var lastValue = null; + var durationSubscriber = null; + var emit = /* @__PURE__ */ __name(function() { + durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); + durationSubscriber = null; + if (hasValue) { + hasValue = false; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + }, "emit"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe(); + hasValue = true; + lastValue = value; + durationSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, emit, noop_1.noop); + innerFrom_1.innerFrom(durationSelector(value)).subscribe(durationSubscriber); + }, function() { + emit(); + subscriber.complete(); + }, void 0, function() { + lastValue = durationSubscriber = null; + })); + }); + } + __name(debounce, "debounce"); + exports2.debounce = debounce; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/debounceTime.js +var require_debounceTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/debounceTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.debounceTime = void 0; + var async_1 = require_async(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function debounceTime(dueTime, scheduler2) { + if (scheduler2 === void 0) { + scheduler2 = async_1.asyncScheduler; + } + return lift_1.operate(function(source, subscriber) { + var activeTask = null; + var lastValue = null; + var lastTime = null; + var emit = /* @__PURE__ */ __name(function() { + if (activeTask) { + activeTask.unsubscribe(); + activeTask = null; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + }, "emit"); + function emitWhenIdle() { + var targetTime = lastTime + dueTime; + var now = scheduler2.now(); + if (now < targetTime) { + activeTask = this.schedule(void 0, targetTime - now); + subscriber.add(activeTask); + return; + } + emit(); + } + __name(emitWhenIdle, "emitWhenIdle"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + lastValue = value; + lastTime = scheduler2.now(); + if (!activeTask) { + activeTask = scheduler2.schedule(emitWhenIdle, dueTime); + subscriber.add(activeTask); + } + }, function() { + emit(); + subscriber.complete(); + }, void 0, function() { + lastValue = activeTask = null; + })); + }); + } + __name(debounceTime, "debounceTime"); + exports2.debounceTime = debounceTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/defaultIfEmpty.js +var require_defaultIfEmpty = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/defaultIfEmpty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defaultIfEmpty = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function defaultIfEmpty(defaultValue) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + subscriber.next(value); + }, function() { + if (!hasValue) { + subscriber.next(defaultValue); + } + subscriber.complete(); + })); + }); + } + __name(defaultIfEmpty, "defaultIfEmpty"); + exports2.defaultIfEmpty = defaultIfEmpty; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/concat.js +var require_concat3 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/concat.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.concat = void 0; + var concatAll_1 = require_concatAll(); + var args_1 = require_args(); + var from_1 = require_from(); + function concat() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return concatAll_1.concatAll()(from_1.from(args, args_1.popScheduler(args))); + } + __name(concat, "concat"); + exports2.concat = concat; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/empty.js +var require_empty = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/empty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.empty = exports2.EMPTY = void 0; + var Observable_1 = require_Observable(); + exports2.EMPTY = new Observable_1.Observable(function(subscriber) { + return subscriber.complete(); + }); + function empty2(scheduler2) { + return scheduler2 ? emptyScheduled(scheduler2) : exports2.EMPTY; + } + __name(empty2, "empty"); + exports2.empty = empty2; + function emptyScheduled(scheduler2) { + return new Observable_1.Observable(function(subscriber) { + return scheduler2.schedule(function() { + return subscriber.complete(); + }); + }); + } + __name(emptyScheduled, "emptyScheduled"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/take.js +var require_take = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/take.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.take = void 0; + var empty_1 = require_empty(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function take(count) { + return count <= 0 ? function() { + return empty_1.EMPTY; + } : lift_1.operate(function(source, subscriber) { + var seen = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (++seen <= count) { + subscriber.next(value); + if (count <= seen) { + subscriber.complete(); + } + } + })); + }); + } + __name(take, "take"); + exports2.take = take; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/ignoreElements.js +var require_ignoreElements = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/ignoreElements.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ignoreElements = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + function ignoreElements() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, noop_1.noop)); + }); + } + __name(ignoreElements, "ignoreElements"); + exports2.ignoreElements = ignoreElements; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mapTo.js +var require_mapTo = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mapTo.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mapTo = void 0; + var map_1 = require_map2(); + function mapTo(value) { + return map_1.map(function() { + return value; + }); + } + __name(mapTo, "mapTo"); + exports2.mapTo = mapTo; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/delayWhen.js +var require_delayWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/delayWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.delayWhen = void 0; + var concat_1 = require_concat3(); + var take_1 = require_take(); + var ignoreElements_1 = require_ignoreElements(); + var mapTo_1 = require_mapTo(); + var mergeMap_1 = require_mergeMap(); + var innerFrom_1 = require_innerFrom(); + function delayWhen(delayDurationSelector, subscriptionDelay) { + if (subscriptionDelay) { + return function(source) { + return concat_1.concat(subscriptionDelay.pipe(take_1.take(1), ignoreElements_1.ignoreElements()), source.pipe(delayWhen(delayDurationSelector))); + }; + } + return mergeMap_1.mergeMap(function(value, index) { + return innerFrom_1.innerFrom(delayDurationSelector(value, index)).pipe(take_1.take(1), mapTo_1.mapTo(value)); + }); + } + __name(delayWhen, "delayWhen"); + exports2.delayWhen = delayWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/delay.js +var require_delay = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/delay.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.delay = void 0; + var async_1 = require_async(); + var delayWhen_1 = require_delayWhen(); + var timer_1 = require_timer(); + function delay(due, scheduler2) { + if (scheduler2 === void 0) { + scheduler2 = async_1.asyncScheduler; + } + var duration = timer_1.timer(due, scheduler2); + return delayWhen_1.delayWhen(function() { + return duration; + }); + } + __name(delay, "delay"); + exports2.delay = delay; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/of.js +var require_of = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/of.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.of = void 0; + var args_1 = require_args(); + var from_1 = require_from(); + function of() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler2 = args_1.popScheduler(args); + return from_1.from(args, scheduler2); + } + __name(of, "of"); + exports2.of = of; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/throwError.js +var require_throwError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/throwError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.throwError = void 0; + var Observable_1 = require_Observable(); + var isFunction_1 = require_isFunction(); + function throwError(errorOrErrorFactory, scheduler2) { + var errorFactory = isFunction_1.isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function() { + return errorOrErrorFactory; + }; + var init = /* @__PURE__ */ __name(function(subscriber) { + return subscriber.error(errorFactory()); + }, "init"); + return new Observable_1.Observable(scheduler2 ? function(subscriber) { + return scheduler2.schedule(init, 0, subscriber); + } : init); + } + __name(throwError, "throwError"); + exports2.throwError = throwError; + } +}); + +// node_modules/rxjs/dist/cjs/internal/Notification.js +var require_Notification = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/Notification.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.observeNotification = exports2.Notification = exports2.NotificationKind = void 0; + var empty_1 = require_empty(); + var of_1 = require_of(); + var throwError_1 = require_throwError(); + var isFunction_1 = require_isFunction(); + var NotificationKind; + (function(NotificationKind2) { + NotificationKind2["NEXT"] = "N"; + NotificationKind2["ERROR"] = "E"; + NotificationKind2["COMPLETE"] = "C"; + })(NotificationKind = exports2.NotificationKind || (exports2.NotificationKind = {})); + var Notification = (function() { + function Notification2(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === "N"; + } + __name(Notification2, "Notification"); + Notification2.prototype.observe = function(observer) { + return observeNotification(this, observer); + }; + Notification2.prototype.do = function(nextHandler, errorHandler, completeHandler) { + var _a = this, kind = _a.kind, value = _a.value, error = _a.error; + return kind === "N" ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === "E" ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler(); + }; + Notification2.prototype.accept = function(nextOrObserver, error, complete) { + var _a; + return isFunction_1.isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete); + }; + Notification2.prototype.toObservable = function() { + var _a = this, kind = _a.kind, value = _a.value, error = _a.error; + var result = kind === "N" ? of_1.of(value) : kind === "E" ? throwError_1.throwError(function() { + return error; + }) : kind === "C" ? empty_1.EMPTY : 0; + if (!result) { + throw new TypeError("Unexpected notification kind " + kind); + } + return result; + }; + Notification2.createNext = function(value) { + return new Notification2("N", value); + }; + Notification2.createError = function(err) { + return new Notification2("E", void 0, err); + }; + Notification2.createComplete = function() { + return Notification2.completeNotification; + }; + Notification2.completeNotification = new Notification2("C"); + return Notification2; + })(); + exports2.Notification = Notification; + function observeNotification(notification, observer) { + var _a, _b, _c; + var _d = notification, kind = _d.kind, value = _d.value, error = _d.error; + if (typeof kind !== "string") { + throw new TypeError('Invalid notification, missing "kind"'); + } + kind === "N" ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === "E" ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer); + } + __name(observeNotification, "observeNotification"); + exports2.observeNotification = observeNotification; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/dematerialize.js +var require_dematerialize = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/dematerialize.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.dematerialize = void 0; + var Notification_1 = require_Notification(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function dematerialize() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(notification) { + return Notification_1.observeNotification(notification, subscriber); + })); + }); + } + __name(dematerialize, "dematerialize"); + exports2.dematerialize = dematerialize; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/distinct.js +var require_distinct = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/distinct.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.distinct = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var innerFrom_1 = require_innerFrom(); + function distinct(keySelector, flushes) { + return lift_1.operate(function(source, subscriber) { + var distinctKeys = /* @__PURE__ */ new Set(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var key = keySelector ? keySelector(value) : value; + if (!distinctKeys.has(key)) { + distinctKeys.add(key); + subscriber.next(value); + } + })); + flushes && innerFrom_1.innerFrom(flushes).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + return distinctKeys.clear(); + }, noop_1.noop)); + }); + } + __name(distinct, "distinct"); + exports2.distinct = distinct; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/distinctUntilChanged.js +var require_distinctUntilChanged = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/distinctUntilChanged.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.distinctUntilChanged = void 0; + var identity_1 = require_identity(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function distinctUntilChanged(comparator, keySelector) { + if (keySelector === void 0) { + keySelector = identity_1.identity; + } + comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare; + return lift_1.operate(function(source, subscriber) { + var previousKey; + var first = true; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var currentKey = keySelector(value); + if (first || !comparator(previousKey, currentKey)) { + first = false; + previousKey = currentKey; + subscriber.next(value); + } + })); + }); + } + __name(distinctUntilChanged, "distinctUntilChanged"); + exports2.distinctUntilChanged = distinctUntilChanged; + function defaultCompare(a, b) { + return a === b; + } + __name(defaultCompare, "defaultCompare"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/distinctUntilKeyChanged.js +var require_distinctUntilKeyChanged = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/distinctUntilKeyChanged.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.distinctUntilKeyChanged = void 0; + var distinctUntilChanged_1 = require_distinctUntilChanged(); + function distinctUntilKeyChanged(key, compare) { + return distinctUntilChanged_1.distinctUntilChanged(function(x, y) { + return compare ? compare(x[key], y[key]) : x[key] === y[key]; + }); + } + __name(distinctUntilKeyChanged, "distinctUntilKeyChanged"); + exports2.distinctUntilKeyChanged = distinctUntilKeyChanged; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/ArgumentOutOfRangeError.js +var require_ArgumentOutOfRangeError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/ArgumentOutOfRangeError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ArgumentOutOfRangeError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.ArgumentOutOfRangeError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function ArgumentOutOfRangeErrorImpl() { + _super(this); + this.name = "ArgumentOutOfRangeError"; + this.message = "argument out of range"; + }, "ArgumentOutOfRangeErrorImpl"); + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/filter.js +var require_filter2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/filter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.filter = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function filter(predicate, thisArg) { + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return predicate.call(thisArg, value, index++) && subscriber.next(value); + })); + }); + } + __name(filter, "filter"); + exports2.filter = filter; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/EmptyError.js +var require_EmptyError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/EmptyError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.EmptyError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.EmptyError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function EmptyErrorImpl() { + _super(this); + this.name = "EmptyError"; + this.message = "no elements in sequence"; + }, "EmptyErrorImpl"); + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/throwIfEmpty.js +var require_throwIfEmpty = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/throwIfEmpty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.throwIfEmpty = void 0; + var EmptyError_1 = require_EmptyError(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function throwIfEmpty(errorFactory) { + if (errorFactory === void 0) { + errorFactory = defaultErrorFactory; + } + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + subscriber.next(value); + }, function() { + return hasValue ? subscriber.complete() : subscriber.error(errorFactory()); + })); + }); + } + __name(throwIfEmpty, "throwIfEmpty"); + exports2.throwIfEmpty = throwIfEmpty; + function defaultErrorFactory() { + return new EmptyError_1.EmptyError(); + } + __name(defaultErrorFactory, "defaultErrorFactory"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/elementAt.js +var require_elementAt = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/elementAt.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.elementAt = void 0; + var ArgumentOutOfRangeError_1 = require_ArgumentOutOfRangeError(); + var filter_1 = require_filter2(); + var throwIfEmpty_1 = require_throwIfEmpty(); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + var take_1 = require_take(); + function elementAt(index, defaultValue) { + if (index < 0) { + throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); + } + var hasDefaultValue = arguments.length >= 2; + return function(source) { + return source.pipe(filter_1.filter(function(v, i) { + return i === index; + }), take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function() { + return new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); + })); + }; + } + __name(elementAt, "elementAt"); + exports2.elementAt = elementAt; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/endWith.js +var require_endWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/endWith.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.endWith = void 0; + var concat_1 = require_concat3(); + var of_1 = require_of(); + function endWith() { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + return function(source) { + return concat_1.concat(source, of_1.of.apply(void 0, __spreadArray2([], __read2(values)))); + }; + } + __name(endWith, "endWith"); + exports2.endWith = endWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/every.js +var require_every = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/every.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.every = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function every(predicate, thisArg) { + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (!predicate.call(thisArg, value, index++, source)) { + subscriber.next(false); + subscriber.complete(); + } + }, function() { + subscriber.next(true); + subscriber.complete(); + })); + }); + } + __name(every, "every"); + exports2.every = every; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/exhaustMap.js +var require_exhaustMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/exhaustMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exhaustMap = void 0; + var map_1 = require_map2(); + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function exhaustMap(project, resultSelector) { + if (resultSelector) { + return function(source) { + return source.pipe(exhaustMap(function(a, i) { + return innerFrom_1.innerFrom(project(a, i)).pipe(map_1.map(function(b, ii) { + return resultSelector(a, b, i, ii); + })); + })); + }; + } + return lift_1.operate(function(source, subscriber) { + var index = 0; + var innerSub = null; + var isComplete = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(outerValue) { + if (!innerSub) { + innerSub = OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + innerSub = null; + isComplete && subscriber.complete(); + }); + innerFrom_1.innerFrom(project(outerValue, index++)).subscribe(innerSub); + } + }, function() { + isComplete = true; + !innerSub && subscriber.complete(); + })); + }); + } + __name(exhaustMap, "exhaustMap"); + exports2.exhaustMap = exhaustMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/exhaustAll.js +var require_exhaustAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/exhaustAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exhaustAll = void 0; + var exhaustMap_1 = require_exhaustMap(); + var identity_1 = require_identity(); + function exhaustAll() { + return exhaustMap_1.exhaustMap(identity_1.identity); + } + __name(exhaustAll, "exhaustAll"); + exports2.exhaustAll = exhaustAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/exhaust.js +var require_exhaust = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/exhaust.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exhaust = void 0; + var exhaustAll_1 = require_exhaustAll(); + exports2.exhaust = exhaustAll_1.exhaustAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/expand.js +var require_expand = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/expand.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.expand = void 0; + var lift_1 = require_lift(); + var mergeInternals_1 = require_mergeInternals(); + function expand(project, concurrent, scheduler2) { + if (concurrent === void 0) { + concurrent = Infinity; + } + concurrent = (concurrent || 0) < 1 ? Infinity : concurrent; + return lift_1.operate(function(source, subscriber) { + return mergeInternals_1.mergeInternals(source, subscriber, project, concurrent, void 0, true, scheduler2); + }); + } + __name(expand, "expand"); + exports2.expand = expand; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/finalize.js +var require_finalize = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/finalize.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.finalize = void 0; + var lift_1 = require_lift(); + function finalize(callback) { + return lift_1.operate(function(source, subscriber) { + try { + source.subscribe(subscriber); + } finally { + subscriber.add(callback); + } + }); + } + __name(finalize, "finalize"); + exports2.finalize = finalize; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/find.js +var require_find = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/find.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createFind = exports2.find = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function find(predicate, thisArg) { + return lift_1.operate(createFind(predicate, thisArg, "value")); + } + __name(find, "find"); + exports2.find = find; + function createFind(predicate, thisArg, emit) { + var findIndex = emit === "index"; + return function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var i = index++; + if (predicate.call(thisArg, value, i, source)) { + subscriber.next(findIndex ? i : value); + subscriber.complete(); + } + }, function() { + subscriber.next(findIndex ? -1 : void 0); + subscriber.complete(); + })); + }; + } + __name(createFind, "createFind"); + exports2.createFind = createFind; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/findIndex.js +var require_findIndex = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/findIndex.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.findIndex = void 0; + var lift_1 = require_lift(); + var find_1 = require_find(); + function findIndex(predicate, thisArg) { + return lift_1.operate(find_1.createFind(predicate, thisArg, "index")); + } + __name(findIndex, "findIndex"); + exports2.findIndex = findIndex; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/first.js +var require_first = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/first.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.first = void 0; + var EmptyError_1 = require_EmptyError(); + var filter_1 = require_filter2(); + var take_1 = require_take(); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + var throwIfEmpty_1 = require_throwIfEmpty(); + var identity_1 = require_identity(); + function first(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function(source) { + return source.pipe(predicate ? filter_1.filter(function(v, i) { + return predicate(v, i, source); + }) : identity_1.identity, take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function() { + return new EmptyError_1.EmptyError(); + })); + }; + } + __name(first, "first"); + exports2.first = first; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/groupBy.js +var require_groupBy = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/groupBy.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.groupBy = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function groupBy(keySelector, elementOrOptions, duration, connector) { + return lift_1.operate(function(source, subscriber) { + var element; + if (!elementOrOptions || typeof elementOrOptions === "function") { + element = elementOrOptions; + } else { + duration = elementOrOptions.duration, element = elementOrOptions.element, connector = elementOrOptions.connector; + } + var groups = /* @__PURE__ */ new Map(); + var notify = /* @__PURE__ */ __name(function(cb) { + groups.forEach(cb); + cb(subscriber); + }, "notify"); + var handleError = /* @__PURE__ */ __name(function(err) { + return notify(function(consumer) { + return consumer.error(err); + }); + }, "handleError"); + var activeGroups = 0; + var teardownAttempted = false; + var groupBySourceSubscriber = new OperatorSubscriber_1.OperatorSubscriber(subscriber, function(value) { + try { + var key_1 = keySelector(value); + var group_1 = groups.get(key_1); + if (!group_1) { + groups.set(key_1, group_1 = connector ? connector() : new Subject_1.Subject()); + var grouped = createGroupedObservable(key_1, group_1); + subscriber.next(grouped); + if (duration) { + var durationSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(group_1, function() { + group_1.complete(); + durationSubscriber_1 === null || durationSubscriber_1 === void 0 ? void 0 : durationSubscriber_1.unsubscribe(); + }, void 0, void 0, function() { + return groups.delete(key_1); + }); + groupBySourceSubscriber.add(innerFrom_1.innerFrom(duration(grouped)).subscribe(durationSubscriber_1)); + } + } + group_1.next(element ? element(value) : value); + } catch (err) { + handleError(err); + } + }, function() { + return notify(function(consumer) { + return consumer.complete(); + }); + }, handleError, function() { + return groups.clear(); + }, function() { + teardownAttempted = true; + return activeGroups === 0; + }); + source.subscribe(groupBySourceSubscriber); + function createGroupedObservable(key, groupSubject) { + var result = new Observable_1.Observable(function(groupSubscriber) { + activeGroups++; + var innerSub = groupSubject.subscribe(groupSubscriber); + return function() { + innerSub.unsubscribe(); + --activeGroups === 0 && teardownAttempted && groupBySourceSubscriber.unsubscribe(); + }; + }); + result.key = key; + return result; + } + __name(createGroupedObservable, "createGroupedObservable"); + }); + } + __name(groupBy, "groupBy"); + exports2.groupBy = groupBy; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/isEmpty.js +var require_isEmpty2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/isEmpty.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isEmpty = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function isEmpty() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + subscriber.next(false); + subscriber.complete(); + }, function() { + subscriber.next(true); + subscriber.complete(); + })); + }); + } + __name(isEmpty, "isEmpty"); + exports2.isEmpty = isEmpty; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/takeLast.js +var require_takeLast = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/takeLast.js"(exports2) { + "use strict"; + var __values2 = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.takeLast = void 0; + var empty_1 = require_empty(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function takeLast(count) { + return count <= 0 ? function() { + return empty_1.EMPTY; + } : lift_1.operate(function(source, subscriber) { + var buffer = []; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + buffer.push(value); + count < buffer.length && buffer.shift(); + }, function() { + var e_1, _a; + try { + for (var buffer_1 = __values2(buffer), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) { + var value = buffer_1_1.value; + subscriber.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) _a.call(buffer_1); + } finally { + if (e_1) throw e_1.error; + } + } + subscriber.complete(); + }, void 0, function() { + buffer = null; + })); + }); + } + __name(takeLast, "takeLast"); + exports2.takeLast = takeLast; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/last.js +var require_last = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/last.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.last = void 0; + var EmptyError_1 = require_EmptyError(); + var filter_1 = require_filter2(); + var takeLast_1 = require_takeLast(); + var throwIfEmpty_1 = require_throwIfEmpty(); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + var identity_1 = require_identity(); + function last(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function(source) { + return source.pipe(predicate ? filter_1.filter(function(v, i) { + return predicate(v, i, source); + }) : identity_1.identity, takeLast_1.takeLast(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function() { + return new EmptyError_1.EmptyError(); + })); + }; + } + __name(last, "last"); + exports2.last = last; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/materialize.js +var require_materialize = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/materialize.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.materialize = void 0; + var Notification_1 = require_Notification(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function materialize() { + return lift_1.operate(function(source, subscriber) { + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + subscriber.next(Notification_1.Notification.createNext(value)); + }, function() { + subscriber.next(Notification_1.Notification.createComplete()); + subscriber.complete(); + }, function(err) { + subscriber.next(Notification_1.Notification.createError(err)); + subscriber.complete(); + })); + }); + } + __name(materialize, "materialize"); + exports2.materialize = materialize; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/max.js +var require_max2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/max.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.max = void 0; + var reduce_1 = require_reduce(); + var isFunction_1 = require_isFunction(); + function max(comparer) { + return reduce_1.reduce(isFunction_1.isFunction(comparer) ? function(x, y) { + return comparer(x, y) > 0 ? x : y; + } : function(x, y) { + return x > y ? x : y; + }); + } + __name(max, "max"); + exports2.max = max; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/merge.js +var require_merge2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/merge.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.merge = void 0; + var lift_1 = require_lift(); + var mergeAll_1 = require_mergeAll(); + var args_1 = require_args(); + var from_1 = require_from(); + function merge() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler2 = args_1.popScheduler(args); + var concurrent = args_1.popNumber(args, Infinity); + return lift_1.operate(function(source, subscriber) { + mergeAll_1.mergeAll(concurrent)(from_1.from(__spreadArray2([source], __read2(args)), scheduler2)).subscribe(subscriber); + }); + } + __name(merge, "merge"); + exports2.merge = merge; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/flatMap.js +var require_flatMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/flatMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.flatMap = void 0; + var mergeMap_1 = require_mergeMap(); + exports2.flatMap = mergeMap_1.mergeMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeMapTo.js +var require_mergeMapTo = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeMapTo.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeMapTo = void 0; + var mergeMap_1 = require_mergeMap(); + var isFunction_1 = require_isFunction(); + function mergeMapTo(innerObservable, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + if (isFunction_1.isFunction(resultSelector)) { + return mergeMap_1.mergeMap(function() { + return innerObservable; + }, resultSelector, concurrent); + } + if (typeof resultSelector === "number") { + concurrent = resultSelector; + } + return mergeMap_1.mergeMap(function() { + return innerObservable; + }, concurrent); + } + __name(mergeMapTo, "mergeMapTo"); + exports2.mergeMapTo = mergeMapTo; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeScan.js +var require_mergeScan = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeScan.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeScan = void 0; + var lift_1 = require_lift(); + var mergeInternals_1 = require_mergeInternals(); + function mergeScan(accumulator, seed, concurrent) { + if (concurrent === void 0) { + concurrent = Infinity; + } + return lift_1.operate(function(source, subscriber) { + var state = seed; + return mergeInternals_1.mergeInternals(source, subscriber, function(value, index) { + return accumulator(state, value, index); + }, concurrent, function(value) { + state = value; + }, false, void 0, function() { + return state = null; + }); + }); + } + __name(mergeScan, "mergeScan"); + exports2.mergeScan = mergeScan; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/mergeWith.js +var require_mergeWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/mergeWith.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeWith = void 0; + var merge_1 = require_merge2(); + function mergeWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return merge_1.merge.apply(void 0, __spreadArray2([], __read2(otherSources))); + } + __name(mergeWith, "mergeWith"); + exports2.mergeWith = mergeWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/min.js +var require_min = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/min.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.min = void 0; + var reduce_1 = require_reduce(); + var isFunction_1 = require_isFunction(); + function min(comparer) { + return reduce_1.reduce(isFunction_1.isFunction(comparer) ? function(x, y) { + return comparer(x, y) < 0 ? x : y; + } : function(x, y) { + return x < y ? x : y; + }); + } + __name(min, "min"); + exports2.min = min; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/refCount.js +var require_refCount = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/refCount.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.refCount = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function refCount() { + return lift_1.operate(function(source, subscriber) { + var connection = null; + source._refCount++; + var refCounter = OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, void 0, void 0, function() { + if (!source || source._refCount <= 0 || 0 < --source._refCount) { + connection = null; + return; + } + var sharedConnection = source._connection; + var conn = connection; + connection = null; + if (sharedConnection && (!conn || sharedConnection === conn)) { + sharedConnection.unsubscribe(); + } + subscriber.unsubscribe(); + }); + source.subscribe(refCounter); + if (!refCounter.closed) { + connection = source.connect(); + } + }); + } + __name(refCount, "refCount"); + exports2.refCount = refCount; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/ConnectableObservable.js +var require_ConnectableObservable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/ConnectableObservable.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConnectableObservable = void 0; + var Observable_1 = require_Observable(); + var Subscription_1 = require_Subscription(); + var refCount_1 = require_refCount(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var lift_1 = require_lift(); + var ConnectableObservable = (function(_super) { + __extends2(ConnectableObservable2, _super); + function ConnectableObservable2(source, subjectFactory) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subjectFactory = subjectFactory; + _this._subject = null; + _this._refCount = 0; + _this._connection = null; + if (lift_1.hasLift(source)) { + _this.lift = source.lift; + } + return _this; + } + __name(ConnectableObservable2, "ConnectableObservable"); + ConnectableObservable2.prototype._subscribe = function(subscriber) { + return this.getSubject().subscribe(subscriber); + }; + ConnectableObservable2.prototype.getSubject = function() { + var subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + }; + ConnectableObservable2.prototype._teardown = function() { + this._refCount = 0; + var _connection = this._connection; + this._subject = this._connection = null; + _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe(); + }; + ConnectableObservable2.prototype.connect = function() { + var _this = this; + var connection = this._connection; + if (!connection) { + connection = this._connection = new Subscription_1.Subscription(); + var subject_1 = this.getSubject(); + connection.add(this.source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subject_1, void 0, function() { + _this._teardown(); + subject_1.complete(); + }, function(err) { + _this._teardown(); + subject_1.error(err); + }, function() { + return _this._teardown(); + }))); + if (connection.closed) { + this._connection = null; + connection = Subscription_1.Subscription.EMPTY; + } + } + return connection; + }; + ConnectableObservable2.prototype.refCount = function() { + return refCount_1.refCount()(this); + }; + return ConnectableObservable2; + })(Observable_1.Observable); + exports2.ConnectableObservable = ConnectableObservable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/multicast.js +var require_multicast = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/multicast.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.multicast = void 0; + var ConnectableObservable_1 = require_ConnectableObservable(); + var isFunction_1 = require_isFunction(); + var connect_1 = require_connect(); + function multicast(subjectOrSubjectFactory, selector) { + var subjectFactory = isFunction_1.isFunction(subjectOrSubjectFactory) ? subjectOrSubjectFactory : function() { + return subjectOrSubjectFactory; + }; + if (isFunction_1.isFunction(selector)) { + return connect_1.connect(selector, { + connector: subjectFactory + }); + } + return function(source) { + return new ConnectableObservable_1.ConnectableObservable(source, subjectFactory); + }; + } + __name(multicast, "multicast"); + exports2.multicast = multicast; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/onErrorResumeNext.js +var require_onErrorResumeNext = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/onErrorResumeNext.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.onErrorResumeNext = void 0; + var Observable_1 = require_Observable(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var innerFrom_1 = require_innerFrom(); + function onErrorResumeNext() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + var nextSources = argsOrArgArray_1.argsOrArgArray(sources); + return new Observable_1.Observable(function(subscriber) { + var sourceIndex = 0; + var subscribeNext = /* @__PURE__ */ __name(function() { + if (sourceIndex < nextSources.length) { + var nextSource = void 0; + try { + nextSource = innerFrom_1.innerFrom(nextSources[sourceIndex++]); + } catch (err) { + subscribeNext(); + return; + } + var innerSubscriber = new OperatorSubscriber_1.OperatorSubscriber(subscriber, void 0, noop_1.noop, noop_1.noop); + nextSource.subscribe(innerSubscriber); + innerSubscriber.add(subscribeNext); + } else { + subscriber.complete(); + } + }, "subscribeNext"); + subscribeNext(); + }); + } + __name(onErrorResumeNext, "onErrorResumeNext"); + exports2.onErrorResumeNext = onErrorResumeNext; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/onErrorResumeNextWith.js +var require_onErrorResumeNextWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/onErrorResumeNextWith.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.onErrorResumeNext = exports2.onErrorResumeNextWith = void 0; + var argsOrArgArray_1 = require_argsOrArgArray(); + var onErrorResumeNext_1 = require_onErrorResumeNext(); + function onErrorResumeNextWith() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + var nextSources = argsOrArgArray_1.argsOrArgArray(sources); + return function(source) { + return onErrorResumeNext_1.onErrorResumeNext.apply(void 0, __spreadArray2([source], __read2(nextSources))); + }; + } + __name(onErrorResumeNextWith, "onErrorResumeNextWith"); + exports2.onErrorResumeNextWith = onErrorResumeNextWith; + exports2.onErrorResumeNext = onErrorResumeNextWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/pairwise.js +var require_pairwise = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/pairwise.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.pairwise = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function pairwise() { + return lift_1.operate(function(source, subscriber) { + var prev; + var hasPrev = false; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var p = prev; + prev = value; + hasPrev && subscriber.next([p, value]); + hasPrev = true; + })); + }); + } + __name(pairwise, "pairwise"); + exports2.pairwise = pairwise; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/not.js +var require_not = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/not.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.not = void 0; + function not(pred, thisArg) { + return function(value, index) { + return !pred.call(thisArg, value, index); + }; + } + __name(not, "not"); + exports2.not = not; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/partition.js +var require_partition = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/partition.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.partition = void 0; + var not_1 = require_not(); + var filter_1 = require_filter2(); + function partition(predicate, thisArg) { + return function(source) { + return [filter_1.filter(predicate, thisArg)(source), filter_1.filter(not_1.not(predicate, thisArg))(source)]; + }; + } + __name(partition, "partition"); + exports2.partition = partition; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/pluck.js +var require_pluck = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/pluck.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.pluck = void 0; + var map_1 = require_map2(); + function pluck() { + var properties = []; + for (var _i = 0; _i < arguments.length; _i++) { + properties[_i] = arguments[_i]; + } + var length = properties.length; + if (length === 0) { + throw new Error("list of properties cannot be empty."); + } + return map_1.map(function(x) { + var currentProp = x; + for (var i = 0; i < length; i++) { + var p = currentProp === null || currentProp === void 0 ? void 0 : currentProp[properties[i]]; + if (typeof p !== "undefined") { + currentProp = p; + } else { + return void 0; + } + } + return currentProp; + }); + } + __name(pluck, "pluck"); + exports2.pluck = pluck; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/publish.js +var require_publish = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/publish.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.publish = void 0; + var Subject_1 = require_Subject(); + var multicast_1 = require_multicast(); + var connect_1 = require_connect(); + function publish(selector) { + return selector ? function(source) { + return connect_1.connect(selector)(source); + } : function(source) { + return multicast_1.multicast(new Subject_1.Subject())(source); + }; + } + __name(publish, "publish"); + exports2.publish = publish; + } +}); + +// node_modules/rxjs/dist/cjs/internal/BehaviorSubject.js +var require_BehaviorSubject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/BehaviorSubject.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BehaviorSubject = void 0; + var Subject_1 = require_Subject(); + var BehaviorSubject = (function(_super) { + __extends2(BehaviorSubject2, _super); + function BehaviorSubject2(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + __name(BehaviorSubject2, "BehaviorSubject"); + Object.defineProperty(BehaviorSubject2.prototype, "value", { + get: /* @__PURE__ */ __name(function() { + return this.getValue(); + }, "get"), + enumerable: false, + configurable: true + }); + BehaviorSubject2.prototype._subscribe = function(subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + !subscription.closed && subscriber.next(this._value); + return subscription; + }; + BehaviorSubject2.prototype.getValue = function() { + var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; + if (hasError) { + throw thrownError; + } + this._throwIfClosed(); + return _value; + }; + BehaviorSubject2.prototype.next = function(value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject2; + })(Subject_1.Subject); + exports2.BehaviorSubject = BehaviorSubject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/publishBehavior.js +var require_publishBehavior = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/publishBehavior.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.publishBehavior = void 0; + var BehaviorSubject_1 = require_BehaviorSubject(); + var ConnectableObservable_1 = require_ConnectableObservable(); + function publishBehavior(initialValue) { + return function(source) { + var subject = new BehaviorSubject_1.BehaviorSubject(initialValue); + return new ConnectableObservable_1.ConnectableObservable(source, function() { + return subject; + }); + }; + } + __name(publishBehavior, "publishBehavior"); + exports2.publishBehavior = publishBehavior; + } +}); + +// node_modules/rxjs/dist/cjs/internal/AsyncSubject.js +var require_AsyncSubject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/AsyncSubject.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsyncSubject = void 0; + var Subject_1 = require_Subject(); + var AsyncSubject = (function(_super) { + __extends2(AsyncSubject2, _super); + function AsyncSubject2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._value = null; + _this._hasValue = false; + _this._isComplete = false; + return _this; + } + __name(AsyncSubject2, "AsyncSubject"); + AsyncSubject2.prototype._checkFinalizedStatuses = function(subscriber) { + var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete; + if (hasError) { + subscriber.error(thrownError); + } else if (isStopped || _isComplete) { + _hasValue && subscriber.next(_value); + subscriber.complete(); + } + }; + AsyncSubject2.prototype.next = function(value) { + if (!this.isStopped) { + this._value = value; + this._hasValue = true; + } + }; + AsyncSubject2.prototype.complete = function() { + var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete; + if (!_isComplete) { + this._isComplete = true; + _hasValue && _super.prototype.next.call(this, _value); + _super.prototype.complete.call(this); + } + }; + return AsyncSubject2; + })(Subject_1.Subject); + exports2.AsyncSubject = AsyncSubject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/publishLast.js +var require_publishLast = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/publishLast.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.publishLast = void 0; + var AsyncSubject_1 = require_AsyncSubject(); + var ConnectableObservable_1 = require_ConnectableObservable(); + function publishLast() { + return function(source) { + var subject = new AsyncSubject_1.AsyncSubject(); + return new ConnectableObservable_1.ConnectableObservable(source, function() { + return subject; + }); + }; + } + __name(publishLast, "publishLast"); + exports2.publishLast = publishLast; + } +}); + +// node_modules/rxjs/dist/cjs/internal/ReplaySubject.js +var require_ReplaySubject = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/ReplaySubject.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ReplaySubject = void 0; + var Subject_1 = require_Subject(); + var dateTimestampProvider_1 = require_dateTimestampProvider(); + var ReplaySubject = (function(_super) { + __extends2(ReplaySubject2, _super); + function ReplaySubject2(_bufferSize, _windowTime, _timestampProvider) { + if (_bufferSize === void 0) { + _bufferSize = Infinity; + } + if (_windowTime === void 0) { + _windowTime = Infinity; + } + if (_timestampProvider === void 0) { + _timestampProvider = dateTimestampProvider_1.dateTimestampProvider; + } + var _this = _super.call(this) || this; + _this._bufferSize = _bufferSize; + _this._windowTime = _windowTime; + _this._timestampProvider = _timestampProvider; + _this._buffer = []; + _this._infiniteTimeWindow = true; + _this._infiniteTimeWindow = _windowTime === Infinity; + _this._bufferSize = Math.max(1, _bufferSize); + _this._windowTime = Math.max(1, _windowTime); + return _this; + } + __name(ReplaySubject2, "ReplaySubject"); + ReplaySubject2.prototype.next = function(value) { + var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime; + if (!isStopped) { + _buffer.push(value); + !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); + } + this._trimBuffer(); + _super.prototype.next.call(this, value); + }; + ReplaySubject2.prototype._subscribe = function(subscriber) { + this._throwIfClosed(); + this._trimBuffer(); + var subscription = this._innerSubscribe(subscriber); + var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer; + var copy = _buffer.slice(); + for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { + subscriber.next(copy[i]); + } + this._checkFinalizedStatuses(subscriber); + return subscription; + }; + ReplaySubject2.prototype._trimBuffer = function() { + var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow; + var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; + _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); + if (!_infiniteTimeWindow) { + var now = _timestampProvider.now(); + var last = 0; + for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) { + last = i; + } + last && _buffer.splice(0, last + 1); + } + }; + return ReplaySubject2; + })(Subject_1.Subject); + exports2.ReplaySubject = ReplaySubject; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/publishReplay.js +var require_publishReplay = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/publishReplay.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.publishReplay = void 0; + var ReplaySubject_1 = require_ReplaySubject(); + var multicast_1 = require_multicast(); + var isFunction_1 = require_isFunction(); + function publishReplay(bufferSize, windowTime, selectorOrScheduler, timestampProvider) { + if (selectorOrScheduler && !isFunction_1.isFunction(selectorOrScheduler)) { + timestampProvider = selectorOrScheduler; + } + var selector = isFunction_1.isFunction(selectorOrScheduler) ? selectorOrScheduler : void 0; + return function(source) { + return multicast_1.multicast(new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, timestampProvider), selector)(source); + }; + } + __name(publishReplay, "publishReplay"); + exports2.publishReplay = publishReplay; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/race.js +var require_race = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/race.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.raceInit = exports2.race = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function race() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + sources = argsOrArgArray_1.argsOrArgArray(sources); + return sources.length === 1 ? innerFrom_1.innerFrom(sources[0]) : new Observable_1.Observable(raceInit(sources)); + } + __name(race, "race"); + exports2.race = race; + function raceInit(sources) { + return function(subscriber) { + var subscriptions = []; + var _loop_1 = /* @__PURE__ */ __name(function(i2) { + subscriptions.push(innerFrom_1.innerFrom(sources[i2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (subscriptions) { + for (var s = 0; s < subscriptions.length; s++) { + s !== i2 && subscriptions[s].unsubscribe(); + } + subscriptions = null; + } + subscriber.next(value); + }))); + }, "_loop_1"); + for (var i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) { + _loop_1(i); + } + }; + } + __name(raceInit, "raceInit"); + exports2.raceInit = raceInit; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/raceWith.js +var require_raceWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/raceWith.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.raceWith = void 0; + var race_1 = require_race(); + var lift_1 = require_lift(); + var identity_1 = require_identity(); + function raceWith() { + var otherSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherSources[_i] = arguments[_i]; + } + return !otherSources.length ? identity_1.identity : lift_1.operate(function(source, subscriber) { + race_1.raceInit(__spreadArray2([source], __read2(otherSources)))(subscriber); + }); + } + __name(raceWith, "raceWith"); + exports2.raceWith = raceWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/race.js +var require_race2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/race.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.race = void 0; + var argsOrArgArray_1 = require_argsOrArgArray(); + var raceWith_1 = require_raceWith(); + function race() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return raceWith_1.raceWith.apply(void 0, __spreadArray2([], __read2(argsOrArgArray_1.argsOrArgArray(args)))); + } + __name(race, "race"); + exports2.race = race; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/repeat.js +var require_repeat = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/repeat.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.repeat = void 0; + var empty_1 = require_empty(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var timer_1 = require_timer(); + function repeat(countOrConfig) { + var _a; + var count = Infinity; + var delay; + if (countOrConfig != null) { + if (typeof countOrConfig === "object") { + _a = countOrConfig.count, count = _a === void 0 ? Infinity : _a, delay = countOrConfig.delay; + } else { + count = countOrConfig; + } + } + return count <= 0 ? function() { + return empty_1.EMPTY; + } : lift_1.operate(function(source, subscriber) { + var soFar = 0; + var sourceSub; + var resubscribe = /* @__PURE__ */ __name(function() { + sourceSub === null || sourceSub === void 0 ? void 0 : sourceSub.unsubscribe(); + sourceSub = null; + if (delay != null) { + var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(soFar)); + var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + notifierSubscriber_1.unsubscribe(); + subscribeToSource(); + }); + notifier.subscribe(notifierSubscriber_1); + } else { + subscribeToSource(); + } + }, "resubscribe"); + var subscribeToSource = /* @__PURE__ */ __name(function() { + var syncUnsub = false; + sourceSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + if (++soFar < count) { + if (sourceSub) { + resubscribe(); + } else { + syncUnsub = true; + } + } else { + subscriber.complete(); + } + })); + if (syncUnsub) { + resubscribe(); + } + }, "subscribeToSource"); + subscribeToSource(); + }); + } + __name(repeat, "repeat"); + exports2.repeat = repeat; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/repeatWhen.js +var require_repeatWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/repeatWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.repeatWhen = void 0; + var innerFrom_1 = require_innerFrom(); + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function repeatWhen(notifier) { + return lift_1.operate(function(source, subscriber) { + var innerSub; + var syncResub = false; + var completions$; + var isNotifierComplete = false; + var isMainComplete = false; + var checkComplete = /* @__PURE__ */ __name(function() { + return isMainComplete && isNotifierComplete && (subscriber.complete(), true); + }, "checkComplete"); + var getCompletionSubject = /* @__PURE__ */ __name(function() { + if (!completions$) { + completions$ = new Subject_1.Subject(); + innerFrom_1.innerFrom(notifier(completions$)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + if (innerSub) { + subscribeForRepeatWhen(); + } else { + syncResub = true; + } + }, function() { + isNotifierComplete = true; + checkComplete(); + })); + } + return completions$; + }, "getCompletionSubject"); + var subscribeForRepeatWhen = /* @__PURE__ */ __name(function() { + isMainComplete = false; + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, function() { + isMainComplete = true; + !checkComplete() && getCompletionSubject().next(); + })); + if (syncResub) { + innerSub.unsubscribe(); + innerSub = null; + syncResub = false; + subscribeForRepeatWhen(); + } + }, "subscribeForRepeatWhen"); + subscribeForRepeatWhen(); + }); + } + __name(repeatWhen, "repeatWhen"); + exports2.repeatWhen = repeatWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/retry.js +var require_retry = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/retry.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.retry = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var identity_1 = require_identity(); + var timer_1 = require_timer(); + var innerFrom_1 = require_innerFrom(); + function retry(configOrCount) { + if (configOrCount === void 0) { + configOrCount = Infinity; + } + var config; + if (configOrCount && typeof configOrCount === "object") { + config = configOrCount; + } else { + config = { + count: configOrCount + }; + } + var _a = config.count, count = _a === void 0 ? Infinity : _a, delay = config.delay, _b = config.resetOnSuccess, resetOnSuccess = _b === void 0 ? false : _b; + return count <= 0 ? identity_1.identity : lift_1.operate(function(source, subscriber) { + var soFar = 0; + var innerSub; + var subscribeForRetry = /* @__PURE__ */ __name(function() { + var syncUnsub = false; + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (resetOnSuccess) { + soFar = 0; + } + subscriber.next(value); + }, void 0, function(err) { + if (soFar++ < count) { + var resub_1 = /* @__PURE__ */ __name(function() { + if (innerSub) { + innerSub.unsubscribe(); + innerSub = null; + subscribeForRetry(); + } else { + syncUnsub = true; + } + }, "resub_1"); + if (delay != null) { + var notifier = typeof delay === "number" ? timer_1.timer(delay) : innerFrom_1.innerFrom(delay(err, soFar)); + var notifierSubscriber_1 = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + notifierSubscriber_1.unsubscribe(); + resub_1(); + }, function() { + subscriber.complete(); + }); + notifier.subscribe(notifierSubscriber_1); + } else { + resub_1(); + } + } else { + subscriber.error(err); + } + })); + if (syncUnsub) { + innerSub.unsubscribe(); + innerSub = null; + subscribeForRetry(); + } + }, "subscribeForRetry"); + subscribeForRetry(); + }); + } + __name(retry, "retry"); + exports2.retry = retry; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/retryWhen.js +var require_retryWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/retryWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.retryWhen = void 0; + var innerFrom_1 = require_innerFrom(); + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function retryWhen(notifier) { + return lift_1.operate(function(source, subscriber) { + var innerSub; + var syncResub = false; + var errors$; + var subscribeForRetryWhen = /* @__PURE__ */ __name(function() { + innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, void 0, void 0, function(err) { + if (!errors$) { + errors$ = new Subject_1.Subject(); + innerFrom_1.innerFrom(notifier(errors$)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + return innerSub ? subscribeForRetryWhen() : syncResub = true; + })); + } + if (errors$) { + errors$.next(err); + } + })); + if (syncResub) { + innerSub.unsubscribe(); + innerSub = null; + syncResub = false; + subscribeForRetryWhen(); + } + }, "subscribeForRetryWhen"); + subscribeForRetryWhen(); + }); + } + __name(retryWhen, "retryWhen"); + exports2.retryWhen = retryWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/sample.js +var require_sample = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/sample.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sample = void 0; + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var noop_1 = require_noop(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function sample(notifier) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var lastValue = null; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + lastValue = value; + })); + innerFrom_1.innerFrom(notifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + if (hasValue) { + hasValue = false; + var value = lastValue; + lastValue = null; + subscriber.next(value); + } + }, noop_1.noop)); + }); + } + __name(sample, "sample"); + exports2.sample = sample; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/interval.js +var require_interval = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/interval.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.interval = void 0; + var async_1 = require_async(); + var timer_1 = require_timer(); + function interval(period, scheduler2) { + if (period === void 0) { + period = 0; + } + if (scheduler2 === void 0) { + scheduler2 = async_1.asyncScheduler; + } + if (period < 0) { + period = 0; + } + return timer_1.timer(period, period, scheduler2); + } + __name(interval, "interval"); + exports2.interval = interval; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/sampleTime.js +var require_sampleTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/sampleTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sampleTime = void 0; + var async_1 = require_async(); + var sample_1 = require_sample(); + var interval_1 = require_interval(); + function sampleTime(period, scheduler2) { + if (scheduler2 === void 0) { + scheduler2 = async_1.asyncScheduler; + } + return sample_1.sample(interval_1.interval(period, scheduler2)); + } + __name(sampleTime, "sampleTime"); + exports2.sampleTime = sampleTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/scan.js +var require_scan = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/scan.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scan = void 0; + var lift_1 = require_lift(); + var scanInternals_1 = require_scanInternals(); + function scan(accumulator, seed) { + return lift_1.operate(scanInternals_1.scanInternals(accumulator, seed, arguments.length >= 2, true)); + } + __name(scan, "scan"); + exports2.scan = scan; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/sequenceEqual.js +var require_sequenceEqual = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/sequenceEqual.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sequenceEqual = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function sequenceEqual(compareTo, comparator) { + if (comparator === void 0) { + comparator = /* @__PURE__ */ __name(function(a, b) { + return a === b; + }, "comparator"); + } + return lift_1.operate(function(source, subscriber) { + var aState = createState(); + var bState = createState(); + var emit = /* @__PURE__ */ __name(function(isEqual) { + subscriber.next(isEqual); + subscriber.complete(); + }, "emit"); + var createSubscriber = /* @__PURE__ */ __name(function(selfState, otherState) { + var sequenceEqualSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(a) { + var buffer = otherState.buffer, complete = otherState.complete; + if (buffer.length === 0) { + complete ? emit(false) : selfState.buffer.push(a); + } else { + !comparator(a, buffer.shift()) && emit(false); + } + }, function() { + selfState.complete = true; + var complete = otherState.complete, buffer = otherState.buffer; + complete && emit(buffer.length === 0); + sequenceEqualSubscriber === null || sequenceEqualSubscriber === void 0 ? void 0 : sequenceEqualSubscriber.unsubscribe(); + }); + return sequenceEqualSubscriber; + }, "createSubscriber"); + source.subscribe(createSubscriber(aState, bState)); + innerFrom_1.innerFrom(compareTo).subscribe(createSubscriber(bState, aState)); + }); + } + __name(sequenceEqual, "sequenceEqual"); + exports2.sequenceEqual = sequenceEqual; + function createState() { + return { + buffer: [], + complete: false + }; + } + __name(createState, "createState"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/share.js +var require_share = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/share.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.share = void 0; + var innerFrom_1 = require_innerFrom(); + var Subject_1 = require_Subject(); + var Subscriber_1 = require_Subscriber(); + var lift_1 = require_lift(); + function share(options) { + if (options === void 0) { + options = {}; + } + var _a = options.connector, connector = _a === void 0 ? function() { + return new Subject_1.Subject(); + } : _a, _b = options.resetOnError, resetOnError = _b === void 0 ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === void 0 ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === void 0 ? true : _d; + return function(wrapperSource) { + var connection; + var resetConnection; + var subject; + var refCount = 0; + var hasCompleted = false; + var hasErrored = false; + var cancelReset = /* @__PURE__ */ __name(function() { + resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe(); + resetConnection = void 0; + }, "cancelReset"); + var reset = /* @__PURE__ */ __name(function() { + cancelReset(); + connection = subject = void 0; + hasCompleted = hasErrored = false; + }, "reset"); + var resetAndUnsubscribe = /* @__PURE__ */ __name(function() { + var conn = connection; + reset(); + conn === null || conn === void 0 ? void 0 : conn.unsubscribe(); + }, "resetAndUnsubscribe"); + return lift_1.operate(function(source, subscriber) { + refCount++; + if (!hasErrored && !hasCompleted) { + cancelReset(); + } + var dest = subject = subject !== null && subject !== void 0 ? subject : connector(); + subscriber.add(function() { + refCount--; + if (refCount === 0 && !hasErrored && !hasCompleted) { + resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero); + } + }); + dest.subscribe(subscriber); + if (!connection && refCount > 0) { + connection = new Subscriber_1.SafeSubscriber({ + next: /* @__PURE__ */ __name(function(value) { + return dest.next(value); + }, "next"), + error: /* @__PURE__ */ __name(function(err) { + hasErrored = true; + cancelReset(); + resetConnection = handleReset(reset, resetOnError, err); + dest.error(err); + }, "error"), + complete: /* @__PURE__ */ __name(function() { + hasCompleted = true; + cancelReset(); + resetConnection = handleReset(reset, resetOnComplete); + dest.complete(); + }, "complete") + }); + innerFrom_1.innerFrom(source).subscribe(connection); + } + })(wrapperSource); + }; + } + __name(share, "share"); + exports2.share = share; + function handleReset(reset, on) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + if (on === true) { + reset(); + return; + } + if (on === false) { + return; + } + var onSubscriber = new Subscriber_1.SafeSubscriber({ + next: /* @__PURE__ */ __name(function() { + onSubscriber.unsubscribe(); + reset(); + }, "next") + }); + return innerFrom_1.innerFrom(on.apply(void 0, __spreadArray2([], __read2(args)))).subscribe(onSubscriber); + } + __name(handleReset, "handleReset"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/shareReplay.js +var require_shareReplay = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/shareReplay.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.shareReplay = void 0; + var ReplaySubject_1 = require_ReplaySubject(); + var share_1 = require_share(); + function shareReplay(configOrBufferSize, windowTime, scheduler2) { + var _a, _b, _c; + var bufferSize; + var refCount = false; + if (configOrBufferSize && typeof configOrBufferSize === "object") { + _a = configOrBufferSize.bufferSize, bufferSize = _a === void 0 ? Infinity : _a, _b = configOrBufferSize.windowTime, windowTime = _b === void 0 ? Infinity : _b, _c = configOrBufferSize.refCount, refCount = _c === void 0 ? false : _c, scheduler2 = configOrBufferSize.scheduler; + } else { + bufferSize = configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity; + } + return share_1.share({ + connector: /* @__PURE__ */ __name(function() { + return new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler2); + }, "connector"), + resetOnError: true, + resetOnComplete: false, + resetOnRefCountZero: refCount + }); + } + __name(shareReplay, "shareReplay"); + exports2.shareReplay = shareReplay; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/SequenceError.js +var require_SequenceError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/SequenceError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SequenceError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.SequenceError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function SequenceErrorImpl(message) { + _super(this); + this.name = "SequenceError"; + this.message = message; + }, "SequenceErrorImpl"); + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/NotFoundError.js +var require_NotFoundError = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/NotFoundError.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NotFoundError = void 0; + var createErrorClass_1 = require_createErrorClass(); + exports2.NotFoundError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function NotFoundErrorImpl(message) { + _super(this); + this.name = "NotFoundError"; + this.message = message; + }, "NotFoundErrorImpl"); + }); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/single.js +var require_single = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/single.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.single = void 0; + var EmptyError_1 = require_EmptyError(); + var SequenceError_1 = require_SequenceError(); + var NotFoundError_1 = require_NotFoundError(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function single(predicate) { + return lift_1.operate(function(source, subscriber) { + var hasValue = false; + var singleValue; + var seenValue = false; + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + seenValue = true; + if (!predicate || predicate(value, index++, source)) { + hasValue && subscriber.error(new SequenceError_1.SequenceError("Too many matching values")); + hasValue = true; + singleValue = value; + } + }, function() { + if (hasValue) { + subscriber.next(singleValue); + subscriber.complete(); + } else { + subscriber.error(seenValue ? new NotFoundError_1.NotFoundError("No matching values") : new EmptyError_1.EmptyError()); + } + })); + }); + } + __name(single, "single"); + exports2.single = single; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/skip.js +var require_skip = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/skip.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.skip = void 0; + var filter_1 = require_filter2(); + function skip2(count) { + return filter_1.filter(function(_, index) { + return count <= index; + }); + } + __name(skip2, "skip"); + exports2.skip = skip2; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/skipLast.js +var require_skipLast = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/skipLast.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.skipLast = void 0; + var identity_1 = require_identity(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function skipLast(skipCount) { + return skipCount <= 0 ? identity_1.identity : lift_1.operate(function(source, subscriber) { + var ring = new Array(skipCount); + var seen = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var valueIndex = seen++; + if (valueIndex < skipCount) { + ring[valueIndex] = value; + } else { + var index = valueIndex % skipCount; + var oldValue = ring[index]; + ring[index] = value; + subscriber.next(oldValue); + } + })); + return function() { + ring = null; + }; + }); + } + __name(skipLast, "skipLast"); + exports2.skipLast = skipLast; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/skipUntil.js +var require_skipUntil = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/skipUntil.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.skipUntil = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var noop_1 = require_noop(); + function skipUntil(notifier) { + return lift_1.operate(function(source, subscriber) { + var taking = false; + var skipSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + skipSubscriber === null || skipSubscriber === void 0 ? void 0 : skipSubscriber.unsubscribe(); + taking = true; + }, noop_1.noop); + innerFrom_1.innerFrom(notifier).subscribe(skipSubscriber); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return taking && subscriber.next(value); + })); + }); + } + __name(skipUntil, "skipUntil"); + exports2.skipUntil = skipUntil; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/skipWhile.js +var require_skipWhile = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/skipWhile.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.skipWhile = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function skipWhile(predicate) { + return lift_1.operate(function(source, subscriber) { + var taking = false; + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return (taking || (taking = !predicate(value, index++))) && subscriber.next(value); + })); + }); + } + __name(skipWhile, "skipWhile"); + exports2.skipWhile = skipWhile; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/startWith.js +var require_startWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/startWith.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.startWith = void 0; + var concat_1 = require_concat3(); + var args_1 = require_args(); + var lift_1 = require_lift(); + function startWith() { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + var scheduler2 = args_1.popScheduler(values); + return lift_1.operate(function(source, subscriber) { + (scheduler2 ? concat_1.concat(values, source, scheduler2) : concat_1.concat(values, source)).subscribe(subscriber); + }); + } + __name(startWith, "startWith"); + exports2.startWith = startWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/switchMap.js +var require_switchMap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/switchMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.switchMap = void 0; + var innerFrom_1 = require_innerFrom(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function switchMap(project, resultSelector) { + return lift_1.operate(function(source, subscriber) { + var innerSubscriber = null; + var index = 0; + var isComplete = false; + var checkComplete = /* @__PURE__ */ __name(function() { + return isComplete && !innerSubscriber && subscriber.complete(); + }, "checkComplete"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe(); + var innerIndex = 0; + var outerIndex = index++; + innerFrom_1.innerFrom(project(value, outerIndex)).subscribe(innerSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(innerValue) { + return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); + }, function() { + innerSubscriber = null; + checkComplete(); + })); + }, function() { + isComplete = true; + checkComplete(); + })); + }); + } + __name(switchMap, "switchMap"); + exports2.switchMap = switchMap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/switchAll.js +var require_switchAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/switchAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.switchAll = void 0; + var switchMap_1 = require_switchMap(); + var identity_1 = require_identity(); + function switchAll() { + return switchMap_1.switchMap(identity_1.identity); + } + __name(switchAll, "switchAll"); + exports2.switchAll = switchAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/switchMapTo.js +var require_switchMapTo = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/switchMapTo.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.switchMapTo = void 0; + var switchMap_1 = require_switchMap(); + var isFunction_1 = require_isFunction(); + function switchMapTo(innerObservable, resultSelector) { + return isFunction_1.isFunction(resultSelector) ? switchMap_1.switchMap(function() { + return innerObservable; + }, resultSelector) : switchMap_1.switchMap(function() { + return innerObservable; + }); + } + __name(switchMapTo, "switchMapTo"); + exports2.switchMapTo = switchMapTo; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/switchScan.js +var require_switchScan = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/switchScan.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.switchScan = void 0; + var switchMap_1 = require_switchMap(); + var lift_1 = require_lift(); + function switchScan(accumulator, seed) { + return lift_1.operate(function(source, subscriber) { + var state = seed; + switchMap_1.switchMap(function(value, index) { + return accumulator(state, value, index); + }, function(_, innerValue) { + return state = innerValue, innerValue; + })(source).subscribe(subscriber); + return function() { + state = null; + }; + }); + } + __name(switchScan, "switchScan"); + exports2.switchScan = switchScan; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/takeUntil.js +var require_takeUntil = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/takeUntil.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.takeUntil = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var noop_1 = require_noop(); + function takeUntil(notifier) { + return lift_1.operate(function(source, subscriber) { + innerFrom_1.innerFrom(notifier).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + return subscriber.complete(); + }, noop_1.noop)); + !subscriber.closed && source.subscribe(subscriber); + }); + } + __name(takeUntil, "takeUntil"); + exports2.takeUntil = takeUntil; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/takeWhile.js +var require_takeWhile = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/takeWhile.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.takeWhile = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function takeWhile(predicate, inclusive) { + if (inclusive === void 0) { + inclusive = false; + } + return lift_1.operate(function(source, subscriber) { + var index = 0; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var result = predicate(value, index++); + (result || inclusive) && subscriber.next(value); + !result && subscriber.complete(); + })); + }); + } + __name(takeWhile, "takeWhile"); + exports2.takeWhile = takeWhile; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/tap.js +var require_tap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/tap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.tap = void 0; + var isFunction_1 = require_isFunction(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var identity_1 = require_identity(); + function tap(observerOrNext, error, complete) { + var tapObserver = isFunction_1.isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext; + return tapObserver ? lift_1.operate(function(source, subscriber) { + var _a; + (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver); + var isUnsub = true; + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var _a2; + (_a2 = tapObserver.next) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, value); + subscriber.next(value); + }, function() { + var _a2; + isUnsub = false; + (_a2 = tapObserver.complete) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver); + subscriber.complete(); + }, function(err) { + var _a2; + isUnsub = false; + (_a2 = tapObserver.error) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, err); + subscriber.error(err); + }, function() { + var _a2, _b; + if (isUnsub) { + (_a2 = tapObserver.unsubscribe) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver); + } + (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver); + })); + }) : identity_1.identity; + } + __name(tap, "tap"); + exports2.tap = tap; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/throttle.js +var require_throttle = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/throttle.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.throttle = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function throttle(durationSelector, config) { + return lift_1.operate(function(source, subscriber) { + var _a = config !== null && config !== void 0 ? config : {}, _b = _a.leading, leading = _b === void 0 ? true : _b, _c = _a.trailing, trailing = _c === void 0 ? false : _c; + var hasValue = false; + var sendValue = null; + var throttled = null; + var isComplete = false; + var endThrottling = /* @__PURE__ */ __name(function() { + throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe(); + throttled = null; + if (trailing) { + send(); + isComplete && subscriber.complete(); + } + }, "endThrottling"); + var cleanupThrottling = /* @__PURE__ */ __name(function() { + throttled = null; + isComplete && subscriber.complete(); + }, "cleanupThrottling"); + var startThrottle = /* @__PURE__ */ __name(function(value) { + return throttled = innerFrom_1.innerFrom(durationSelector(value)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)); + }, "startThrottle"); + var send = /* @__PURE__ */ __name(function() { + if (hasValue) { + hasValue = false; + var value = sendValue; + sendValue = null; + subscriber.next(value); + !isComplete && startThrottle(value); + } + }, "send"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + hasValue = true; + sendValue = value; + !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value)); + }, function() { + isComplete = true; + !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete(); + })); + }); + } + __name(throttle, "throttle"); + exports2.throttle = throttle; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/throttleTime.js +var require_throttleTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/throttleTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.throttleTime = void 0; + var async_1 = require_async(); + var throttle_1 = require_throttle(); + var timer_1 = require_timer(); + function throttleTime(duration, scheduler2, config) { + if (scheduler2 === void 0) { + scheduler2 = async_1.asyncScheduler; + } + var duration$ = timer_1.timer(duration, scheduler2); + return throttle_1.throttle(function() { + return duration$; + }, config); + } + __name(throttleTime, "throttleTime"); + exports2.throttleTime = throttleTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/timeInterval.js +var require_timeInterval = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/timeInterval.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TimeInterval = exports2.timeInterval = void 0; + var async_1 = require_async(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function timeInterval(scheduler2) { + if (scheduler2 === void 0) { + scheduler2 = async_1.asyncScheduler; + } + return lift_1.operate(function(source, subscriber) { + var last = scheduler2.now(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var now = scheduler2.now(); + var interval = now - last; + last = now; + subscriber.next(new TimeInterval(value, interval)); + })); + }); + } + __name(timeInterval, "timeInterval"); + exports2.timeInterval = timeInterval; + var TimeInterval = /* @__PURE__ */ (function() { + function TimeInterval2(value, interval) { + this.value = value; + this.interval = interval; + } + __name(TimeInterval2, "TimeInterval"); + return TimeInterval2; + })(); + exports2.TimeInterval = TimeInterval; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/timeout.js +var require_timeout = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/timeout.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timeout = exports2.TimeoutError = void 0; + var async_1 = require_async(); + var isDate_1 = require_isDate2(); + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var createErrorClass_1 = require_createErrorClass(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var executeSchedule_1 = require_executeSchedule(); + exports2.TimeoutError = createErrorClass_1.createErrorClass(function(_super) { + return /* @__PURE__ */ __name(function TimeoutErrorImpl(info) { + if (info === void 0) { + info = null; + } + _super(this); + this.message = "Timeout has occurred"; + this.name = "TimeoutError"; + this.info = info; + }, "TimeoutErrorImpl"); + }); + function timeout(config, schedulerArg) { + var _a = isDate_1.isValidDate(config) ? { first: config } : typeof config === "number" ? { each: config } : config, first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler2 = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : async_1.asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d; + if (first == null && each == null) { + throw new TypeError("No timeout provided."); + } + return lift_1.operate(function(source, subscriber) { + var originalSourceSubscription; + var timerSubscription; + var lastValue = null; + var seen = 0; + var startTimer = /* @__PURE__ */ __name(function(delay) { + timerSubscription = executeSchedule_1.executeSchedule(subscriber, scheduler2, function() { + try { + originalSourceSubscription.unsubscribe(); + innerFrom_1.innerFrom(_with({ + meta, + lastValue, + seen + })).subscribe(subscriber); + } catch (err) { + subscriber.error(err); + } + }, delay); + }, "startTimer"); + originalSourceSubscription = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); + seen++; + subscriber.next(lastValue = value); + each > 0 && startTimer(each); + }, void 0, void 0, function() { + if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) { + timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); + } + lastValue = null; + })); + !seen && startTimer(first != null ? typeof first === "number" ? first : +first - scheduler2.now() : each); + }); + } + __name(timeout, "timeout"); + exports2.timeout = timeout; + function timeoutErrorFactory(info) { + throw new exports2.TimeoutError(info); + } + __name(timeoutErrorFactory, "timeoutErrorFactory"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/timeoutWith.js +var require_timeoutWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/timeoutWith.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timeoutWith = void 0; + var async_1 = require_async(); + var isDate_1 = require_isDate2(); + var timeout_1 = require_timeout(); + function timeoutWith(due, withObservable, scheduler2) { + var first; + var each; + var _with; + scheduler2 = scheduler2 !== null && scheduler2 !== void 0 ? scheduler2 : async_1.async; + if (isDate_1.isValidDate(due)) { + first = due; + } else if (typeof due === "number") { + each = due; + } + if (withObservable) { + _with = /* @__PURE__ */ __name(function() { + return withObservable; + }, "_with"); + } else { + throw new TypeError("No observable provided to switch to"); + } + if (first == null && each == null) { + throw new TypeError("No timeout provided."); + } + return timeout_1.timeout({ + first, + each, + scheduler: scheduler2, + with: _with + }); + } + __name(timeoutWith, "timeoutWith"); + exports2.timeoutWith = timeoutWith; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/timestamp.js +var require_timestamp = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/timestamp.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.timestamp = void 0; + var dateTimestampProvider_1 = require_dateTimestampProvider(); + var map_1 = require_map2(); + function timestamp(timestampProvider) { + if (timestampProvider === void 0) { + timestampProvider = dateTimestampProvider_1.dateTimestampProvider; + } + return map_1.map(function(value) { + return { value, timestamp: timestampProvider.now() }; + }); + } + __name(timestamp, "timestamp"); + exports2.timestamp = timestamp; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/window.js +var require_window = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/window.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.window = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var innerFrom_1 = require_innerFrom(); + function window2(windowBoundaries) { + return lift_1.operate(function(source, subscriber) { + var windowSubject = new Subject_1.Subject(); + subscriber.next(windowSubject.asObservable()); + var errorHandler = /* @__PURE__ */ __name(function(err) { + windowSubject.error(err); + subscriber.error(err); + }, "errorHandler"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.next(value); + }, function() { + windowSubject.complete(); + subscriber.complete(); + }, errorHandler)); + innerFrom_1.innerFrom(windowBoundaries).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function() { + windowSubject.complete(); + subscriber.next(windowSubject = new Subject_1.Subject()); + }, noop_1.noop, errorHandler)); + return function() { + windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.unsubscribe(); + windowSubject = null; + }; + }); + } + __name(window2, "window"); + exports2.window = window2; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/windowCount.js +var require_windowCount = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/windowCount.js"(exports2) { + "use strict"; + var __values2 = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.windowCount = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + function windowCount(windowSize, startWindowEvery) { + if (startWindowEvery === void 0) { + startWindowEvery = 0; + } + var startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize; + return lift_1.operate(function(source, subscriber) { + var windows = [new Subject_1.Subject()]; + var starts = []; + var count = 0; + subscriber.next(windows[0].asObservable()); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a; + try { + for (var windows_1 = __values2(windows), windows_1_1 = windows_1.next(); !windows_1_1.done; windows_1_1 = windows_1.next()) { + var window_1 = windows_1_1.value; + window_1.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (windows_1_1 && !windows_1_1.done && (_a = windows_1.return)) _a.call(windows_1); + } finally { + if (e_1) throw e_1.error; + } + } + var c = count - windowSize + 1; + if (c >= 0 && c % startEvery === 0) { + windows.shift().complete(); + } + if (++count % startEvery === 0) { + var window_2 = new Subject_1.Subject(); + windows.push(window_2); + subscriber.next(window_2.asObservable()); + } + }, function() { + while (windows.length > 0) { + windows.shift().complete(); + } + subscriber.complete(); + }, function(err) { + while (windows.length > 0) { + windows.shift().error(err); + } + subscriber.error(err); + }, function() { + starts = null; + windows = null; + })); + }); + } + __name(windowCount, "windowCount"); + exports2.windowCount = windowCount; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/windowTime.js +var require_windowTime = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/windowTime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.windowTime = void 0; + var Subject_1 = require_Subject(); + var async_1 = require_async(); + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var arrRemove_1 = require_arrRemove(); + var args_1 = require_args(); + var executeSchedule_1 = require_executeSchedule(); + function windowTime(windowTimeSpan) { + var _a, _b; + var otherArgs = []; + for (var _i = 1; _i < arguments.length; _i++) { + otherArgs[_i - 1] = arguments[_i]; + } + var scheduler2 = (_a = args_1.popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : async_1.asyncScheduler; + var windowCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null; + var maxWindowSize = otherArgs[1] || Infinity; + return lift_1.operate(function(source, subscriber) { + var windowRecords = []; + var restartOnClose = false; + var closeWindow = /* @__PURE__ */ __name(function(record) { + var window2 = record.window, subs = record.subs; + window2.complete(); + subs.unsubscribe(); + arrRemove_1.arrRemove(windowRecords, record); + restartOnClose && startWindow(); + }, "closeWindow"); + var startWindow = /* @__PURE__ */ __name(function() { + if (windowRecords) { + var subs = new Subscription_1.Subscription(); + subscriber.add(subs); + var window_1 = new Subject_1.Subject(); + var record_1 = { + window: window_1, + subs, + seen: 0 + }; + windowRecords.push(record_1); + subscriber.next(window_1.asObservable()); + executeSchedule_1.executeSchedule(subs, scheduler2, function() { + return closeWindow(record_1); + }, windowTimeSpan); + } + }, "startWindow"); + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + executeSchedule_1.executeSchedule(subscriber, scheduler2, startWindow, windowCreationInterval, true); + } else { + restartOnClose = true; + } + startWindow(); + var loop = /* @__PURE__ */ __name(function(cb) { + return windowRecords.slice().forEach(cb); + }, "loop"); + var terminate = /* @__PURE__ */ __name(function(cb) { + loop(function(_a2) { + var window2 = _a2.window; + return cb(window2); + }); + cb(subscriber); + subscriber.unsubscribe(); + }, "terminate"); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + loop(function(record) { + record.window.next(value); + maxWindowSize <= ++record.seen && closeWindow(record); + }); + }, function() { + return terminate(function(consumer) { + return consumer.complete(); + }); + }, function(err) { + return terminate(function(consumer) { + return consumer.error(err); + }); + })); + return function() { + windowRecords = null; + }; + }); + } + __name(windowTime, "windowTime"); + exports2.windowTime = windowTime; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/windowToggle.js +var require_windowToggle = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/windowToggle.js"(exports2) { + "use strict"; + var __values2 = exports2 && exports2.__values || function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: /* @__PURE__ */ __name(function() { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, "next") + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.windowToggle = void 0; + var Subject_1 = require_Subject(); + var Subscription_1 = require_Subscription(); + var lift_1 = require_lift(); + var innerFrom_1 = require_innerFrom(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var noop_1 = require_noop(); + var arrRemove_1 = require_arrRemove(); + function windowToggle(openings, closingSelector) { + return lift_1.operate(function(source, subscriber) { + var windows = []; + var handleError = /* @__PURE__ */ __name(function(err) { + while (0 < windows.length) { + windows.shift().error(err); + } + subscriber.error(err); + }, "handleError"); + innerFrom_1.innerFrom(openings).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(openValue) { + var window2 = new Subject_1.Subject(); + windows.push(window2); + var closingSubscription = new Subscription_1.Subscription(); + var closeWindow = /* @__PURE__ */ __name(function() { + arrRemove_1.arrRemove(windows, window2); + window2.complete(); + closingSubscription.unsubscribe(); + }, "closeWindow"); + var closingNotifier; + try { + closingNotifier = innerFrom_1.innerFrom(closingSelector(openValue)); + } catch (err) { + handleError(err); + return; + } + subscriber.next(window2.asObservable()); + closingSubscription.add(closingNotifier.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, closeWindow, noop_1.noop, handleError))); + }, noop_1.noop)); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + var e_1, _a; + var windowsCopy = windows.slice(); + try { + for (var windowsCopy_1 = __values2(windowsCopy), windowsCopy_1_1 = windowsCopy_1.next(); !windowsCopy_1_1.done; windowsCopy_1_1 = windowsCopy_1.next()) { + var window_1 = windowsCopy_1_1.value; + window_1.next(value); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a = windowsCopy_1.return)) _a.call(windowsCopy_1); + } finally { + if (e_1) throw e_1.error; + } + } + }, function() { + while (0 < windows.length) { + windows.shift().complete(); + } + subscriber.complete(); + }, handleError, function() { + while (0 < windows.length) { + windows.shift().unsubscribe(); + } + })); + }); + } + __name(windowToggle, "windowToggle"); + exports2.windowToggle = windowToggle; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/windowWhen.js +var require_windowWhen = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/windowWhen.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.windowWhen = void 0; + var Subject_1 = require_Subject(); + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + function windowWhen(closingSelector) { + return lift_1.operate(function(source, subscriber) { + var window2; + var closingSubscriber; + var handleError = /* @__PURE__ */ __name(function(err) { + window2.error(err); + subscriber.error(err); + }, "handleError"); + var openWindow = /* @__PURE__ */ __name(function() { + closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); + window2 === null || window2 === void 0 ? void 0 : window2.complete(); + window2 = new Subject_1.Subject(); + subscriber.next(window2.asObservable()); + var closingNotifier; + try { + closingNotifier = innerFrom_1.innerFrom(closingSelector()); + } catch (err) { + handleError(err); + return; + } + closingNotifier.subscribe(closingSubscriber = OperatorSubscriber_1.createOperatorSubscriber(subscriber, openWindow, openWindow, handleError)); + }, "openWindow"); + openWindow(); + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + return window2.next(value); + }, function() { + window2.complete(); + subscriber.complete(); + }, handleError, function() { + closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); + window2 = null; + })); + }); + } + __name(windowWhen, "windowWhen"); + exports2.windowWhen = windowWhen; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/withLatestFrom.js +var require_withLatestFrom = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/withLatestFrom.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.withLatestFrom = void 0; + var lift_1 = require_lift(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var innerFrom_1 = require_innerFrom(); + var identity_1 = require_identity(); + var noop_1 = require_noop(); + var args_1 = require_args(); + function withLatestFrom() { + var inputs = []; + for (var _i = 0; _i < arguments.length; _i++) { + inputs[_i] = arguments[_i]; + } + var project = args_1.popResultSelector(inputs); + return lift_1.operate(function(source, subscriber) { + var len = inputs.length; + var otherValues = new Array(len); + var hasValue = inputs.map(function() { + return false; + }); + var ready = false; + var _loop_1 = /* @__PURE__ */ __name(function(i2) { + innerFrom_1.innerFrom(inputs[i2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + otherValues[i2] = value; + if (!ready && !hasValue[i2]) { + hasValue[i2] = true; + (ready = hasValue.every(identity_1.identity)) && (hasValue = null); + } + }, noop_1.noop)); + }, "_loop_1"); + for (var i = 0; i < len; i++) { + _loop_1(i); + } + source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (ready) { + var values = __spreadArray2([value], __read2(otherValues)); + subscriber.next(project ? project.apply(void 0, __spreadArray2([], __read2(values))) : values); + } + })); + }); + } + __name(withLatestFrom, "withLatestFrom"); + exports2.withLatestFrom = withLatestFrom; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/zip.js +var require_zip2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/zip.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.zip = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var argsOrArgArray_1 = require_argsOrArgArray(); + var empty_1 = require_empty(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var args_1 = require_args(); + function zip() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var resultSelector = args_1.popResultSelector(args); + var sources = argsOrArgArray_1.argsOrArgArray(args); + return sources.length ? new Observable_1.Observable(function(subscriber) { + var buffers = sources.map(function() { + return []; + }); + var completed = sources.map(function() { + return false; + }); + subscriber.add(function() { + buffers = completed = null; + }); + var _loop_1 = /* @__PURE__ */ __name(function(sourceIndex2) { + innerFrom_1.innerFrom(sources[sourceIndex2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + buffers[sourceIndex2].push(value); + if (buffers.every(function(buffer) { + return buffer.length; + })) { + var result = buffers.map(function(buffer) { + return buffer.shift(); + }); + subscriber.next(resultSelector ? resultSelector.apply(void 0, __spreadArray2([], __read2(result))) : result); + if (buffers.some(function(buffer, i) { + return !buffer.length && completed[i]; + })) { + subscriber.complete(); + } + } + }, function() { + completed[sourceIndex2] = true; + !buffers[sourceIndex2].length && subscriber.complete(); + })); + }, "_loop_1"); + for (var sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) { + _loop_1(sourceIndex); + } + return function() { + buffers = completed = null; + }; + }) : empty_1.EMPTY; + } + __name(zip, "zip"); + exports2.zip = zip; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/zip.js +var require_zip3 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/zip.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.zip = void 0; + var zip_1 = require_zip2(); + var lift_1 = require_lift(); + function zip() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + return lift_1.operate(function(source, subscriber) { + zip_1.zip.apply(void 0, __spreadArray2([source], __read2(sources))).subscribe(subscriber); + }); + } + __name(zip, "zip"); + exports2.zip = zip; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/zipAll.js +var require_zipAll = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/zipAll.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.zipAll = void 0; + var zip_1 = require_zip2(); + var joinAllInternals_1 = require_joinAllInternals(); + function zipAll(project) { + return joinAllInternals_1.joinAllInternals(zip_1.zip, project); + } + __name(zipAll, "zipAll"); + exports2.zipAll = zipAll; + } +}); + +// node_modules/rxjs/dist/cjs/internal/operators/zipWith.js +var require_zipWith = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/operators/zipWith.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.zipWith = void 0; + var zip_1 = require_zip3(); + function zipWith() { + var otherInputs = []; + for (var _i = 0; _i < arguments.length; _i++) { + otherInputs[_i] = arguments[_i]; + } + return zip_1.zip.apply(void 0, __spreadArray2([], __read2(otherInputs))); + } + __name(zipWith, "zipWith"); + exports2.zipWith = zipWith; + } +}); + +// node_modules/rxjs/dist/cjs/operators/index.js +var require_operators = __commonJS({ + "node_modules/rxjs/dist/cjs/operators/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeAll = exports2.merge = exports2.max = exports2.materialize = exports2.mapTo = exports2.map = exports2.last = exports2.isEmpty = exports2.ignoreElements = exports2.groupBy = exports2.first = exports2.findIndex = exports2.find = exports2.finalize = exports2.filter = exports2.expand = exports2.exhaustMap = exports2.exhaustAll = exports2.exhaust = exports2.every = exports2.endWith = exports2.elementAt = exports2.distinctUntilKeyChanged = exports2.distinctUntilChanged = exports2.distinct = exports2.dematerialize = exports2.delayWhen = exports2.delay = exports2.defaultIfEmpty = exports2.debounceTime = exports2.debounce = exports2.count = exports2.connect = exports2.concatWith = exports2.concatMapTo = exports2.concatMap = exports2.concatAll = exports2.concat = exports2.combineLatestWith = exports2.combineLatest = exports2.combineLatestAll = exports2.combineAll = exports2.catchError = exports2.bufferWhen = exports2.bufferToggle = exports2.bufferTime = exports2.bufferCount = exports2.buffer = exports2.auditTime = exports2.audit = void 0; + exports2.timeInterval = exports2.throwIfEmpty = exports2.throttleTime = exports2.throttle = exports2.tap = exports2.takeWhile = exports2.takeUntil = exports2.takeLast = exports2.take = exports2.switchScan = exports2.switchMapTo = exports2.switchMap = exports2.switchAll = exports2.subscribeOn = exports2.startWith = exports2.skipWhile = exports2.skipUntil = exports2.skipLast = exports2.skip = exports2.single = exports2.shareReplay = exports2.share = exports2.sequenceEqual = exports2.scan = exports2.sampleTime = exports2.sample = exports2.refCount = exports2.retryWhen = exports2.retry = exports2.repeatWhen = exports2.repeat = exports2.reduce = exports2.raceWith = exports2.race = exports2.publishReplay = exports2.publishLast = exports2.publishBehavior = exports2.publish = exports2.pluck = exports2.partition = exports2.pairwise = exports2.onErrorResumeNext = exports2.observeOn = exports2.multicast = exports2.min = exports2.mergeWith = exports2.mergeScan = exports2.mergeMapTo = exports2.mergeMap = exports2.flatMap = void 0; + exports2.zipWith = exports2.zipAll = exports2.zip = exports2.withLatestFrom = exports2.windowWhen = exports2.windowToggle = exports2.windowTime = exports2.windowCount = exports2.window = exports2.toArray = exports2.timestamp = exports2.timeoutWith = exports2.timeout = void 0; + var audit_1 = require_audit(); + Object.defineProperty(exports2, "audit", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return audit_1.audit; + }, "get") }); + var auditTime_1 = require_auditTime(); + Object.defineProperty(exports2, "auditTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return auditTime_1.auditTime; + }, "get") }); + var buffer_1 = require_buffer(); + Object.defineProperty(exports2, "buffer", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return buffer_1.buffer; + }, "get") }); + var bufferCount_1 = require_bufferCount(); + Object.defineProperty(exports2, "bufferCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferCount_1.bufferCount; + }, "get") }); + var bufferTime_1 = require_bufferTime(); + Object.defineProperty(exports2, "bufferTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferTime_1.bufferTime; + }, "get") }); + var bufferToggle_1 = require_bufferToggle(); + Object.defineProperty(exports2, "bufferToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferToggle_1.bufferToggle; + }, "get") }); + var bufferWhen_1 = require_bufferWhen(); + Object.defineProperty(exports2, "bufferWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferWhen_1.bufferWhen; + }, "get") }); + var catchError_1 = require_catchError(); + Object.defineProperty(exports2, "catchError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return catchError_1.catchError; + }, "get") }); + var combineAll_1 = require_combineAll(); + Object.defineProperty(exports2, "combineAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineAll_1.combineAll; + }, "get") }); + var combineLatestAll_1 = require_combineLatestAll(); + Object.defineProperty(exports2, "combineLatestAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatestAll_1.combineLatestAll; + }, "get") }); + var combineLatest_1 = require_combineLatest2(); + Object.defineProperty(exports2, "combineLatest", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatest_1.combineLatest; + }, "get") }); + var combineLatestWith_1 = require_combineLatestWith(); + Object.defineProperty(exports2, "combineLatestWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatestWith_1.combineLatestWith; + }, "get") }); + var concat_1 = require_concat2(); + Object.defineProperty(exports2, "concat", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concat_1.concat; + }, "get") }); + var concatAll_1 = require_concatAll(); + Object.defineProperty(exports2, "concatAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatAll_1.concatAll; + }, "get") }); + var concatMap_1 = require_concatMap(); + Object.defineProperty(exports2, "concatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatMap_1.concatMap; + }, "get") }); + var concatMapTo_1 = require_concatMapTo(); + Object.defineProperty(exports2, "concatMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatMapTo_1.concatMapTo; + }, "get") }); + var concatWith_1 = require_concatWith(); + Object.defineProperty(exports2, "concatWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatWith_1.concatWith; + }, "get") }); + var connect_1 = require_connect(); + Object.defineProperty(exports2, "connect", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return connect_1.connect; + }, "get") }); + var count_1 = require_count(); + Object.defineProperty(exports2, "count", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return count_1.count; + }, "get") }); + var debounce_1 = require_debounce(); + Object.defineProperty(exports2, "debounce", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return debounce_1.debounce; + }, "get") }); + var debounceTime_1 = require_debounceTime(); + Object.defineProperty(exports2, "debounceTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return debounceTime_1.debounceTime; + }, "get") }); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + Object.defineProperty(exports2, "defaultIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return defaultIfEmpty_1.defaultIfEmpty; + }, "get") }); + var delay_1 = require_delay(); + Object.defineProperty(exports2, "delay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return delay_1.delay; + }, "get") }); + var delayWhen_1 = require_delayWhen(); + Object.defineProperty(exports2, "delayWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return delayWhen_1.delayWhen; + }, "get") }); + var dematerialize_1 = require_dematerialize(); + Object.defineProperty(exports2, "dematerialize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return dematerialize_1.dematerialize; + }, "get") }); + var distinct_1 = require_distinct(); + Object.defineProperty(exports2, "distinct", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinct_1.distinct; + }, "get") }); + var distinctUntilChanged_1 = require_distinctUntilChanged(); + Object.defineProperty(exports2, "distinctUntilChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinctUntilChanged_1.distinctUntilChanged; + }, "get") }); + var distinctUntilKeyChanged_1 = require_distinctUntilKeyChanged(); + Object.defineProperty(exports2, "distinctUntilKeyChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinctUntilKeyChanged_1.distinctUntilKeyChanged; + }, "get") }); + var elementAt_1 = require_elementAt(); + Object.defineProperty(exports2, "elementAt", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return elementAt_1.elementAt; + }, "get") }); + var endWith_1 = require_endWith(); + Object.defineProperty(exports2, "endWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return endWith_1.endWith; + }, "get") }); + var every_1 = require_every(); + Object.defineProperty(exports2, "every", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return every_1.every; + }, "get") }); + var exhaust_1 = require_exhaust(); + Object.defineProperty(exports2, "exhaust", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaust_1.exhaust; + }, "get") }); + var exhaustAll_1 = require_exhaustAll(); + Object.defineProperty(exports2, "exhaustAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaustAll_1.exhaustAll; + }, "get") }); + var exhaustMap_1 = require_exhaustMap(); + Object.defineProperty(exports2, "exhaustMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaustMap_1.exhaustMap; + }, "get") }); + var expand_1 = require_expand(); + Object.defineProperty(exports2, "expand", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return expand_1.expand; + }, "get") }); + var filter_1 = require_filter2(); + Object.defineProperty(exports2, "filter", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return filter_1.filter; + }, "get") }); + var finalize_1 = require_finalize(); + Object.defineProperty(exports2, "finalize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return finalize_1.finalize; + }, "get") }); + var find_1 = require_find(); + Object.defineProperty(exports2, "find", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return find_1.find; + }, "get") }); + var findIndex_1 = require_findIndex(); + Object.defineProperty(exports2, "findIndex", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return findIndex_1.findIndex; + }, "get") }); + var first_1 = require_first(); + Object.defineProperty(exports2, "first", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return first_1.first; + }, "get") }); + var groupBy_1 = require_groupBy(); + Object.defineProperty(exports2, "groupBy", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return groupBy_1.groupBy; + }, "get") }); + var ignoreElements_1 = require_ignoreElements(); + Object.defineProperty(exports2, "ignoreElements", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ignoreElements_1.ignoreElements; + }, "get") }); + var isEmpty_1 = require_isEmpty2(); + Object.defineProperty(exports2, "isEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return isEmpty_1.isEmpty; + }, "get") }); + var last_1 = require_last(); + Object.defineProperty(exports2, "last", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return last_1.last; + }, "get") }); + var map_1 = require_map2(); + Object.defineProperty(exports2, "map", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return map_1.map; + }, "get") }); + var mapTo_1 = require_mapTo(); + Object.defineProperty(exports2, "mapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mapTo_1.mapTo; + }, "get") }); + var materialize_1 = require_materialize(); + Object.defineProperty(exports2, "materialize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return materialize_1.materialize; + }, "get") }); + var max_1 = require_max2(); + Object.defineProperty(exports2, "max", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return max_1.max; + }, "get") }); + var merge_1 = require_merge2(); + Object.defineProperty(exports2, "merge", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return merge_1.merge; + }, "get") }); + var mergeAll_1 = require_mergeAll(); + Object.defineProperty(exports2, "mergeAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeAll_1.mergeAll; + }, "get") }); + var flatMap_1 = require_flatMap(); + Object.defineProperty(exports2, "flatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return flatMap_1.flatMap; + }, "get") }); + var mergeMap_1 = require_mergeMap(); + Object.defineProperty(exports2, "mergeMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeMap_1.mergeMap; + }, "get") }); + var mergeMapTo_1 = require_mergeMapTo(); + Object.defineProperty(exports2, "mergeMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeMapTo_1.mergeMapTo; + }, "get") }); + var mergeScan_1 = require_mergeScan(); + Object.defineProperty(exports2, "mergeScan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeScan_1.mergeScan; + }, "get") }); + var mergeWith_1 = require_mergeWith(); + Object.defineProperty(exports2, "mergeWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeWith_1.mergeWith; + }, "get") }); + var min_1 = require_min(); + Object.defineProperty(exports2, "min", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return min_1.min; + }, "get") }); + var multicast_1 = require_multicast(); + Object.defineProperty(exports2, "multicast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return multicast_1.multicast; + }, "get") }); + var observeOn_1 = require_observeOn(); + Object.defineProperty(exports2, "observeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return observeOn_1.observeOn; + }, "get") }); + var onErrorResumeNextWith_1 = require_onErrorResumeNextWith(); + Object.defineProperty(exports2, "onErrorResumeNext", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return onErrorResumeNextWith_1.onErrorResumeNext; + }, "get") }); + var pairwise_1 = require_pairwise(); + Object.defineProperty(exports2, "pairwise", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pairwise_1.pairwise; + }, "get") }); + var partition_1 = require_partition(); + Object.defineProperty(exports2, "partition", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return partition_1.partition; + }, "get") }); + var pluck_1 = require_pluck(); + Object.defineProperty(exports2, "pluck", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pluck_1.pluck; + }, "get") }); + var publish_1 = require_publish(); + Object.defineProperty(exports2, "publish", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publish_1.publish; + }, "get") }); + var publishBehavior_1 = require_publishBehavior(); + Object.defineProperty(exports2, "publishBehavior", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishBehavior_1.publishBehavior; + }, "get") }); + var publishLast_1 = require_publishLast(); + Object.defineProperty(exports2, "publishLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishLast_1.publishLast; + }, "get") }); + var publishReplay_1 = require_publishReplay(); + Object.defineProperty(exports2, "publishReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishReplay_1.publishReplay; + }, "get") }); + var race_1 = require_race2(); + Object.defineProperty(exports2, "race", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return race_1.race; + }, "get") }); + var raceWith_1 = require_raceWith(); + Object.defineProperty(exports2, "raceWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return raceWith_1.raceWith; + }, "get") }); + var reduce_1 = require_reduce(); + Object.defineProperty(exports2, "reduce", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return reduce_1.reduce; + }, "get") }); + var repeat_1 = require_repeat(); + Object.defineProperty(exports2, "repeat", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return repeat_1.repeat; + }, "get") }); + var repeatWhen_1 = require_repeatWhen(); + Object.defineProperty(exports2, "repeatWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return repeatWhen_1.repeatWhen; + }, "get") }); + var retry_1 = require_retry(); + Object.defineProperty(exports2, "retry", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return retry_1.retry; + }, "get") }); + var retryWhen_1 = require_retryWhen(); + Object.defineProperty(exports2, "retryWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return retryWhen_1.retryWhen; + }, "get") }); + var refCount_1 = require_refCount(); + Object.defineProperty(exports2, "refCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return refCount_1.refCount; + }, "get") }); + var sample_1 = require_sample(); + Object.defineProperty(exports2, "sample", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sample_1.sample; + }, "get") }); + var sampleTime_1 = require_sampleTime(); + Object.defineProperty(exports2, "sampleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sampleTime_1.sampleTime; + }, "get") }); + var scan_1 = require_scan(); + Object.defineProperty(exports2, "scan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return scan_1.scan; + }, "get") }); + var sequenceEqual_1 = require_sequenceEqual(); + Object.defineProperty(exports2, "sequenceEqual", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sequenceEqual_1.sequenceEqual; + }, "get") }); + var share_1 = require_share(); + Object.defineProperty(exports2, "share", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return share_1.share; + }, "get") }); + var shareReplay_1 = require_shareReplay(); + Object.defineProperty(exports2, "shareReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return shareReplay_1.shareReplay; + }, "get") }); + var single_1 = require_single(); + Object.defineProperty(exports2, "single", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return single_1.single; + }, "get") }); + var skip_1 = require_skip(); + Object.defineProperty(exports2, "skip", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skip_1.skip; + }, "get") }); + var skipLast_1 = require_skipLast(); + Object.defineProperty(exports2, "skipLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipLast_1.skipLast; + }, "get") }); + var skipUntil_1 = require_skipUntil(); + Object.defineProperty(exports2, "skipUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipUntil_1.skipUntil; + }, "get") }); + var skipWhile_1 = require_skipWhile(); + Object.defineProperty(exports2, "skipWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipWhile_1.skipWhile; + }, "get") }); + var startWith_1 = require_startWith(); + Object.defineProperty(exports2, "startWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return startWith_1.startWith; + }, "get") }); + var subscribeOn_1 = require_subscribeOn(); + Object.defineProperty(exports2, "subscribeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return subscribeOn_1.subscribeOn; + }, "get") }); + var switchAll_1 = require_switchAll(); + Object.defineProperty(exports2, "switchAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchAll_1.switchAll; + }, "get") }); + var switchMap_1 = require_switchMap(); + Object.defineProperty(exports2, "switchMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchMap_1.switchMap; + }, "get") }); + var switchMapTo_1 = require_switchMapTo(); + Object.defineProperty(exports2, "switchMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchMapTo_1.switchMapTo; + }, "get") }); + var switchScan_1 = require_switchScan(); + Object.defineProperty(exports2, "switchScan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchScan_1.switchScan; + }, "get") }); + var take_1 = require_take(); + Object.defineProperty(exports2, "take", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return take_1.take; + }, "get") }); + var takeLast_1 = require_takeLast(); + Object.defineProperty(exports2, "takeLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeLast_1.takeLast; + }, "get") }); + var takeUntil_1 = require_takeUntil(); + Object.defineProperty(exports2, "takeUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeUntil_1.takeUntil; + }, "get") }); + var takeWhile_1 = require_takeWhile(); + Object.defineProperty(exports2, "takeWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeWhile_1.takeWhile; + }, "get") }); + var tap_1 = require_tap(); + Object.defineProperty(exports2, "tap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return tap_1.tap; + }, "get") }); + var throttle_1 = require_throttle(); + Object.defineProperty(exports2, "throttle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttle_1.throttle; + }, "get") }); + var throttleTime_1 = require_throttleTime(); + Object.defineProperty(exports2, "throttleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttleTime_1.throttleTime; + }, "get") }); + var throwIfEmpty_1 = require_throwIfEmpty(); + Object.defineProperty(exports2, "throwIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throwIfEmpty_1.throwIfEmpty; + }, "get") }); + var timeInterval_1 = require_timeInterval(); + Object.defineProperty(exports2, "timeInterval", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeInterval_1.timeInterval; + }, "get") }); + var timeout_1 = require_timeout(); + Object.defineProperty(exports2, "timeout", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeout_1.timeout; + }, "get") }); + var timeoutWith_1 = require_timeoutWith(); + Object.defineProperty(exports2, "timeoutWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeoutWith_1.timeoutWith; + }, "get") }); + var timestamp_1 = require_timestamp(); + Object.defineProperty(exports2, "timestamp", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timestamp_1.timestamp; + }, "get") }); + var toArray_1 = require_toArray(); + Object.defineProperty(exports2, "toArray", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return toArray_1.toArray; + }, "get") }); + var window_1 = require_window(); + Object.defineProperty(exports2, "window", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return window_1.window; + }, "get") }); + var windowCount_1 = require_windowCount(); + Object.defineProperty(exports2, "windowCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowCount_1.windowCount; + }, "get") }); + var windowTime_1 = require_windowTime(); + Object.defineProperty(exports2, "windowTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowTime_1.windowTime; + }, "get") }); + var windowToggle_1 = require_windowToggle(); + Object.defineProperty(exports2, "windowToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowToggle_1.windowToggle; + }, "get") }); + var windowWhen_1 = require_windowWhen(); + Object.defineProperty(exports2, "windowWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowWhen_1.windowWhen; + }, "get") }); + var withLatestFrom_1 = require_withLatestFrom(); + Object.defineProperty(exports2, "withLatestFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return withLatestFrom_1.withLatestFrom; + }, "get") }); + var zip_1 = require_zip3(); + Object.defineProperty(exports2, "zip", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zip_1.zip; + }, "get") }); + var zipAll_1 = require_zipAll(); + Object.defineProperty(exports2, "zipAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zipAll_1.zipAll; + }, "get") }); + var zipWith_1 = require_zipWith(); + Object.defineProperty(exports2, "zipWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zipWith_1.zipWith; + }, "get") }); + } +}); + +// node_modules/@nestjs/common/serializer/class-serializer.constants.js +var require_class_serializer_constants = __commonJS({ + "node_modules/@nestjs/common/serializer/class-serializer.constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CLASS_SERIALIZER_OPTIONS = void 0; + exports2.CLASS_SERIALIZER_OPTIONS = "class_serializer:options"; + } +}); + +// node_modules/@nestjs/common/serializer/class-serializer.interceptor.js +var require_class_serializer_interceptor = __commonJS({ + "node_modules/@nestjs/common/serializer/class-serializer.interceptor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ClassSerializerInterceptor = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var operators_1 = require_operators(); + var core_12 = require_core(); + var file_stream_1 = require_file_stream(); + var load_package_util_1 = require_load_package_util(); + var shared_utils_1 = require_shared_utils(); + var class_serializer_constants_1 = require_class_serializer_constants(); + var classTransformer = {}; + var REFLECTOR = "Reflector"; + var ClassSerializerInterceptor = class ClassSerializerInterceptor { + static { + __name(this, "ClassSerializerInterceptor"); + } + constructor(reflector, defaultOptions = {}) { + this.reflector = reflector; + this.defaultOptions = defaultOptions; + classTransformer = defaultOptions?.transformerPackage ?? (0, load_package_util_1.loadPackage)("class-transformer", "ClassSerializerInterceptor", () => require_cjs2()); + if (!defaultOptions?.transformerPackage) { + require_cjs2(); + } + } + intercept(context, next) { + const contextOptions = this.getContextOptions(context); + const options = { + ...this.defaultOptions, + ...contextOptions + }; + return next.handle().pipe((0, operators_1.map)((res) => this.serialize(res, options))); + } + /** + * Serializes responses that are non-null objects nor streamable files. + */ + serialize(response, options) { + if (!(0, shared_utils_1.isObject)(response) || response instanceof file_stream_1.StreamableFile) { + return response; + } + return Array.isArray(response) ? response.map((item) => this.transformToPlain(item, options)) : this.transformToPlain(response, options); + } + transformToPlain(plainOrClass, options) { + if (!plainOrClass) { + return plainOrClass; + } + if (!options.type) { + return classTransformer.classToPlain(plainOrClass, options); + } + if (plainOrClass instanceof options.type) { + return classTransformer.classToPlain(plainOrClass, options); + } + const instance = classTransformer.plainToInstance(options.type, plainOrClass, options); + return classTransformer.classToPlain(instance, options); + } + getContextOptions(context) { + return this.reflector.getAllAndOverride(class_serializer_constants_1.CLASS_SERIALIZER_OPTIONS, [ + context.getHandler(), + context.getClass() + ]); + } + }; + exports2.ClassSerializerInterceptor = ClassSerializerInterceptor; + exports2.ClassSerializerInterceptor = ClassSerializerInterceptor = tslib_1.__decorate([ + (0, core_12.Injectable)(), + tslib_1.__param(0, (0, core_12.Inject)(REFLECTOR)), + tslib_1.__param(1, (0, core_12.Optional)()), + tslib_1.__metadata("design:paramtypes", [Object, Object]) + ], ClassSerializerInterceptor); + } +}); + +// node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.js +var require_serialize_options_decorator = __commonJS({ + "node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SerializeOptions = void 0; + var decorators_1 = require_decorators(); + var class_serializer_constants_1 = require_class_serializer_constants(); + var SerializeOptions = /* @__PURE__ */ __name((options) => (0, decorators_1.SetMetadata)(class_serializer_constants_1.CLASS_SERIALIZER_OPTIONS, options), "SerializeOptions"); + exports2.SerializeOptions = SerializeOptions; + } +}); + +// node_modules/@nestjs/common/serializer/decorators/index.js +var require_decorators4 = __commonJS({ + "node_modules/@nestjs/common/serializer/decorators/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_serialize_options_decorator(), exports2); + } +}); + +// node_modules/@nestjs/common/serializer/class-serializer.interfaces.js +var require_class_serializer_interfaces = __commonJS({ + "node_modules/@nestjs/common/serializer/class-serializer.interfaces.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/common/serializer/index.js +var require_serializer = __commonJS({ + "node_modules/@nestjs/common/serializer/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_class_serializer_interceptor(), exports2); + tslib_1.__exportStar(require_decorators4(), exports2); + tslib_1.__exportStar(require_class_serializer_interfaces(), exports2); + } +}); + +// node_modules/@nestjs/common/utils/forward-ref.util.js +var require_forward_ref_util = __commonJS({ + "node_modules/@nestjs/common/utils/forward-ref.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.forwardRef = void 0; + var forwardRef = /* @__PURE__ */ __name((fn) => ({ + forwardRef: fn + }), "forwardRef"); + exports2.forwardRef = forwardRef; + } +}); + +// node_modules/@nestjs/common/utils/index.js +var require_utils6 = __commonJS({ + "node_modules/@nestjs/common/utils/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_forward_ref_util(), exports2); + } +}); + +// node_modules/@nestjs/common/index.js +var require_common = __commonJS({ + "node_modules/@nestjs/common/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.VERSION_NEUTRAL = exports2.Scope = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + require_Reflect(); + tslib_1.__exportStar(require_decorators(), exports2); + tslib_1.__exportStar(require_enums(), exports2); + tslib_1.__exportStar(require_exceptions(), exports2); + tslib_1.__exportStar(require_file_stream(), exports2); + var interfaces_1 = require_interfaces(); + Object.defineProperty(exports2, "Scope", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return interfaces_1.Scope; + }, "get") }); + Object.defineProperty(exports2, "VERSION_NEUTRAL", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return interfaces_1.VERSION_NEUTRAL; + }, "get") }); + tslib_1.__exportStar(require_module_utils(), exports2); + tslib_1.__exportStar(require_pipes(), exports2); + tslib_1.__exportStar(require_serializer(), exports2); + tslib_1.__exportStar(require_services(), exports2); + tslib_1.__exportStar(require_utils6(), exports2); + } +}); + +// node_modules/@nestjs/core/metadata-scanner.js +var require_metadata_scanner = __commonJS({ + "node_modules/@nestjs/core/metadata-scanner.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MetadataScanner = void 0; + var shared_utils_1 = require_shared_utils(); + var MetadataScanner = class { + static { + __name(this, "MetadataScanner"); + } + constructor() { + this.cachedScannedPrototypes = /* @__PURE__ */ new Map(); + } + /** + * @deprecated + * @see {@link getAllMethodNames} + * @see getAllMethodNames + */ + scanFromPrototype(instance, prototype, callback) { + if (!prototype) { + return []; + } + const visitedNames = /* @__PURE__ */ new Map(); + const result = []; + do { + for (const property of Object.getOwnPropertyNames(prototype)) { + if (visitedNames.has(property)) { + continue; + } + visitedNames.set(property, true); + const descriptor = Object.getOwnPropertyDescriptor(prototype, property); + if (descriptor.set || descriptor.get || (0, shared_utils_1.isConstructor)(property) || !(0, shared_utils_1.isFunction)(prototype[property])) { + continue; + } + const value = callback(property); + if ((0, shared_utils_1.isNil)(value)) { + continue; + } + result.push(value); + } + } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype); + return result; + } + /** + * @deprecated + * @see {@link getAllMethodNames} + * @see getAllMethodNames + */ + *getAllFilteredMethodNames(prototype) { + yield* this.getAllMethodNames(prototype); + } + getAllMethodNames(prototype) { + if (!prototype) { + return []; + } + if (this.cachedScannedPrototypes.has(prototype)) { + return this.cachedScannedPrototypes.get(prototype); + } + const visitedNames = /* @__PURE__ */ new Map(); + const result = []; + this.cachedScannedPrototypes.set(prototype, result); + do { + for (const property of Object.getOwnPropertyNames(prototype)) { + if (visitedNames.has(property)) { + continue; + } + visitedNames.set(property, true); + const descriptor = Object.getOwnPropertyDescriptor(prototype, property); + if (descriptor.set || descriptor.get || (0, shared_utils_1.isConstructor)(property) || !(0, shared_utils_1.isFunction)(prototype[property])) { + continue; + } + result.push(property); + } + } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype); + return result; + } + }; + exports2.MetadataScanner = MetadataScanner; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/performanceTimestampProvider.js +var require_performanceTimestampProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/performanceTimestampProvider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.performanceTimestampProvider = void 0; + exports2.performanceTimestampProvider = { + now: /* @__PURE__ */ __name(function() { + return (exports2.performanceTimestampProvider.delegate || performance).now(); + }, "now"), + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/animationFrameProvider.js +var require_animationFrameProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/animationFrameProvider.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.animationFrameProvider = void 0; + var Subscription_1 = require_Subscription(); + exports2.animationFrameProvider = { + schedule: /* @__PURE__ */ __name(function(callback) { + var request = requestAnimationFrame; + var cancel = cancelAnimationFrame; + var delegate = exports2.animationFrameProvider.delegate; + if (delegate) { + request = delegate.requestAnimationFrame; + cancel = delegate.cancelAnimationFrame; + } + var handle = request(function(timestamp) { + cancel = void 0; + callback(timestamp); + }); + return new Subscription_1.Subscription(function() { + return cancel === null || cancel === void 0 ? void 0 : cancel(handle); + }); + }, "schedule"), + requestAnimationFrame: /* @__PURE__ */ __name(function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = exports2.animationFrameProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray2([], __read2(args))); + }, "requestAnimationFrame"), + cancelAnimationFrame: /* @__PURE__ */ __name(function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = exports2.animationFrameProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray2([], __read2(args))); + }, "cancelAnimationFrame"), + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js +var require_animationFrames = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.animationFrames = void 0; + var Observable_1 = require_Observable(); + var performanceTimestampProvider_1 = require_performanceTimestampProvider(); + var animationFrameProvider_1 = require_animationFrameProvider(); + function animationFrames(timestampProvider) { + return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES; + } + __name(animationFrames, "animationFrames"); + exports2.animationFrames = animationFrames; + function animationFramesFactory(timestampProvider) { + return new Observable_1.Observable(function(subscriber) { + var provider = timestampProvider || performanceTimestampProvider_1.performanceTimestampProvider; + var start = provider.now(); + var id = 0; + var run = /* @__PURE__ */ __name(function() { + if (!subscriber.closed) { + id = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function(timestamp) { + id = 0; + var now = provider.now(); + subscriber.next({ + timestamp: timestampProvider ? now : timestamp, + elapsed: now - start + }); + run(); + }); + } + }, "run"); + run(); + return function() { + if (id) { + animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id); + } + }; + }); + } + __name(animationFramesFactory, "animationFramesFactory"); + var DEFAULT_ANIMATION_FRAMES = animationFramesFactory(); + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/Immediate.js +var require_Immediate = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/Immediate.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TestTools = exports2.Immediate = void 0; + var nextHandle = 1; + var resolved; + var activeHandles = {}; + function findAndClearHandle(handle) { + if (handle in activeHandles) { + delete activeHandles[handle]; + return true; + } + return false; + } + __name(findAndClearHandle, "findAndClearHandle"); + exports2.Immediate = { + setImmediate: /* @__PURE__ */ __name(function(cb) { + var handle = nextHandle++; + activeHandles[handle] = true; + if (!resolved) { + resolved = Promise.resolve(); + } + resolved.then(function() { + return findAndClearHandle(handle) && cb(); + }); + return handle; + }, "setImmediate"), + clearImmediate: /* @__PURE__ */ __name(function(handle) { + findAndClearHandle(handle); + }, "clearImmediate") + }; + exports2.TestTools = { + pending: /* @__PURE__ */ __name(function() { + return Object.keys(activeHandles).length; + }, "pending") + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/immediateProvider.js +var require_immediateProvider = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/immediateProvider.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.immediateProvider = void 0; + var Immediate_1 = require_Immediate(); + var setImmediate2 = Immediate_1.Immediate.setImmediate; + var clearImmediate = Immediate_1.Immediate.clearImmediate; + exports2.immediateProvider = { + setImmediate: /* @__PURE__ */ __name(function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var delegate = exports2.immediateProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate2).apply(void 0, __spreadArray2([], __read2(args))); + }, "setImmediate"), + clearImmediate: /* @__PURE__ */ __name(function(handle) { + var delegate = exports2.immediateProvider.delegate; + return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle); + }, "clearImmediate"), + delegate: void 0 + }; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AsapAction.js +var require_AsapAction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AsapAction.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsapAction = void 0; + var AsyncAction_1 = require_AsyncAction(); + var immediateProvider_1 = require_immediateProvider(); + var AsapAction = (function(_super) { + __extends2(AsapAction2, _super); + function AsapAction2(scheduler2, work) { + var _this = _super.call(this, scheduler2, work) || this; + _this.scheduler = scheduler2; + _this.work = work; + return _this; + } + __name(AsapAction2, "AsapAction"); + AsapAction2.prototype.requestAsyncId = function(scheduler2, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler2, id, delay); + } + scheduler2.actions.push(this); + return scheduler2._scheduled || (scheduler2._scheduled = immediateProvider_1.immediateProvider.setImmediate(scheduler2.flush.bind(scheduler2, void 0))); + }; + AsapAction2.prototype.recycleAsyncId = function(scheduler2, id, delay) { + var _a; + if (delay === void 0) { + delay = 0; + } + if (delay != null ? delay > 0 : this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler2, id, delay); + } + var actions = scheduler2.actions; + if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) { + immediateProvider_1.immediateProvider.clearImmediate(id); + if (scheduler2._scheduled === id) { + scheduler2._scheduled = void 0; + } + } + return void 0; + }; + return AsapAction2; + })(AsyncAction_1.AsyncAction); + exports2.AsapAction = AsapAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AsapScheduler.js +var require_AsapScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AsapScheduler.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AsapScheduler = void 0; + var AsyncScheduler_1 = require_AsyncScheduler(); + var AsapScheduler = (function(_super) { + __extends2(AsapScheduler2, _super); + function AsapScheduler2() { + return _super !== null && _super.apply(this, arguments) || this; + } + __name(AsapScheduler2, "AsapScheduler"); + AsapScheduler2.prototype.flush = function(action) { + this._active = true; + var flushId = this._scheduled; + this._scheduled = void 0; + var actions = this.actions; + var error; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while ((action = actions[0]) && action.id === flushId && actions.shift()); + this._active = false; + if (error) { + while ((action = actions[0]) && action.id === flushId && actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsapScheduler2; + })(AsyncScheduler_1.AsyncScheduler); + exports2.AsapScheduler = AsapScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/asap.js +var require_asap = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/asap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.asap = exports2.asapScheduler = void 0; + var AsapAction_1 = require_AsapAction(); + var AsapScheduler_1 = require_AsapScheduler(); + exports2.asapScheduler = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction); + exports2.asap = exports2.asapScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/QueueAction.js +var require_QueueAction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/QueueAction.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.QueueAction = void 0; + var AsyncAction_1 = require_AsyncAction(); + var QueueAction = (function(_super) { + __extends2(QueueAction2, _super); + function QueueAction2(scheduler2, work) { + var _this = _super.call(this, scheduler2, work) || this; + _this.scheduler = scheduler2; + _this.work = work; + return _this; + } + __name(QueueAction2, "QueueAction"); + QueueAction2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + }; + QueueAction2.prototype.execute = function(state, delay) { + return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay); + }; + QueueAction2.prototype.requestAsyncId = function(scheduler2, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay != null && delay > 0 || delay == null && this.delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler2, id, delay); + } + scheduler2.flush(this); + return 0; + }; + return QueueAction2; + })(AsyncAction_1.AsyncAction); + exports2.QueueAction = QueueAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/QueueScheduler.js +var require_QueueScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/QueueScheduler.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.QueueScheduler = void 0; + var AsyncScheduler_1 = require_AsyncScheduler(); + var QueueScheduler = (function(_super) { + __extends2(QueueScheduler2, _super); + function QueueScheduler2() { + return _super !== null && _super.apply(this, arguments) || this; + } + __name(QueueScheduler2, "QueueScheduler"); + return QueueScheduler2; + })(AsyncScheduler_1.AsyncScheduler); + exports2.QueueScheduler = QueueScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/queue.js +var require_queue = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/queue.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.queue = exports2.queueScheduler = void 0; + var QueueAction_1 = require_QueueAction(); + var QueueScheduler_1 = require_QueueScheduler(); + exports2.queueScheduler = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction); + exports2.queue = exports2.queueScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameAction.js +var require_AnimationFrameAction = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameAction.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AnimationFrameAction = void 0; + var AsyncAction_1 = require_AsyncAction(); + var animationFrameProvider_1 = require_animationFrameProvider(); + var AnimationFrameAction = (function(_super) { + __extends2(AnimationFrameAction2, _super); + function AnimationFrameAction2(scheduler2, work) { + var _this = _super.call(this, scheduler2, work) || this; + _this.scheduler = scheduler2; + _this.work = work; + return _this; + } + __name(AnimationFrameAction2, "AnimationFrameAction"); + AnimationFrameAction2.prototype.requestAsyncId = function(scheduler2, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler2, id, delay); + } + scheduler2.actions.push(this); + return scheduler2._scheduled || (scheduler2._scheduled = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function() { + return scheduler2.flush(void 0); + })); + }; + AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler2, id, delay) { + var _a; + if (delay === void 0) { + delay = 0; + } + if (delay != null ? delay > 0 : this.delay > 0) { + return _super.prototype.recycleAsyncId.call(this, scheduler2, id, delay); + } + var actions = scheduler2.actions; + if (id != null && id === scheduler2._scheduled && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) { + animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id); + scheduler2._scheduled = void 0; + } + return void 0; + }; + return AnimationFrameAction2; + })(AsyncAction_1.AsyncAction); + exports2.AnimationFrameAction = AnimationFrameAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameScheduler.js +var require_AnimationFrameScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameScheduler.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AnimationFrameScheduler = void 0; + var AsyncScheduler_1 = require_AsyncScheduler(); + var AnimationFrameScheduler = (function(_super) { + __extends2(AnimationFrameScheduler2, _super); + function AnimationFrameScheduler2() { + return _super !== null && _super.apply(this, arguments) || this; + } + __name(AnimationFrameScheduler2, "AnimationFrameScheduler"); + AnimationFrameScheduler2.prototype.flush = function(action) { + this._active = true; + var flushId; + if (action) { + flushId = action.id; + } else { + flushId = this._scheduled; + this._scheduled = void 0; + } + var actions = this.actions; + var error; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while ((action = actions[0]) && action.id === flushId && actions.shift()); + this._active = false; + if (error) { + while ((action = actions[0]) && action.id === flushId && actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AnimationFrameScheduler2; + })(AsyncScheduler_1.AsyncScheduler); + exports2.AnimationFrameScheduler = AnimationFrameScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/animationFrame.js +var require_animationFrame = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/animationFrame.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.animationFrame = exports2.animationFrameScheduler = void 0; + var AnimationFrameAction_1 = require_AnimationFrameAction(); + var AnimationFrameScheduler_1 = require_AnimationFrameScheduler(); + exports2.animationFrameScheduler = new AnimationFrameScheduler_1.AnimationFrameScheduler(AnimationFrameAction_1.AnimationFrameAction); + exports2.animationFrame = exports2.animationFrameScheduler; + } +}); + +// node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js +var require_VirtualTimeScheduler = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js"(exports2) { + "use strict"; + var __extends2 = exports2 && exports2.__extends || /* @__PURE__ */ (function() { + var extendStatics2 = /* @__PURE__ */ __name(function(d, b) { + extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; + }; + return extendStatics2(d, b); + }, "extendStatics"); + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics2(d, b); + function __() { + this.constructor = d; + } + __name(__, "__"); + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.VirtualAction = exports2.VirtualTimeScheduler = void 0; + var AsyncAction_1 = require_AsyncAction(); + var Subscription_1 = require_Subscription(); + var AsyncScheduler_1 = require_AsyncScheduler(); + var VirtualTimeScheduler = (function(_super) { + __extends2(VirtualTimeScheduler2, _super); + function VirtualTimeScheduler2(schedulerActionCtor, maxFrames) { + if (schedulerActionCtor === void 0) { + schedulerActionCtor = VirtualAction; + } + if (maxFrames === void 0) { + maxFrames = Infinity; + } + var _this = _super.call(this, schedulerActionCtor, function() { + return _this.frame; + }) || this; + _this.maxFrames = maxFrames; + _this.frame = 0; + _this.index = -1; + return _this; + } + __name(VirtualTimeScheduler2, "VirtualTimeScheduler"); + VirtualTimeScheduler2.prototype.flush = function() { + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var error; + var action; + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + VirtualTimeScheduler2.frameTimeFactor = 10; + return VirtualTimeScheduler2; + })(AsyncScheduler_1.AsyncScheduler); + exports2.VirtualTimeScheduler = VirtualTimeScheduler; + var VirtualAction = (function(_super) { + __extends2(VirtualAction2, _super); + function VirtualAction2(scheduler2, work, index) { + if (index === void 0) { + index = scheduler2.index += 1; + } + var _this = _super.call(this, scheduler2, work) || this; + _this.scheduler = scheduler2; + _this.work = work; + _this.index = index; + _this.active = true; + _this.index = scheduler2.index = index; + return _this; + } + __name(VirtualAction2, "VirtualAction"); + VirtualAction2.prototype.schedule = function(state, delay) { + if (delay === void 0) { + delay = 0; + } + if (Number.isFinite(delay)) { + if (!this.id) { + return _super.prototype.schedule.call(this, state, delay); + } + this.active = false; + var action = new VirtualAction2(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + } else { + return Subscription_1.Subscription.EMPTY; + } + }; + VirtualAction2.prototype.requestAsyncId = function(scheduler2, id, delay) { + if (delay === void 0) { + delay = 0; + } + this.delay = scheduler2.frame + delay; + var actions = scheduler2.actions; + actions.push(this); + actions.sort(VirtualAction2.sortActions); + return 1; + }; + VirtualAction2.prototype.recycleAsyncId = function(scheduler2, id, delay) { + if (delay === void 0) { + delay = 0; + } + return void 0; + }; + VirtualAction2.prototype._execute = function(state, delay) { + if (this.active === true) { + return _super.prototype._execute.call(this, state, delay); + } + }; + VirtualAction2.sortActions = function(a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } else if (a.index > b.index) { + return 1; + } else { + return -1; + } + } else if (a.delay > b.delay) { + return 1; + } else { + return -1; + } + }; + return VirtualAction2; + })(AsyncAction_1.AsyncAction); + exports2.VirtualAction = VirtualAction; + } +}); + +// node_modules/rxjs/dist/cjs/internal/util/isObservable.js +var require_isObservable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/util/isObservable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isObservable = void 0; + var Observable_1 = require_Observable(); + var isFunction_1 = require_isFunction(); + function isObservable(obj) { + return !!obj && (obj instanceof Observable_1.Observable || isFunction_1.isFunction(obj.lift) && isFunction_1.isFunction(obj.subscribe)); + } + __name(isObservable, "isObservable"); + exports2.isObservable = isObservable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/lastValueFrom.js +var require_lastValueFrom = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/lastValueFrom.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.lastValueFrom = void 0; + var EmptyError_1 = require_EmptyError(); + function lastValueFrom(source, config) { + var hasConfig = typeof config === "object"; + return new Promise(function(resolve, reject) { + var _hasValue = false; + var _value; + source.subscribe({ + next: /* @__PURE__ */ __name(function(value) { + _value = value; + _hasValue = true; + }, "next"), + error: reject, + complete: /* @__PURE__ */ __name(function() { + if (_hasValue) { + resolve(_value); + } else if (hasConfig) { + resolve(config.defaultValue); + } else { + reject(new EmptyError_1.EmptyError()); + } + }, "complete") + }); + }); + } + __name(lastValueFrom, "lastValueFrom"); + exports2.lastValueFrom = lastValueFrom; + } +}); + +// node_modules/rxjs/dist/cjs/internal/firstValueFrom.js +var require_firstValueFrom = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/firstValueFrom.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.firstValueFrom = void 0; + var EmptyError_1 = require_EmptyError(); + var Subscriber_1 = require_Subscriber(); + function firstValueFrom(source, config) { + var hasConfig = typeof config === "object"; + return new Promise(function(resolve, reject) { + var subscriber = new Subscriber_1.SafeSubscriber({ + next: /* @__PURE__ */ __name(function(value) { + resolve(value); + subscriber.unsubscribe(); + }, "next"), + error: reject, + complete: /* @__PURE__ */ __name(function() { + if (hasConfig) { + resolve(config.defaultValue); + } else { + reject(new EmptyError_1.EmptyError()); + } + }, "complete") + }); + source.subscribe(subscriber); + }); + } + __name(firstValueFrom, "firstValueFrom"); + exports2.firstValueFrom = firstValueFrom; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/bindCallbackInternals.js +var require_bindCallbackInternals = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/bindCallbackInternals.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + var __spreadArray2 = exports2 && exports2.__spreadArray || function(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bindCallbackInternals = void 0; + var isScheduler_1 = require_isScheduler(); + var Observable_1 = require_Observable(); + var subscribeOn_1 = require_subscribeOn(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var observeOn_1 = require_observeOn(); + var AsyncSubject_1 = require_AsyncSubject(); + function bindCallbackInternals(isNodeStyle, callbackFunc, resultSelector, scheduler2) { + if (resultSelector) { + if (isScheduler_1.isScheduler(resultSelector)) { + scheduler2 = resultSelector; + } else { + return function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler2).apply(this, args).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); + }; + } + } + if (scheduler2) { + return function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallbackInternals(isNodeStyle, callbackFunc).apply(this, args).pipe(subscribeOn_1.subscribeOn(scheduler2), observeOn_1.observeOn(scheduler2)); + }; + } + return function() { + var _this = this; + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var subject = new AsyncSubject_1.AsyncSubject(); + var uninitialized = true; + return new Observable_1.Observable(function(subscriber) { + var subs = subject.subscribe(subscriber); + if (uninitialized) { + uninitialized = false; + var isAsync_1 = false; + var isComplete_1 = false; + callbackFunc.apply(_this, __spreadArray2(__spreadArray2([], __read2(args)), [ + function() { + var results = []; + for (var _i2 = 0; _i2 < arguments.length; _i2++) { + results[_i2] = arguments[_i2]; + } + if (isNodeStyle) { + var err = results.shift(); + if (err != null) { + subject.error(err); + return; + } + } + subject.next(1 < results.length ? results : results[0]); + isComplete_1 = true; + if (isAsync_1) { + subject.complete(); + } + } + ])); + if (isComplete_1) { + subject.complete(); + } + isAsync_1 = true; + } + return subs; + }); + }; + } + __name(bindCallbackInternals, "bindCallbackInternals"); + exports2.bindCallbackInternals = bindCallbackInternals; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/bindCallback.js +var require_bindCallback = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/bindCallback.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bindCallback = void 0; + var bindCallbackInternals_1 = require_bindCallbackInternals(); + function bindCallback(callbackFunc, resultSelector, scheduler2) { + return bindCallbackInternals_1.bindCallbackInternals(false, callbackFunc, resultSelector, scheduler2); + } + __name(bindCallback, "bindCallback"); + exports2.bindCallback = bindCallback; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/bindNodeCallback.js +var require_bindNodeCallback = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/bindNodeCallback.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.bindNodeCallback = void 0; + var bindCallbackInternals_1 = require_bindCallbackInternals(); + function bindNodeCallback(callbackFunc, resultSelector, scheduler2) { + return bindCallbackInternals_1.bindCallbackInternals(true, callbackFunc, resultSelector, scheduler2); + } + __name(bindNodeCallback, "bindNodeCallback"); + exports2.bindNodeCallback = bindNodeCallback; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/defer.js +var require_defer = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/defer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defer = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + function defer(observableFactory) { + return new Observable_1.Observable(function(subscriber) { + innerFrom_1.innerFrom(observableFactory()).subscribe(subscriber); + }); + } + __name(defer, "defer"); + exports2.defer = defer; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/connectable.js +var require_connectable = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/connectable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.connectable = void 0; + var Subject_1 = require_Subject(); + var Observable_1 = require_Observable(); + var defer_1 = require_defer(); + var DEFAULT_CONFIG = { + connector: /* @__PURE__ */ __name(function() { + return new Subject_1.Subject(); + }, "connector"), + resetOnDisconnect: true + }; + function connectable(source, config) { + if (config === void 0) { + config = DEFAULT_CONFIG; + } + var connection = null; + var connector = config.connector, _a = config.resetOnDisconnect, resetOnDisconnect = _a === void 0 ? true : _a; + var subject = connector(); + var result = new Observable_1.Observable(function(subscriber) { + return subject.subscribe(subscriber); + }); + result.connect = function() { + if (!connection || connection.closed) { + connection = defer_1.defer(function() { + return source; + }).subscribe(subject); + if (resetOnDisconnect) { + connection.add(function() { + return subject = connector(); + }); + } + } + return connection; + }; + return result; + } + __name(connectable, "connectable"); + exports2.connectable = connectable; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/forkJoin.js +var require_forkJoin = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/forkJoin.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.forkJoin = void 0; + var Observable_1 = require_Observable(); + var argsArgArrayOrObject_1 = require_argsArgArrayOrObject(); + var innerFrom_1 = require_innerFrom(); + var args_1 = require_args(); + var OperatorSubscriber_1 = require_OperatorSubscriber(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var createObject_1 = require_createObject(); + function forkJoin() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var resultSelector = args_1.popResultSelector(args); + var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys; + var result = new Observable_1.Observable(function(subscriber) { + var length = sources.length; + if (!length) { + subscriber.complete(); + return; + } + var values = new Array(length); + var remainingCompletions = length; + var remainingEmissions = length; + var _loop_1 = /* @__PURE__ */ __name(function(sourceIndex2) { + var hasValue = false; + innerFrom_1.innerFrom(sources[sourceIndex2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) { + if (!hasValue) { + hasValue = true; + remainingEmissions--; + } + values[sourceIndex2] = value; + }, function() { + return remainingCompletions--; + }, void 0, function() { + if (!remainingCompletions || !hasValue) { + if (!remainingEmissions) { + subscriber.next(keys ? createObject_1.createObject(keys, values) : values); + } + subscriber.complete(); + } + })); + }, "_loop_1"); + for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) { + _loop_1(sourceIndex); + } + }); + return resultSelector ? result.pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : result; + } + __name(forkJoin, "forkJoin"); + exports2.forkJoin = forkJoin; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js +var require_fromEvent = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js"(exports2) { + "use strict"; + var __read2 = exports2 && exports2.__read || function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromEvent = void 0; + var innerFrom_1 = require_innerFrom(); + var Observable_1 = require_Observable(); + var mergeMap_1 = require_mergeMap(); + var isArrayLike_1 = require_isArrayLike(); + var isFunction_1 = require_isFunction(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + var nodeEventEmitterMethods = ["addListener", "removeListener"]; + var eventTargetMethods = ["addEventListener", "removeEventListener"]; + var jqueryMethods = ["on", "off"]; + function fromEvent(target, eventName, options, resultSelector) { + if (isFunction_1.isFunction(options)) { + resultSelector = options; + options = void 0; + } + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); + } + var _a = __read2(isEventTarget(target) ? eventTargetMethods.map(function(methodName) { + return function(handler) { + return target[methodName](eventName, handler, options); + }; + }) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add = _a[0], remove = _a[1]; + if (!add) { + if (isArrayLike_1.isArrayLike(target)) { + return mergeMap_1.mergeMap(function(subTarget) { + return fromEvent(subTarget, eventName, options); + })(innerFrom_1.innerFrom(target)); + } + } + if (!add) { + throw new TypeError("Invalid event target"); + } + return new Observable_1.Observable(function(subscriber) { + var handler = /* @__PURE__ */ __name(function() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return subscriber.next(1 < args.length ? args : args[0]); + }, "handler"); + add(handler); + return function() { + return remove(handler); + }; + }); + } + __name(fromEvent, "fromEvent"); + exports2.fromEvent = fromEvent; + function toCommonHandlerRegistry(target, eventName) { + return function(methodName) { + return function(handler) { + return target[methodName](eventName, handler); + }; + }; + } + __name(toCommonHandlerRegistry, "toCommonHandlerRegistry"); + function isNodeStyleEventEmitter(target) { + return isFunction_1.isFunction(target.addListener) && isFunction_1.isFunction(target.removeListener); + } + __name(isNodeStyleEventEmitter, "isNodeStyleEventEmitter"); + function isJQueryStyleEventEmitter(target) { + return isFunction_1.isFunction(target.on) && isFunction_1.isFunction(target.off); + } + __name(isJQueryStyleEventEmitter, "isJQueryStyleEventEmitter"); + function isEventTarget(target) { + return isFunction_1.isFunction(target.addEventListener) && isFunction_1.isFunction(target.removeEventListener); + } + __name(isEventTarget, "isEventTarget"); + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/fromEventPattern.js +var require_fromEventPattern = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/fromEventPattern.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromEventPattern = void 0; + var Observable_1 = require_Observable(); + var isFunction_1 = require_isFunction(); + var mapOneOrManyArgs_1 = require_mapOneOrManyArgs(); + function fromEventPattern(addHandler, removeHandler, resultSelector) { + if (resultSelector) { + return fromEventPattern(addHandler, removeHandler).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); + } + return new Observable_1.Observable(function(subscriber) { + var handler = /* @__PURE__ */ __name(function() { + var e = []; + for (var _i = 0; _i < arguments.length; _i++) { + e[_i] = arguments[_i]; + } + return subscriber.next(e.length === 1 ? e[0] : e); + }, "handler"); + var retValue = addHandler(handler); + return isFunction_1.isFunction(removeHandler) ? function() { + return removeHandler(handler, retValue); + } : void 0; + }); + } + __name(fromEventPattern, "fromEventPattern"); + exports2.fromEventPattern = fromEventPattern; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/generate.js +var require_generate = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/generate.js"(exports2) { + "use strict"; + var __generator2 = exports2 && exports2.__generator || function(thisArg, body) { + var _ = { label: 0, sent: /* @__PURE__ */ __name(function() { + if (t[0] & 1) throw t[1]; + return t[1]; + }, "sent"), trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { + return this; + }), g; + function verb(n) { + return function(v) { + return step([n, v]); + }; + } + __name(verb, "verb"); + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + __name(step, "step"); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.generate = void 0; + var identity_1 = require_identity(); + var isScheduler_1 = require_isScheduler(); + var defer_1 = require_defer(); + var scheduleIterable_1 = require_scheduleIterable(); + function generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler2) { + var _a, _b; + var resultSelector; + var initialState; + if (arguments.length === 1) { + _a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate = _a.iterate, _b = _a.resultSelector, resultSelector = _b === void 0 ? identity_1.identity : _b, scheduler2 = _a.scheduler; + } else { + initialState = initialStateOrOptions; + if (!resultSelectorOrScheduler || isScheduler_1.isScheduler(resultSelectorOrScheduler)) { + resultSelector = identity_1.identity; + scheduler2 = resultSelectorOrScheduler; + } else { + resultSelector = resultSelectorOrScheduler; + } + } + function gen() { + var state; + return __generator2(this, function(_a2) { + switch (_a2.label) { + case 0: + state = initialState; + _a2.label = 1; + case 1: + if (!(!condition || condition(state))) return [3, 4]; + return [4, resultSelector(state)]; + case 2: + _a2.sent(); + _a2.label = 3; + case 3: + state = iterate(state); + return [3, 1]; + case 4: + return [2]; + } + }); + } + __name(gen, "gen"); + return defer_1.defer(scheduler2 ? function() { + return scheduleIterable_1.scheduleIterable(gen(), scheduler2); + } : gen); + } + __name(generate, "generate"); + exports2.generate = generate; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/iif.js +var require_iif = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/iif.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.iif = void 0; + var defer_1 = require_defer(); + function iif(condition, trueResult, falseResult) { + return defer_1.defer(function() { + return condition() ? trueResult : falseResult; + }); + } + __name(iif, "iif"); + exports2.iif = iif; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/merge.js +var require_merge3 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/merge.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.merge = void 0; + var mergeAll_1 = require_mergeAll(); + var innerFrom_1 = require_innerFrom(); + var empty_1 = require_empty(); + var args_1 = require_args(); + var from_1 = require_from(); + function merge() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler2 = args_1.popScheduler(args); + var concurrent = args_1.popNumber(args, Infinity); + var sources = args; + return !sources.length ? empty_1.EMPTY : sources.length === 1 ? innerFrom_1.innerFrom(sources[0]) : mergeAll_1.mergeAll(concurrent)(from_1.from(sources, scheduler2)); + } + __name(merge, "merge"); + exports2.merge = merge; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/never.js +var require_never = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/never.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.never = exports2.NEVER = void 0; + var Observable_1 = require_Observable(); + var noop_1 = require_noop(); + exports2.NEVER = new Observable_1.Observable(noop_1.noop); + function never() { + return exports2.NEVER; + } + __name(never, "never"); + exports2.never = never; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/pairs.js +var require_pairs = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/pairs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.pairs = void 0; + var from_1 = require_from(); + function pairs(obj, scheduler2) { + return from_1.from(Object.entries(obj), scheduler2); + } + __name(pairs, "pairs"); + exports2.pairs = pairs; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/partition.js +var require_partition2 = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/partition.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.partition = void 0; + var not_1 = require_not(); + var filter_1 = require_filter2(); + var innerFrom_1 = require_innerFrom(); + function partition(source, predicate, thisArg) { + return [filter_1.filter(predicate, thisArg)(innerFrom_1.innerFrom(source)), filter_1.filter(not_1.not(predicate, thisArg))(innerFrom_1.innerFrom(source))]; + } + __name(partition, "partition"); + exports2.partition = partition; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/range.js +var require_range = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/range.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.range = void 0; + var Observable_1 = require_Observable(); + var empty_1 = require_empty(); + function range(start, count, scheduler2) { + if (count == null) { + count = start; + start = 0; + } + if (count <= 0) { + return empty_1.EMPTY; + } + var end = count + start; + return new Observable_1.Observable(scheduler2 ? function(subscriber) { + var n = start; + return scheduler2.schedule(function() { + if (n < end) { + subscriber.next(n++); + this.schedule(); + } else { + subscriber.complete(); + } + }); + } : function(subscriber) { + var n = start; + while (n < end && !subscriber.closed) { + subscriber.next(n++); + } + subscriber.complete(); + }); + } + __name(range, "range"); + exports2.range = range; + } +}); + +// node_modules/rxjs/dist/cjs/internal/observable/using.js +var require_using = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/observable/using.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.using = void 0; + var Observable_1 = require_Observable(); + var innerFrom_1 = require_innerFrom(); + var empty_1 = require_empty(); + function using(resourceFactory, observableFactory) { + return new Observable_1.Observable(function(subscriber) { + var resource = resourceFactory(); + var result = observableFactory(resource); + var source = result ? innerFrom_1.innerFrom(result) : empty_1.EMPTY; + source.subscribe(subscriber); + return function() { + if (resource) { + resource.unsubscribe(); + } + }; + }); + } + __name(using, "using"); + exports2.using = using; + } +}); + +// node_modules/rxjs/dist/cjs/internal/types.js +var require_types = __commonJS({ + "node_modules/rxjs/dist/cjs/internal/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/rxjs/dist/cjs/index.js +var require_cjs3 = __commonJS({ + "node_modules/rxjs/dist/cjs/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.interval = exports2.iif = exports2.generate = exports2.fromEventPattern = exports2.fromEvent = exports2.from = exports2.forkJoin = exports2.empty = exports2.defer = exports2.connectable = exports2.concat = exports2.combineLatest = exports2.bindNodeCallback = exports2.bindCallback = exports2.UnsubscriptionError = exports2.TimeoutError = exports2.SequenceError = exports2.ObjectUnsubscribedError = exports2.NotFoundError = exports2.EmptyError = exports2.ArgumentOutOfRangeError = exports2.firstValueFrom = exports2.lastValueFrom = exports2.isObservable = exports2.identity = exports2.noop = exports2.pipe = exports2.NotificationKind = exports2.Notification = exports2.Subscriber = exports2.Subscription = exports2.Scheduler = exports2.VirtualAction = exports2.VirtualTimeScheduler = exports2.animationFrameScheduler = exports2.animationFrame = exports2.queueScheduler = exports2.queue = exports2.asyncScheduler = exports2.async = exports2.asapScheduler = exports2.asap = exports2.AsyncSubject = exports2.ReplaySubject = exports2.BehaviorSubject = exports2.Subject = exports2.animationFrames = exports2.observable = exports2.ConnectableObservable = exports2.Observable = void 0; + exports2.filter = exports2.expand = exports2.exhaustMap = exports2.exhaustAll = exports2.exhaust = exports2.every = exports2.endWith = exports2.elementAt = exports2.distinctUntilKeyChanged = exports2.distinctUntilChanged = exports2.distinct = exports2.dematerialize = exports2.delayWhen = exports2.delay = exports2.defaultIfEmpty = exports2.debounceTime = exports2.debounce = exports2.count = exports2.connect = exports2.concatWith = exports2.concatMapTo = exports2.concatMap = exports2.concatAll = exports2.combineLatestWith = exports2.combineLatestAll = exports2.combineAll = exports2.catchError = exports2.bufferWhen = exports2.bufferToggle = exports2.bufferTime = exports2.bufferCount = exports2.buffer = exports2.auditTime = exports2.audit = exports2.config = exports2.NEVER = exports2.EMPTY = exports2.scheduled = exports2.zip = exports2.using = exports2.timer = exports2.throwError = exports2.range = exports2.race = exports2.partition = exports2.pairs = exports2.onErrorResumeNext = exports2.of = exports2.never = exports2.merge = void 0; + exports2.switchMap = exports2.switchAll = exports2.subscribeOn = exports2.startWith = exports2.skipWhile = exports2.skipUntil = exports2.skipLast = exports2.skip = exports2.single = exports2.shareReplay = exports2.share = exports2.sequenceEqual = exports2.scan = exports2.sampleTime = exports2.sample = exports2.refCount = exports2.retryWhen = exports2.retry = exports2.repeatWhen = exports2.repeat = exports2.reduce = exports2.raceWith = exports2.publishReplay = exports2.publishLast = exports2.publishBehavior = exports2.publish = exports2.pluck = exports2.pairwise = exports2.onErrorResumeNextWith = exports2.observeOn = exports2.multicast = exports2.min = exports2.mergeWith = exports2.mergeScan = exports2.mergeMapTo = exports2.mergeMap = exports2.flatMap = exports2.mergeAll = exports2.max = exports2.materialize = exports2.mapTo = exports2.map = exports2.last = exports2.isEmpty = exports2.ignoreElements = exports2.groupBy = exports2.first = exports2.findIndex = exports2.find = exports2.finalize = void 0; + exports2.zipWith = exports2.zipAll = exports2.withLatestFrom = exports2.windowWhen = exports2.windowToggle = exports2.windowTime = exports2.windowCount = exports2.window = exports2.toArray = exports2.timestamp = exports2.timeoutWith = exports2.timeout = exports2.timeInterval = exports2.throwIfEmpty = exports2.throttleTime = exports2.throttle = exports2.tap = exports2.takeWhile = exports2.takeUntil = exports2.takeLast = exports2.take = exports2.switchScan = exports2.switchMapTo = void 0; + var Observable_1 = require_Observable(); + Object.defineProperty(exports2, "Observable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Observable_1.Observable; + }, "get") }); + var ConnectableObservable_1 = require_ConnectableObservable(); + Object.defineProperty(exports2, "ConnectableObservable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ConnectableObservable_1.ConnectableObservable; + }, "get") }); + var observable_1 = require_observable(); + Object.defineProperty(exports2, "observable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return observable_1.observable; + }, "get") }); + var animationFrames_1 = require_animationFrames(); + Object.defineProperty(exports2, "animationFrames", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return animationFrames_1.animationFrames; + }, "get") }); + var Subject_1 = require_Subject(); + Object.defineProperty(exports2, "Subject", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Subject_1.Subject; + }, "get") }); + var BehaviorSubject_1 = require_BehaviorSubject(); + Object.defineProperty(exports2, "BehaviorSubject", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return BehaviorSubject_1.BehaviorSubject; + }, "get") }); + var ReplaySubject_1 = require_ReplaySubject(); + Object.defineProperty(exports2, "ReplaySubject", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ReplaySubject_1.ReplaySubject; + }, "get") }); + var AsyncSubject_1 = require_AsyncSubject(); + Object.defineProperty(exports2, "AsyncSubject", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return AsyncSubject_1.AsyncSubject; + }, "get") }); + var asap_1 = require_asap(); + Object.defineProperty(exports2, "asap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return asap_1.asap; + }, "get") }); + Object.defineProperty(exports2, "asapScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return asap_1.asapScheduler; + }, "get") }); + var async_1 = require_async(); + Object.defineProperty(exports2, "async", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return async_1.async; + }, "get") }); + Object.defineProperty(exports2, "asyncScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return async_1.asyncScheduler; + }, "get") }); + var queue_1 = require_queue(); + Object.defineProperty(exports2, "queue", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return queue_1.queue; + }, "get") }); + Object.defineProperty(exports2, "queueScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return queue_1.queueScheduler; + }, "get") }); + var animationFrame_1 = require_animationFrame(); + Object.defineProperty(exports2, "animationFrame", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return animationFrame_1.animationFrame; + }, "get") }); + Object.defineProperty(exports2, "animationFrameScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return animationFrame_1.animationFrameScheduler; + }, "get") }); + var VirtualTimeScheduler_1 = require_VirtualTimeScheduler(); + Object.defineProperty(exports2, "VirtualTimeScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return VirtualTimeScheduler_1.VirtualTimeScheduler; + }, "get") }); + Object.defineProperty(exports2, "VirtualAction", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return VirtualTimeScheduler_1.VirtualAction; + }, "get") }); + var Scheduler_1 = require_Scheduler(); + Object.defineProperty(exports2, "Scheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Scheduler_1.Scheduler; + }, "get") }); + var Subscription_1 = require_Subscription(); + Object.defineProperty(exports2, "Subscription", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Subscription_1.Subscription; + }, "get") }); + var Subscriber_1 = require_Subscriber(); + Object.defineProperty(exports2, "Subscriber", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Subscriber_1.Subscriber; + }, "get") }); + var Notification_1 = require_Notification(); + Object.defineProperty(exports2, "Notification", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Notification_1.Notification; + }, "get") }); + Object.defineProperty(exports2, "NotificationKind", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return Notification_1.NotificationKind; + }, "get") }); + var pipe_1 = require_pipe(); + Object.defineProperty(exports2, "pipe", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pipe_1.pipe; + }, "get") }); + var noop_1 = require_noop(); + Object.defineProperty(exports2, "noop", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return noop_1.noop; + }, "get") }); + var identity_1 = require_identity(); + Object.defineProperty(exports2, "identity", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return identity_1.identity; + }, "get") }); + var isObservable_1 = require_isObservable(); + Object.defineProperty(exports2, "isObservable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return isObservable_1.isObservable; + }, "get") }); + var lastValueFrom_1 = require_lastValueFrom(); + Object.defineProperty(exports2, "lastValueFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return lastValueFrom_1.lastValueFrom; + }, "get") }); + var firstValueFrom_1 = require_firstValueFrom(); + Object.defineProperty(exports2, "firstValueFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return firstValueFrom_1.firstValueFrom; + }, "get") }); + var ArgumentOutOfRangeError_1 = require_ArgumentOutOfRangeError(); + Object.defineProperty(exports2, "ArgumentOutOfRangeError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; + }, "get") }); + var EmptyError_1 = require_EmptyError(); + Object.defineProperty(exports2, "EmptyError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return EmptyError_1.EmptyError; + }, "get") }); + var NotFoundError_1 = require_NotFoundError(); + Object.defineProperty(exports2, "NotFoundError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return NotFoundError_1.NotFoundError; + }, "get") }); + var ObjectUnsubscribedError_1 = require_ObjectUnsubscribedError(); + Object.defineProperty(exports2, "ObjectUnsubscribedError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ObjectUnsubscribedError_1.ObjectUnsubscribedError; + }, "get") }); + var SequenceError_1 = require_SequenceError(); + Object.defineProperty(exports2, "SequenceError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return SequenceError_1.SequenceError; + }, "get") }); + var timeout_1 = require_timeout(); + Object.defineProperty(exports2, "TimeoutError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeout_1.TimeoutError; + }, "get") }); + var UnsubscriptionError_1 = require_UnsubscriptionError(); + Object.defineProperty(exports2, "UnsubscriptionError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return UnsubscriptionError_1.UnsubscriptionError; + }, "get") }); + var bindCallback_1 = require_bindCallback(); + Object.defineProperty(exports2, "bindCallback", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bindCallback_1.bindCallback; + }, "get") }); + var bindNodeCallback_1 = require_bindNodeCallback(); + Object.defineProperty(exports2, "bindNodeCallback", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bindNodeCallback_1.bindNodeCallback; + }, "get") }); + var combineLatest_1 = require_combineLatest(); + Object.defineProperty(exports2, "combineLatest", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatest_1.combineLatest; + }, "get") }); + var concat_1 = require_concat3(); + Object.defineProperty(exports2, "concat", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concat_1.concat; + }, "get") }); + var connectable_1 = require_connectable(); + Object.defineProperty(exports2, "connectable", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return connectable_1.connectable; + }, "get") }); + var defer_1 = require_defer(); + Object.defineProperty(exports2, "defer", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return defer_1.defer; + }, "get") }); + var empty_1 = require_empty(); + Object.defineProperty(exports2, "empty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return empty_1.empty; + }, "get") }); + var forkJoin_1 = require_forkJoin(); + Object.defineProperty(exports2, "forkJoin", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return forkJoin_1.forkJoin; + }, "get") }); + var from_1 = require_from(); + Object.defineProperty(exports2, "from", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return from_1.from; + }, "get") }); + var fromEvent_1 = require_fromEvent(); + Object.defineProperty(exports2, "fromEvent", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return fromEvent_1.fromEvent; + }, "get") }); + var fromEventPattern_1 = require_fromEventPattern(); + Object.defineProperty(exports2, "fromEventPattern", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return fromEventPattern_1.fromEventPattern; + }, "get") }); + var generate_1 = require_generate(); + Object.defineProperty(exports2, "generate", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return generate_1.generate; + }, "get") }); + var iif_1 = require_iif(); + Object.defineProperty(exports2, "iif", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return iif_1.iif; + }, "get") }); + var interval_1 = require_interval(); + Object.defineProperty(exports2, "interval", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return interval_1.interval; + }, "get") }); + var merge_1 = require_merge3(); + Object.defineProperty(exports2, "merge", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return merge_1.merge; + }, "get") }); + var never_1 = require_never(); + Object.defineProperty(exports2, "never", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return never_1.never; + }, "get") }); + var of_1 = require_of(); + Object.defineProperty(exports2, "of", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return of_1.of; + }, "get") }); + var onErrorResumeNext_1 = require_onErrorResumeNext(); + Object.defineProperty(exports2, "onErrorResumeNext", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return onErrorResumeNext_1.onErrorResumeNext; + }, "get") }); + var pairs_1 = require_pairs(); + Object.defineProperty(exports2, "pairs", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pairs_1.pairs; + }, "get") }); + var partition_1 = require_partition2(); + Object.defineProperty(exports2, "partition", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return partition_1.partition; + }, "get") }); + var race_1 = require_race(); + Object.defineProperty(exports2, "race", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return race_1.race; + }, "get") }); + var range_1 = require_range(); + Object.defineProperty(exports2, "range", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return range_1.range; + }, "get") }); + var throwError_1 = require_throwError(); + Object.defineProperty(exports2, "throwError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throwError_1.throwError; + }, "get") }); + var timer_1 = require_timer(); + Object.defineProperty(exports2, "timer", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timer_1.timer; + }, "get") }); + var using_1 = require_using(); + Object.defineProperty(exports2, "using", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return using_1.using; + }, "get") }); + var zip_1 = require_zip2(); + Object.defineProperty(exports2, "zip", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zip_1.zip; + }, "get") }); + var scheduled_1 = require_scheduled(); + Object.defineProperty(exports2, "scheduled", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return scheduled_1.scheduled; + }, "get") }); + var empty_2 = require_empty(); + Object.defineProperty(exports2, "EMPTY", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return empty_2.EMPTY; + }, "get") }); + var never_2 = require_never(); + Object.defineProperty(exports2, "NEVER", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return never_2.NEVER; + }, "get") }); + __exportStar2(require_types(), exports2); + var config_1 = require_config(); + Object.defineProperty(exports2, "config", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return config_1.config; + }, "get") }); + var audit_1 = require_audit(); + Object.defineProperty(exports2, "audit", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return audit_1.audit; + }, "get") }); + var auditTime_1 = require_auditTime(); + Object.defineProperty(exports2, "auditTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return auditTime_1.auditTime; + }, "get") }); + var buffer_1 = require_buffer(); + Object.defineProperty(exports2, "buffer", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return buffer_1.buffer; + }, "get") }); + var bufferCount_1 = require_bufferCount(); + Object.defineProperty(exports2, "bufferCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferCount_1.bufferCount; + }, "get") }); + var bufferTime_1 = require_bufferTime(); + Object.defineProperty(exports2, "bufferTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferTime_1.bufferTime; + }, "get") }); + var bufferToggle_1 = require_bufferToggle(); + Object.defineProperty(exports2, "bufferToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferToggle_1.bufferToggle; + }, "get") }); + var bufferWhen_1 = require_bufferWhen(); + Object.defineProperty(exports2, "bufferWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return bufferWhen_1.bufferWhen; + }, "get") }); + var catchError_1 = require_catchError(); + Object.defineProperty(exports2, "catchError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return catchError_1.catchError; + }, "get") }); + var combineAll_1 = require_combineAll(); + Object.defineProperty(exports2, "combineAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineAll_1.combineAll; + }, "get") }); + var combineLatestAll_1 = require_combineLatestAll(); + Object.defineProperty(exports2, "combineLatestAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatestAll_1.combineLatestAll; + }, "get") }); + var combineLatestWith_1 = require_combineLatestWith(); + Object.defineProperty(exports2, "combineLatestWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return combineLatestWith_1.combineLatestWith; + }, "get") }); + var concatAll_1 = require_concatAll(); + Object.defineProperty(exports2, "concatAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatAll_1.concatAll; + }, "get") }); + var concatMap_1 = require_concatMap(); + Object.defineProperty(exports2, "concatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatMap_1.concatMap; + }, "get") }); + var concatMapTo_1 = require_concatMapTo(); + Object.defineProperty(exports2, "concatMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatMapTo_1.concatMapTo; + }, "get") }); + var concatWith_1 = require_concatWith(); + Object.defineProperty(exports2, "concatWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return concatWith_1.concatWith; + }, "get") }); + var connect_1 = require_connect(); + Object.defineProperty(exports2, "connect", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return connect_1.connect; + }, "get") }); + var count_1 = require_count(); + Object.defineProperty(exports2, "count", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return count_1.count; + }, "get") }); + var debounce_1 = require_debounce(); + Object.defineProperty(exports2, "debounce", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return debounce_1.debounce; + }, "get") }); + var debounceTime_1 = require_debounceTime(); + Object.defineProperty(exports2, "debounceTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return debounceTime_1.debounceTime; + }, "get") }); + var defaultIfEmpty_1 = require_defaultIfEmpty(); + Object.defineProperty(exports2, "defaultIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return defaultIfEmpty_1.defaultIfEmpty; + }, "get") }); + var delay_1 = require_delay(); + Object.defineProperty(exports2, "delay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return delay_1.delay; + }, "get") }); + var delayWhen_1 = require_delayWhen(); + Object.defineProperty(exports2, "delayWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return delayWhen_1.delayWhen; + }, "get") }); + var dematerialize_1 = require_dematerialize(); + Object.defineProperty(exports2, "dematerialize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return dematerialize_1.dematerialize; + }, "get") }); + var distinct_1 = require_distinct(); + Object.defineProperty(exports2, "distinct", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinct_1.distinct; + }, "get") }); + var distinctUntilChanged_1 = require_distinctUntilChanged(); + Object.defineProperty(exports2, "distinctUntilChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinctUntilChanged_1.distinctUntilChanged; + }, "get") }); + var distinctUntilKeyChanged_1 = require_distinctUntilKeyChanged(); + Object.defineProperty(exports2, "distinctUntilKeyChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return distinctUntilKeyChanged_1.distinctUntilKeyChanged; + }, "get") }); + var elementAt_1 = require_elementAt(); + Object.defineProperty(exports2, "elementAt", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return elementAt_1.elementAt; + }, "get") }); + var endWith_1 = require_endWith(); + Object.defineProperty(exports2, "endWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return endWith_1.endWith; + }, "get") }); + var every_1 = require_every(); + Object.defineProperty(exports2, "every", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return every_1.every; + }, "get") }); + var exhaust_1 = require_exhaust(); + Object.defineProperty(exports2, "exhaust", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaust_1.exhaust; + }, "get") }); + var exhaustAll_1 = require_exhaustAll(); + Object.defineProperty(exports2, "exhaustAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaustAll_1.exhaustAll; + }, "get") }); + var exhaustMap_1 = require_exhaustMap(); + Object.defineProperty(exports2, "exhaustMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return exhaustMap_1.exhaustMap; + }, "get") }); + var expand_1 = require_expand(); + Object.defineProperty(exports2, "expand", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return expand_1.expand; + }, "get") }); + var filter_1 = require_filter2(); + Object.defineProperty(exports2, "filter", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return filter_1.filter; + }, "get") }); + var finalize_1 = require_finalize(); + Object.defineProperty(exports2, "finalize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return finalize_1.finalize; + }, "get") }); + var find_1 = require_find(); + Object.defineProperty(exports2, "find", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return find_1.find; + }, "get") }); + var findIndex_1 = require_findIndex(); + Object.defineProperty(exports2, "findIndex", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return findIndex_1.findIndex; + }, "get") }); + var first_1 = require_first(); + Object.defineProperty(exports2, "first", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return first_1.first; + }, "get") }); + var groupBy_1 = require_groupBy(); + Object.defineProperty(exports2, "groupBy", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return groupBy_1.groupBy; + }, "get") }); + var ignoreElements_1 = require_ignoreElements(); + Object.defineProperty(exports2, "ignoreElements", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return ignoreElements_1.ignoreElements; + }, "get") }); + var isEmpty_1 = require_isEmpty2(); + Object.defineProperty(exports2, "isEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return isEmpty_1.isEmpty; + }, "get") }); + var last_1 = require_last(); + Object.defineProperty(exports2, "last", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return last_1.last; + }, "get") }); + var map_1 = require_map2(); + Object.defineProperty(exports2, "map", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return map_1.map; + }, "get") }); + var mapTo_1 = require_mapTo(); + Object.defineProperty(exports2, "mapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mapTo_1.mapTo; + }, "get") }); + var materialize_1 = require_materialize(); + Object.defineProperty(exports2, "materialize", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return materialize_1.materialize; + }, "get") }); + var max_1 = require_max2(); + Object.defineProperty(exports2, "max", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return max_1.max; + }, "get") }); + var mergeAll_1 = require_mergeAll(); + Object.defineProperty(exports2, "mergeAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeAll_1.mergeAll; + }, "get") }); + var flatMap_1 = require_flatMap(); + Object.defineProperty(exports2, "flatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return flatMap_1.flatMap; + }, "get") }); + var mergeMap_1 = require_mergeMap(); + Object.defineProperty(exports2, "mergeMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeMap_1.mergeMap; + }, "get") }); + var mergeMapTo_1 = require_mergeMapTo(); + Object.defineProperty(exports2, "mergeMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeMapTo_1.mergeMapTo; + }, "get") }); + var mergeScan_1 = require_mergeScan(); + Object.defineProperty(exports2, "mergeScan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeScan_1.mergeScan; + }, "get") }); + var mergeWith_1 = require_mergeWith(); + Object.defineProperty(exports2, "mergeWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return mergeWith_1.mergeWith; + }, "get") }); + var min_1 = require_min(); + Object.defineProperty(exports2, "min", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return min_1.min; + }, "get") }); + var multicast_1 = require_multicast(); + Object.defineProperty(exports2, "multicast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return multicast_1.multicast; + }, "get") }); + var observeOn_1 = require_observeOn(); + Object.defineProperty(exports2, "observeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return observeOn_1.observeOn; + }, "get") }); + var onErrorResumeNextWith_1 = require_onErrorResumeNextWith(); + Object.defineProperty(exports2, "onErrorResumeNextWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return onErrorResumeNextWith_1.onErrorResumeNextWith; + }, "get") }); + var pairwise_1 = require_pairwise(); + Object.defineProperty(exports2, "pairwise", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pairwise_1.pairwise; + }, "get") }); + var pluck_1 = require_pluck(); + Object.defineProperty(exports2, "pluck", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return pluck_1.pluck; + }, "get") }); + var publish_1 = require_publish(); + Object.defineProperty(exports2, "publish", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publish_1.publish; + }, "get") }); + var publishBehavior_1 = require_publishBehavior(); + Object.defineProperty(exports2, "publishBehavior", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishBehavior_1.publishBehavior; + }, "get") }); + var publishLast_1 = require_publishLast(); + Object.defineProperty(exports2, "publishLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishLast_1.publishLast; + }, "get") }); + var publishReplay_1 = require_publishReplay(); + Object.defineProperty(exports2, "publishReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return publishReplay_1.publishReplay; + }, "get") }); + var raceWith_1 = require_raceWith(); + Object.defineProperty(exports2, "raceWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return raceWith_1.raceWith; + }, "get") }); + var reduce_1 = require_reduce(); + Object.defineProperty(exports2, "reduce", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return reduce_1.reduce; + }, "get") }); + var repeat_1 = require_repeat(); + Object.defineProperty(exports2, "repeat", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return repeat_1.repeat; + }, "get") }); + var repeatWhen_1 = require_repeatWhen(); + Object.defineProperty(exports2, "repeatWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return repeatWhen_1.repeatWhen; + }, "get") }); + var retry_1 = require_retry(); + Object.defineProperty(exports2, "retry", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return retry_1.retry; + }, "get") }); + var retryWhen_1 = require_retryWhen(); + Object.defineProperty(exports2, "retryWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return retryWhen_1.retryWhen; + }, "get") }); + var refCount_1 = require_refCount(); + Object.defineProperty(exports2, "refCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return refCount_1.refCount; + }, "get") }); + var sample_1 = require_sample(); + Object.defineProperty(exports2, "sample", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sample_1.sample; + }, "get") }); + var sampleTime_1 = require_sampleTime(); + Object.defineProperty(exports2, "sampleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sampleTime_1.sampleTime; + }, "get") }); + var scan_1 = require_scan(); + Object.defineProperty(exports2, "scan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return scan_1.scan; + }, "get") }); + var sequenceEqual_1 = require_sequenceEqual(); + Object.defineProperty(exports2, "sequenceEqual", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return sequenceEqual_1.sequenceEqual; + }, "get") }); + var share_1 = require_share(); + Object.defineProperty(exports2, "share", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return share_1.share; + }, "get") }); + var shareReplay_1 = require_shareReplay(); + Object.defineProperty(exports2, "shareReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return shareReplay_1.shareReplay; + }, "get") }); + var single_1 = require_single(); + Object.defineProperty(exports2, "single", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return single_1.single; + }, "get") }); + var skip_1 = require_skip(); + Object.defineProperty(exports2, "skip", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skip_1.skip; + }, "get") }); + var skipLast_1 = require_skipLast(); + Object.defineProperty(exports2, "skipLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipLast_1.skipLast; + }, "get") }); + var skipUntil_1 = require_skipUntil(); + Object.defineProperty(exports2, "skipUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipUntil_1.skipUntil; + }, "get") }); + var skipWhile_1 = require_skipWhile(); + Object.defineProperty(exports2, "skipWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return skipWhile_1.skipWhile; + }, "get") }); + var startWith_1 = require_startWith(); + Object.defineProperty(exports2, "startWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return startWith_1.startWith; + }, "get") }); + var subscribeOn_1 = require_subscribeOn(); + Object.defineProperty(exports2, "subscribeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return subscribeOn_1.subscribeOn; + }, "get") }); + var switchAll_1 = require_switchAll(); + Object.defineProperty(exports2, "switchAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchAll_1.switchAll; + }, "get") }); + var switchMap_1 = require_switchMap(); + Object.defineProperty(exports2, "switchMap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchMap_1.switchMap; + }, "get") }); + var switchMapTo_1 = require_switchMapTo(); + Object.defineProperty(exports2, "switchMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchMapTo_1.switchMapTo; + }, "get") }); + var switchScan_1 = require_switchScan(); + Object.defineProperty(exports2, "switchScan", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return switchScan_1.switchScan; + }, "get") }); + var take_1 = require_take(); + Object.defineProperty(exports2, "take", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return take_1.take; + }, "get") }); + var takeLast_1 = require_takeLast(); + Object.defineProperty(exports2, "takeLast", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeLast_1.takeLast; + }, "get") }); + var takeUntil_1 = require_takeUntil(); + Object.defineProperty(exports2, "takeUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeUntil_1.takeUntil; + }, "get") }); + var takeWhile_1 = require_takeWhile(); + Object.defineProperty(exports2, "takeWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return takeWhile_1.takeWhile; + }, "get") }); + var tap_1 = require_tap(); + Object.defineProperty(exports2, "tap", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return tap_1.tap; + }, "get") }); + var throttle_1 = require_throttle(); + Object.defineProperty(exports2, "throttle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttle_1.throttle; + }, "get") }); + var throttleTime_1 = require_throttleTime(); + Object.defineProperty(exports2, "throttleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throttleTime_1.throttleTime; + }, "get") }); + var throwIfEmpty_1 = require_throwIfEmpty(); + Object.defineProperty(exports2, "throwIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return throwIfEmpty_1.throwIfEmpty; + }, "get") }); + var timeInterval_1 = require_timeInterval(); + Object.defineProperty(exports2, "timeInterval", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeInterval_1.timeInterval; + }, "get") }); + var timeout_2 = require_timeout(); + Object.defineProperty(exports2, "timeout", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeout_2.timeout; + }, "get") }); + var timeoutWith_1 = require_timeoutWith(); + Object.defineProperty(exports2, "timeoutWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timeoutWith_1.timeoutWith; + }, "get") }); + var timestamp_1 = require_timestamp(); + Object.defineProperty(exports2, "timestamp", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return timestamp_1.timestamp; + }, "get") }); + var toArray_1 = require_toArray(); + Object.defineProperty(exports2, "toArray", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return toArray_1.toArray; + }, "get") }); + var window_1 = require_window(); + Object.defineProperty(exports2, "window", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return window_1.window; + }, "get") }); + var windowCount_1 = require_windowCount(); + Object.defineProperty(exports2, "windowCount", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowCount_1.windowCount; + }, "get") }); + var windowTime_1 = require_windowTime(); + Object.defineProperty(exports2, "windowTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowTime_1.windowTime; + }, "get") }); + var windowToggle_1 = require_windowToggle(); + Object.defineProperty(exports2, "windowToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowToggle_1.windowToggle; + }, "get") }); + var windowWhen_1 = require_windowWhen(); + Object.defineProperty(exports2, "windowWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return windowWhen_1.windowWhen; + }, "get") }); + var withLatestFrom_1 = require_withLatestFrom(); + Object.defineProperty(exports2, "withLatestFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return withLatestFrom_1.withLatestFrom; + }, "get") }); + var zipAll_1 = require_zipAll(); + Object.defineProperty(exports2, "zipAll", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zipAll_1.zipAll; + }, "get") }); + var zipWith_1 = require_zipWith(); + Object.defineProperty(exports2, "zipWith", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return zipWith_1.zipWith; + }, "get") }); + } +}); + +// node_modules/@nestjs/core/injector/modules-container.js +var require_modules_container = __commonJS({ + "node_modules/@nestjs/core/injector/modules-container.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ModulesContainer = void 0; + var rxjs_1 = require_cjs3(); + var uid_1 = require_dist(); + var ModulesContainer = class extends Map { + static { + __name(this, "ModulesContainer"); + } + constructor() { + super(...arguments); + this._applicationId = (0, uid_1.uid)(21); + this._rpcTargetRegistry$ = new rxjs_1.ReplaySubject(); + } + /** + * Unique identifier of the application instance. + */ + get applicationId() { + return this._applicationId; + } + /** + * Retrieves a module by its identifier. + * @param id The identifier of the module to retrieve. + * @returns The module instance if found, otherwise undefined. + */ + getById(id) { + return Array.from(this.values()).find((moduleRef) => moduleRef.id === id); + } + /** + * Returns the RPC target registry as an observable. + * This registry contains all RPC targets registered in the application. + * @returns An observable that emits the RPC target registry. + */ + getRpcTargetRegistry() { + return this._rpcTargetRegistry$.asObservable(); + } + /** + * Adds an RPC target to the registry. + * @param target The RPC target to add. + */ + addRpcTarget(target) { + this._rpcTargetRegistry$.next(target); + } + }; + exports2.ModulesContainer = ModulesContainer; + } +}); + +// node_modules/@nestjs/core/discovery/discoverable-meta-host-collection.js +var require_discoverable_meta_host_collection = __commonJS({ + "node_modules/@nestjs/core/discovery/discoverable-meta-host-collection.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DiscoverableMetaHostCollection = void 0; + var DiscoverableMetaHostCollection = class _DiscoverableMetaHostCollection { + static { + __name(this, "DiscoverableMetaHostCollection"); + } + /** + * Adds a link between a class reference and a metadata key. + * @param target The class reference. + * @param metadataKey The metadata key. + */ + static addClassMetaHostLink(target, metadataKey) { + this.metaHostLinks.set(target, metadataKey); + } + /** + * Inspects a provider instance wrapper and adds it to the collection of providers + * if it has a metadata key. + * @param hostContainerRef A reference to the modules container. + * @param instanceWrapper A provider instance wrapper. + * @returns void + */ + static inspectProvider(hostContainerRef, instanceWrapper) { + return this.inspectInstanceWrapper(hostContainerRef, instanceWrapper, this.providersByMetaKey); + } + /** + * Inspects a controller instance wrapper and adds it to the collection of controllers + * if it has a metadata key. + * @param hostContainerRef A reference to the modules container. + * @param instanceWrapper A controller's instance wrapper. + * @returns void + */ + static inspectController(hostContainerRef, instanceWrapper) { + return this.inspectInstanceWrapper(hostContainerRef, instanceWrapper, this.controllersByMetaKey); + } + static insertByMetaKey(metaKey, instanceWrapper, collection) { + if (collection.has(metaKey)) { + const wrappers = collection.get(metaKey); + wrappers.add(instanceWrapper); + } else { + const wrappers = /* @__PURE__ */ new Set(); + wrappers.add(instanceWrapper); + collection.set(metaKey, wrappers); + } + } + static getProvidersByMetaKey(hostContainerRef, metaKey) { + const wrappersByMetaKey = this.providersByMetaKey.get(hostContainerRef); + return wrappersByMetaKey?.get(metaKey) ?? /* @__PURE__ */ new Set(); + } + static getControllersByMetaKey(hostContainerRef, metaKey) { + const wrappersByMetaKey = this.controllersByMetaKey.get(hostContainerRef); + return wrappersByMetaKey?.get(metaKey) ?? /* @__PURE__ */ new Set(); + } + static inspectInstanceWrapper(hostContainerRef, instanceWrapper, wrapperByMetaKeyMap) { + const metaKey = _DiscoverableMetaHostCollection.getMetaKeyByInstanceWrapper(instanceWrapper); + if (!metaKey) { + return; + } + let collection; + if (wrapperByMetaKeyMap.has(hostContainerRef)) { + collection = wrapperByMetaKeyMap.get(hostContainerRef); + } else { + collection = /* @__PURE__ */ new Map(); + wrapperByMetaKeyMap.set(hostContainerRef, collection); + } + this.insertByMetaKey(metaKey, instanceWrapper, collection); + } + static getMetaKeyByInstanceWrapper(instanceWrapper) { + return this.metaHostLinks.get( + // NOTE: Regarding the ternary statement below, + // - The condition `!wrapper.metatype` is needed because when we use `useValue` + // the value of `wrapper.metatype` will be `null`. + // - The condition `wrapper.inject` is needed here because when we use + // `useFactory`, the value of `wrapper.metatype` will be the supplied + // factory function. + // For both cases, we should use `wrapper.instance.constructor` instead + // of `wrapper.metatype` to resolve processor's class properly. + // But since calling `wrapper.instance` could degrade overall performance + // we must defer it as much we can. + instanceWrapper.metatype || instanceWrapper.inject ? instanceWrapper.instance?.constructor ?? instanceWrapper.metatype : instanceWrapper.metatype + ); + } + }; + exports2.DiscoverableMetaHostCollection = DiscoverableMetaHostCollection; + DiscoverableMetaHostCollection.metaHostLinks = /* @__PURE__ */ new Map(); + DiscoverableMetaHostCollection.providersByMetaKey = /* @__PURE__ */ new WeakMap(); + DiscoverableMetaHostCollection.controllersByMetaKey = /* @__PURE__ */ new WeakMap(); + } +}); + +// node_modules/@nestjs/core/discovery/discovery-service.js +var require_discovery_service = __commonJS({ + "node_modules/@nestjs/core/discovery/discovery-service.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DiscoveryService = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var uid_1 = require_dist(); + var modules_container_1 = require_modules_container(); + var discoverable_meta_host_collection_1 = require_discoverable_meta_host_collection(); + var DiscoveryService = class DiscoveryService { + static { + __name(this, "DiscoveryService"); + } + constructor(modulesContainer) { + this.modulesContainer = modulesContainer; + } + /** + * Creates a decorator that can be used to decorate classes and methods with metadata. + * The decorator will also add the class to the collection of discoverable classes (by metadata key). + * Decorated classes can be discovered using the `getProviders` and `getControllers` methods. + * @returns A decorator function. + */ + static createDecorator() { + const metadataKey = (0, uid_1.uid)(21); + const decoratorFn = /* @__PURE__ */ __name((opts) => (target, key, descriptor) => { + if (!descriptor) { + discoverable_meta_host_collection_1.DiscoverableMetaHostCollection.addClassMetaHostLink(target, metadataKey); + } + (0, common_12.SetMetadata)(metadataKey, opts ?? {})(target, key, descriptor); + }, "decoratorFn"); + decoratorFn.KEY = metadataKey; + return decoratorFn; + } + /** + * Returns an array of instance wrappers (providers). + * Depending on the options, the array will contain either all providers or only providers with the specified metadata key. + * @param options Discovery options. + * @param modules A list of modules to filter by. + * @returns An array of instance wrappers (providers). + */ + getProviders(options = {}, modules = this.getModules(options)) { + if ("metadataKey" in options) { + const providers2 = discoverable_meta_host_collection_1.DiscoverableMetaHostCollection.getProvidersByMetaKey(this.modulesContainer, options.metadataKey); + return Array.from(providers2); + } + const providers = modules.map((item) => [...item.providers.values()]); + return (0, common_12.flatten)(providers); + } + /** + * Returns an array of instance wrappers (controllers). + * Depending on the options, the array will contain either all controllers or only controllers with the specified metadata key. + * @param options Discovery options. + * @param modules A list of modules to filter by. + * @returns An array of instance wrappers (controllers). + */ + getControllers(options = {}, modules = this.getModules(options)) { + if ("metadataKey" in options) { + const controllers2 = discoverable_meta_host_collection_1.DiscoverableMetaHostCollection.getControllersByMetaKey(this.modulesContainer, options.metadataKey); + return Array.from(controllers2); + } + const controllers = modules.map((item) => [...item.controllers.values()]); + return (0, common_12.flatten)(controllers); + } + /** + * Retrieves metadata from the specified instance wrapper. + * @param decorator The decorator to retrieve metadata of. + * @param instanceWrapper Reference to the instance wrapper. + * @param methodKey An optional method key to retrieve metadata from. + * @returns Discovered metadata. + */ + getMetadataByDecorator(decorator, instanceWrapper, methodKey) { + if (methodKey) { + return Reflect.getMetadata(decorator.KEY, instanceWrapper.instance[methodKey]); + } + const clsRef = instanceWrapper.instance?.constructor ?? instanceWrapper.metatype; + return Reflect.getMetadata(decorator.KEY, clsRef); + } + /** + * Returns a list of modules to be used for discovery. + */ + getModules(options = {}) { + const includeInOpts = "include" in options; + if (!includeInOpts) { + const moduleRefs = [...this.modulesContainer.values()]; + return moduleRefs; + } + const whitelisted = this.includeWhitelisted(options.include); + return whitelisted; + } + includeWhitelisted(include) { + const moduleRefs = [...this.modulesContainer.values()]; + return moduleRefs.filter(({ metatype }) => include.some((item) => item === metatype)); + } + }; + exports2.DiscoveryService = DiscoveryService; + exports2.DiscoveryService = DiscoveryService = tslib_1.__decorate([ + (0, common_12.Injectable)(), + tslib_1.__metadata("design:paramtypes", [modules_container_1.ModulesContainer]) + ], DiscoveryService); + } +}); + +// node_modules/@nestjs/core/discovery/discovery-module.js +var require_discovery_module = __commonJS({ + "node_modules/@nestjs/core/discovery/discovery-module.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DiscoveryModule = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var metadata_scanner_1 = require_metadata_scanner(); + var discovery_service_1 = require_discovery_service(); + var DiscoveryModule = class DiscoveryModule { + static { + __name(this, "DiscoveryModule"); + } + }; + exports2.DiscoveryModule = DiscoveryModule; + exports2.DiscoveryModule = DiscoveryModule = tslib_1.__decorate([ + (0, common_12.Module)({ + providers: [metadata_scanner_1.MetadataScanner, discovery_service_1.DiscoveryService], + exports: [metadata_scanner_1.MetadataScanner, discovery_service_1.DiscoveryService] + }) + ], DiscoveryModule); + } +}); + +// node_modules/@nestjs/core/discovery/index.js +var require_discovery = __commonJS({ + "node_modules/@nestjs/core/discovery/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_discovery_module(), exports2); + tslib_1.__exportStar(require_discovery_service(), exports2); + } +}); + +// node_modules/@nestjs/core/helpers/http-adapter-host.js +var require_http_adapter_host = __commonJS({ + "node_modules/@nestjs/core/helpers/http-adapter-host.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HttpAdapterHost = void 0; + var rxjs_1 = require_cjs3(); + var HttpAdapterHost = class { + static { + __name(this, "HttpAdapterHost"); + } + constructor() { + this._listen$ = new rxjs_1.Subject(); + this._init$ = new rxjs_1.ReplaySubject(); + this.isListening = false; + } + /** + * Accessor for the underlying `HttpAdapter` + * + * @param httpAdapter reference to the `HttpAdapter` to be set + */ + set httpAdapter(httpAdapter) { + this._httpAdapter = httpAdapter; + this._init$.next(); + this._init$.complete(); + } + /** + * Accessor for the underlying `HttpAdapter` + * + * @example + * `const httpAdapter = adapterHost.httpAdapter;` + */ + get httpAdapter() { + return this._httpAdapter; + } + /** + * Observable that allows to subscribe to the `listen` event. + * This event is emitted when the HTTP application is listening for incoming requests. + */ + get listen$() { + return this._listen$.asObservable(); + } + /** + * Observable that allows to subscribe to the `init` event. + * This event is emitted when the HTTP application is initialized. + */ + get init$() { + return this._init$.asObservable(); + } + /** + * Sets the listening state of the application. + */ + set listening(listening) { + this.isListening = listening; + if (listening) { + this._listen$.next(); + this._listen$.complete(); + } + } + /** + * Returns a boolean indicating whether the application is listening for incoming requests. + */ + get listening() { + return this.isListening; + } + }; + exports2.HttpAdapterHost = HttpAdapterHost; + } +}); + +// node_modules/@nestjs/core/exceptions/base-exception-filter.js +var require_base_exception_filter = __commonJS({ + "node_modules/@nestjs/core/exceptions/base-exception-filter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BaseExceptionFilter = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var constants_1 = require_constants(); + var http_adapter_host_1 = require_http_adapter_host(); + var BaseExceptionFilter = class _BaseExceptionFilter { + static { + __name(this, "BaseExceptionFilter"); + } + constructor(applicationRef) { + this.applicationRef = applicationRef; + } + catch(exception, host) { + const applicationRef = this.applicationRef || this.httpAdapterHost && this.httpAdapterHost.httpAdapter; + if (!(exception instanceof common_12.HttpException)) { + return this.handleUnknownError(exception, host, applicationRef); + } + const res = exception.getResponse(); + const message = (0, shared_utils_1.isObject)(res) ? res : { + statusCode: exception.getStatus(), + message: res + }; + const response = host.getArgByIndex(1); + if (!applicationRef.isHeadersSent(response)) { + applicationRef.reply(response, message, exception.getStatus()); + } else { + applicationRef.end(response); + } + } + handleUnknownError(exception, host, applicationRef) { + const body = this.isHttpError(exception) ? { + statusCode: exception.statusCode, + message: exception.message + } : { + statusCode: common_12.HttpStatus.INTERNAL_SERVER_ERROR, + message: constants_1.MESSAGES.UNKNOWN_EXCEPTION_MESSAGE + }; + const response = host.getArgByIndex(1); + if (!applicationRef.isHeadersSent(response)) { + applicationRef.reply(response, body, body.statusCode); + } else { + applicationRef.end(response); + } + if (!(exception instanceof common_12.IntrinsicException)) { + _BaseExceptionFilter.logger.error(exception); + } + } + isExceptionObject(err) { + return (0, shared_utils_1.isObject)(err) && !!err.message; + } + /** + * Checks if the thrown error comes from the "http-errors" library. + * @param err error object + */ + isHttpError(err) { + return err?.statusCode && err?.message; + } + }; + exports2.BaseExceptionFilter = BaseExceptionFilter; + BaseExceptionFilter.logger = new common_12.Logger("ExceptionsHandler"); + tslib_1.__decorate([ + (0, common_12.Optional)(), + (0, common_12.Inject)(), + tslib_1.__metadata("design:type", http_adapter_host_1.HttpAdapterHost) + ], BaseExceptionFilter.prototype, "httpAdapterHost", void 0); + } +}); + +// node_modules/@nestjs/core/exceptions/index.js +var require_exceptions2 = __commonJS({ + "node_modules/@nestjs/core/exceptions/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_base_exception_filter(), exports2); + } +}); + +// node_modules/@nestjs/core/router/request/request-constants.js +var require_request_constants = __commonJS({ + "node_modules/@nestjs/core/router/request/request-constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.REQUEST_CONTEXT_ID = exports2.REQUEST = void 0; + exports2.REQUEST = "REQUEST"; + exports2.REQUEST_CONTEXT_ID = /* @__PURE__ */ Symbol("REQUEST_CONTEXT_ID"); + } +}); + +// node_modules/@nestjs/core/helpers/context-id-factory.js +var require_context_id_factory = __commonJS({ + "node_modules/@nestjs/core/helpers/context-id-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ContextIdFactory = void 0; + exports2.createContextId = createContextId; + var shared_utils_1 = require_shared_utils(); + var request_constants_1 = require_request_constants(); + function createContextId() { + return { id: Math.random() }; + } + __name(createContextId, "createContextId"); + var ContextIdFactory = class _ContextIdFactory { + static { + __name(this, "ContextIdFactory"); + } + /** + * Generates a context identifier based on the request object. + */ + static create() { + return createContextId(); + } + /** + * Generates a random identifier to track asynchronous execution context. + * @param request request object + */ + static getByRequest(request, propsToInspect = ["raw"]) { + if (!request) { + return _ContextIdFactory.create(); + } + if (request[request_constants_1.REQUEST_CONTEXT_ID]) { + return request[request_constants_1.REQUEST_CONTEXT_ID]; + } + for (const key of propsToInspect) { + if (request[key]?.[request_constants_1.REQUEST_CONTEXT_ID]) { + return request[key][request_constants_1.REQUEST_CONTEXT_ID]; + } + } + if (!this.strategy) { + return _ContextIdFactory.create(); + } + const contextId = createContextId(); + const resolverObjectOrFunction = this.strategy.attach(contextId, request); + if (this.isContextIdResolverWithPayload(resolverObjectOrFunction)) { + contextId.getParent = resolverObjectOrFunction.resolve; + contextId.payload = resolverObjectOrFunction.payload; + } else { + contextId.getParent = resolverObjectOrFunction; + } + return contextId; + } + /** + * Registers a custom context id strategy that lets you attach + * a parent context id to the existing context id object. + * @param strategy strategy instance + */ + static apply(strategy) { + this.strategy = strategy; + } + static isContextIdResolverWithPayload(resolverOrResolverFn) { + return (0, shared_utils_1.isObject)(resolverOrResolverFn); + } + }; + exports2.ContextIdFactory = ContextIdFactory; + } +}); + +// node_modules/@nestjs/core/injector/constants.js +var require_constants5 = __commonJS({ + "node_modules/@nestjs/core/injector/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.STATIC_CONTEXT = exports2.CONTROLLER_ID_KEY = void 0; + exports2.CONTROLLER_ID_KEY = "CONTROLLER_ID"; + var STATIC_CONTEXT_ID = 1; + exports2.STATIC_CONTEXT = Object.freeze({ + id: STATIC_CONTEXT_ID + }); + } +}); + +// node_modules/@nestjs/core/helpers/context-creator.js +var require_context_creator = __commonJS({ + "node_modules/@nestjs/core/helpers/context-creator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ContextCreator = void 0; + var constants_1 = require_constants5(); + var ContextCreator = class { + static { + __name(this, "ContextCreator"); + } + createContext(instance, callback, metadataKey, contextId = constants_1.STATIC_CONTEXT, inquirerId) { + const globalMetadata = this.getGlobalMetadata && this.getGlobalMetadata(contextId, inquirerId); + const classMetadata = this.reflectClassMetadata(instance, metadataKey); + const methodMetadata = this.reflectMethodMetadata(callback, metadataKey); + return [ + ...this.createConcreteContext(globalMetadata || [], contextId, inquirerId), + ...this.createConcreteContext(classMetadata, contextId, inquirerId), + ...this.createConcreteContext(methodMetadata, contextId, inquirerId) + ]; + } + reflectClassMetadata(instance, metadataKey) { + const prototype = Object.getPrototypeOf(instance); + return Reflect.getMetadata(metadataKey, prototype.constructor); + } + reflectMethodMetadata(callback, metadataKey) { + return Reflect.getMetadata(metadataKey, callback); + } + getContextId(contextId, instanceWrapper) { + return contextId.getParent ? contextId.getParent({ + token: instanceWrapper.token, + isTreeDurable: instanceWrapper.isDependencyTreeDurable() + }) : contextId; + } + }; + exports2.ContextCreator = ContextCreator; + } +}); + +// node_modules/@nestjs/core/exceptions/base-exception-filter-context.js +var require_base_exception_filter_context = __commonJS({ + "node_modules/@nestjs/core/exceptions/base-exception-filter-context.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BaseExceptionFilterContext = void 0; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var context_creator_1 = require_context_creator(); + var constants_2 = require_constants5(); + var BaseExceptionFilterContext = class extends context_creator_1.ContextCreator { + static { + __name(this, "BaseExceptionFilterContext"); + } + constructor(container) { + super(); + this.container = container; + } + createConcreteContext(metadata, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + if ((0, shared_utils_1.isEmpty)(metadata)) { + return []; + } + return (0, iterare_1.iterate)(metadata).filter((instance) => instance && ((0, shared_utils_1.isFunction)(instance.catch) || instance.name)).map((filter) => this.getFilterInstance(filter, contextId, inquirerId)).filter((item) => !!item).map((instance) => ({ + func: instance.catch.bind(instance), + exceptionMetatypes: this.reflectCatchExceptions(instance) + })).toArray(); + } + getFilterInstance(filter, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + const isObject = !!filter.catch; + if (isObject) { + return filter; + } + const instanceWrapper = this.getInstanceByMetatype(filter); + if (!instanceWrapper) { + return null; + } + const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId); + return instanceHost && instanceHost.instance; + } + getInstanceByMetatype(metatype) { + if (!this.moduleContext) { + return; + } + const collection = this.container.getModules(); + const moduleRef = collection.get(this.moduleContext); + if (!moduleRef) { + return; + } + return moduleRef.injectables.get(metatype); + } + reflectCatchExceptions(instance) { + const prototype = Object.getPrototypeOf(instance); + return Reflect.getMetadata(constants_1.FILTER_CATCH_EXCEPTIONS, prototype.constructor) || []; + } + }; + exports2.BaseExceptionFilterContext = BaseExceptionFilterContext; + } +}); + +// node_modules/@nestjs/common/utils/select-exception-filter-metadata.util.js +var require_select_exception_filter_metadata_util = __commonJS({ + "node_modules/@nestjs/common/utils/select-exception-filter-metadata.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.selectExceptionFilterMetadata = void 0; + var selectExceptionFilterMetadata = /* @__PURE__ */ __name((filters, exception) => filters.find(({ exceptionMetatypes }) => !exceptionMetatypes.length || exceptionMetatypes.some((ExceptionMetaType) => exception instanceof ExceptionMetaType)), "selectExceptionFilterMetadata"); + exports2.selectExceptionFilterMetadata = selectExceptionFilterMetadata; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/runtime.exception.js +var require_runtime_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/runtime.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RuntimeException = void 0; + var RuntimeException = class extends Error { + static { + __name(this, "RuntimeException"); + } + constructor(message = ``) { + super(message); + } + what() { + return this.message; + } + }; + exports2.RuntimeException = RuntimeException; + } +}); + +// node_modules/@nestjs/core/errors/messages.js +var require_messages = __commonJS({ + "node_modules/@nestjs/core/errors/messages.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MICROSERVICES_PACKAGE_NOT_FOUND_EXCEPTION = exports2.INVALID_EXCEPTION_FILTER = exports2.UNHANDLED_RUNTIME_EXCEPTION = exports2.INVALID_MIDDLEWARE_CONFIGURATION = exports2.UNKNOWN_REQUEST_MAPPING = exports2.INVALID_CLASS_SCOPE_MESSAGE = exports2.INVALID_CLASS_MESSAGE = exports2.UNKNOWN_EXPORT_MESSAGE = exports2.UNDEFINED_MODULE_MESSAGE = exports2.USING_INVALID_CLASS_AS_A_MODULE_MESSAGE = exports2.INVALID_MODULE_MESSAGE = exports2.UNDEFINED_FORWARDREF_MESSAGE = exports2.INVALID_MIDDLEWARE_MESSAGE = exports2.UNKNOWN_DEPENDENCIES_MESSAGE = void 0; + var shared_utils_1 = require_shared_utils(); + var getInstanceName = /* @__PURE__ */ __name((instance) => { + if (instance?.forwardRef) { + return instance.forwardRef()?.name; + } + if (instance?.module) { + return instance.module?.name; + } + return instance?.name; + }, "getInstanceName"); + var getDependencyName = /* @__PURE__ */ __name((dependency, fallbackValue, disambiguated = true) => ( + // use class name + getInstanceName(dependency) || // use injection token (symbol) + (0, shared_utils_1.isSymbol)(dependency) && dependency.toString() || // use string directly + (dependency ? disambiguated ? `"${dependency}"` : dependency : void 0) || // otherwise + fallbackValue + ), "getDependencyName"); + var getModuleName = /* @__PURE__ */ __name((module3) => module3 && getInstanceName(module3.metatype) || "current", "getModuleName"); + var stringifyScope = /* @__PURE__ */ __name((scope) => (scope || []).map(getInstanceName).join(" -> "), "stringifyScope"); + var UNKNOWN_DEPENDENCIES_MESSAGE = /* @__PURE__ */ __name((type, unknownDependencyContext, moduleRef) => { + const { index, name, dependencies, key } = unknownDependencyContext; + const moduleName = getModuleName(moduleRef); + const dependencyName = getDependencyName(name, "dependency"); + const isImportTypeIssue = !(0, shared_utils_1.isNil)(index) && dependencies && (dependencies[index] === void 0 || dependencies[index] === Object || typeof dependencies[index] === "function" && dependencies[index].name === "Object"); + let potentialSolutions; + if (isImportTypeIssue) { + potentialSolutions = ` + +Potential solutions: +- The dependency at index [${index}] appears to be undefined at runtime +- This commonly occurs when using 'import type' instead of 'import' for injectable classes +- Check your imports and change: + \u274C import type { SomeService } from './some.service'; + \u2705 import { SomeService } from './some.service'; +- Ensure the imported class is decorated with @Injectable() or is a valid provider +- If using dynamic imports, ensure the class is available at runtime, not just for type checking + +For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors`; + } else { + potentialSolutions = // If module's name is well defined + moduleName !== "current" ? ` + +Potential solutions: +- Is ${moduleName} a valid NestJS module? +- If ${dependencyName} is a provider, is it part of the current ${moduleName}? +- If ${dependencyName} is exported from a separate @Module, is that module imported within ${moduleName}? + @Module({ + imports: [ /* the Module containing ${dependencyName} */ ] + }) + +For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors` : ` + +Potential solutions: +- If ${dependencyName} is a provider, is it part of the current Module? +- If ${dependencyName} is exported from a separate @Module, is that module imported within Module? + @Module({ + imports: [ /* the Module containing ${dependencyName} */ ] + }) + +For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors`; + } + let message = `Nest can't resolve dependencies of the ${type.toString()}`; + if ((0, shared_utils_1.isNil)(index)) { + message += `. Please make sure that the "${key.toString()}" property is available in the current context.${potentialSolutions}`; + return message; + } + const dependenciesName = (dependencies || []).map((dependencyName2) => getDependencyName(dependencyName2, "+", false)); + dependenciesName[index] = "?"; + const tokenFragment = !isImportTypeIssue && name !== void 0 ? ` ${dependencyName}` : ""; + const contextLabel = isImportTypeIssue ? "current" : moduleName; + message += ` (`; + message += dependenciesName.join(", "); + message += `). Please make sure that the argument${tokenFragment} at index [${index}]`; + message += ` is available in the ${contextLabel} module.`; + message += potentialSolutions; + return message; + }, "UNKNOWN_DEPENDENCIES_MESSAGE"); + exports2.UNKNOWN_DEPENDENCIES_MESSAGE = UNKNOWN_DEPENDENCIES_MESSAGE; + var INVALID_MIDDLEWARE_MESSAGE = /* @__PURE__ */ __name((text, name) => `The middleware doesn't provide the 'use' method (${name})`, "INVALID_MIDDLEWARE_MESSAGE"); + exports2.INVALID_MIDDLEWARE_MESSAGE = INVALID_MIDDLEWARE_MESSAGE; + var UNDEFINED_FORWARDREF_MESSAGE = /* @__PURE__ */ __name((scope) => `Nest cannot create the module instance. Often, this is because of a circular dependency between modules. Use forwardRef() to avoid it. + +(Read more: https://docs.nestjs.com/fundamentals/circular-dependency) +Scope [${stringifyScope(scope)}] +`, "UNDEFINED_FORWARDREF_MESSAGE"); + exports2.UNDEFINED_FORWARDREF_MESSAGE = UNDEFINED_FORWARDREF_MESSAGE; + var INVALID_MODULE_MESSAGE = /* @__PURE__ */ __name((parentModule, index, scope, receivedValue) => { + const parentModuleName = parentModule?.name || "module"; + let formattedValue; + let receivedType; + if (receivedValue === null) { + formattedValue = "null"; + receivedType = "null"; + } else if (typeof receivedValue === "string") { + formattedValue = `"${receivedValue}"`; + receivedType = "string"; + } else { + formattedValue = String(receivedValue); + receivedType = typeof receivedValue; + } + return `Nest cannot create the ${parentModuleName} instance. +Received an unexpected value at index [${index}] of the ${parentModuleName} "imports" array. +The received value \`${formattedValue}\` is of type "${receivedType}". + +Scope [${stringifyScope(scope)}]`; + }, "INVALID_MODULE_MESSAGE"); + exports2.INVALID_MODULE_MESSAGE = INVALID_MODULE_MESSAGE; + var USING_INVALID_CLASS_AS_A_MODULE_MESSAGE = /* @__PURE__ */ __name((metatypeUsedAsAModule, scope, classKind) => { + const metatypeNameQuote = `"${getInstanceName(metatypeUsedAsAModule)}"`; + let hint; + switch (classKind) { + case "controller": + hint = `${metatypeNameQuote} is decorated with @Controller() and cannot appear in the "imports" array of a module. Please move ${metatypeNameQuote} to the "controllers" array of the importing module instead.`; + break; + case "provider": + hint = `${metatypeNameQuote} is decorated with @Injectable() and cannot appear in the "imports" array of a module. Please move ${metatypeNameQuote} to the "providers" array of the importing module instead.`; + break; + case "filter": + hint = `${metatypeNameQuote} is decorated with @Catch() and cannot appear in the "imports" array of a module. Please move ${metatypeNameQuote} to the "providers" array (using the APP_FILTER token to apply it globally) or apply it via @UseFilters() instead.`; + break; + } + return `${hint} + +Scope [${stringifyScope(scope)}] +`; + }, "USING_INVALID_CLASS_AS_A_MODULE_MESSAGE"); + exports2.USING_INVALID_CLASS_AS_A_MODULE_MESSAGE = USING_INVALID_CLASS_AS_A_MODULE_MESSAGE; + var UNDEFINED_MODULE_MESSAGE = /* @__PURE__ */ __name((parentModule, index, scope) => { + const parentModuleName = parentModule?.name || "module"; + return `Nest cannot create the ${parentModuleName} instance. +The module at index [${index}] of the ${parentModuleName} "imports" array is undefined. + +Potential causes: +- A circular dependency between modules. Use forwardRef() to avoid it. Read more: https://docs.nestjs.com/fundamentals/circular-dependency +- The module at index [${index}] is of type "undefined". Check your import statements and the type of the module. + +Scope [${stringifyScope(scope)}]`; + }, "UNDEFINED_MODULE_MESSAGE"); + exports2.UNDEFINED_MODULE_MESSAGE = UNDEFINED_MODULE_MESSAGE; + var UNKNOWN_EXPORT_MESSAGE = /* @__PURE__ */ __name((token = "item", module3) => { + token = (0, shared_utils_1.isSymbol)(token) ? token.toString() : token; + return `Nest cannot export a provider/module that is not a part of the currently processed module (${module3}). Please verify whether the exported ${token} is available in this particular context. + +Possible Solutions: +- Is ${token} part of the relevant providers/imports within ${module3}? + +For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors +`; + }, "UNKNOWN_EXPORT_MESSAGE"); + exports2.UNKNOWN_EXPORT_MESSAGE = UNKNOWN_EXPORT_MESSAGE; + var INVALID_CLASS_MESSAGE = /* @__PURE__ */ __name((text, value) => `ModuleRef cannot instantiate class (${value} is not constructable).`, "INVALID_CLASS_MESSAGE"); + exports2.INVALID_CLASS_MESSAGE = INVALID_CLASS_MESSAGE; + var INVALID_CLASS_SCOPE_MESSAGE = /* @__PURE__ */ __name((text, name) => `${name || "This class"} is marked as a scoped provider. Request and transient-scoped providers can't be used in combination with "get()" method. Please, use "resolve()" instead.`, "INVALID_CLASS_SCOPE_MESSAGE"); + exports2.INVALID_CLASS_SCOPE_MESSAGE = INVALID_CLASS_SCOPE_MESSAGE; + var UNKNOWN_REQUEST_MAPPING = /* @__PURE__ */ __name((metatype) => { + const className = metatype.name; + return className ? `An invalid controller has been detected. "${className}" does not have the @Controller() decorator but it is being listed in the "controllers" array of some module.` : `An invalid controller has been detected. Perhaps, one of your controllers is missing the @Controller() decorator.`; + }, "UNKNOWN_REQUEST_MAPPING"); + exports2.UNKNOWN_REQUEST_MAPPING = UNKNOWN_REQUEST_MAPPING; + exports2.INVALID_MIDDLEWARE_CONFIGURATION = `An invalid middleware configuration has been passed inside the module 'configure()' method.`; + exports2.UNHANDLED_RUNTIME_EXCEPTION = `Unhandled Runtime Exception.`; + exports2.INVALID_EXCEPTION_FILTER = `Invalid exception filters (@UseFilters()).`; + exports2.MICROSERVICES_PACKAGE_NOT_FOUND_EXCEPTION = `Unable to load @nestjs/microservices package. (Please make sure that it's already installed.)`; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/invalid-exception-filter.exception.js +var require_invalid_exception_filter_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/invalid-exception-filter.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InvalidExceptionFilterException = void 0; + var runtime_exception_1 = require_runtime_exception(); + var messages_1 = require_messages(); + var InvalidExceptionFilterException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "InvalidExceptionFilterException"); + } + constructor() { + super(messages_1.INVALID_EXCEPTION_FILTER); + } + }; + exports2.InvalidExceptionFilterException = InvalidExceptionFilterException; + } +}); + +// node_modules/@nestjs/core/exceptions/external-exception-filter.js +var require_external_exception_filter = __commonJS({ + "node_modules/@nestjs/core/exceptions/external-exception-filter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExternalExceptionFilter = void 0; + var common_12 = require_common(); + var ExternalExceptionFilter = class _ExternalExceptionFilter { + static { + __name(this, "ExternalExceptionFilter"); + } + catch(exception, host) { + if (exception instanceof Error && !(exception instanceof common_12.IntrinsicException)) { + _ExternalExceptionFilter.logger.error(exception); + } + throw exception; + } + }; + exports2.ExternalExceptionFilter = ExternalExceptionFilter; + ExternalExceptionFilter.logger = new common_12.Logger("ExceptionsHandler"); + } +}); + +// node_modules/@nestjs/core/exceptions/external-exceptions-handler.js +var require_external_exceptions_handler = __commonJS({ + "node_modules/@nestjs/core/exceptions/external-exceptions-handler.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExternalExceptionsHandler = void 0; + var select_exception_filter_metadata_util_1 = require_select_exception_filter_metadata_util(); + var shared_utils_1 = require_shared_utils(); + var invalid_exception_filter_exception_1 = require_invalid_exception_filter_exception(); + var external_exception_filter_1 = require_external_exception_filter(); + var ExternalExceptionsHandler = class extends external_exception_filter_1.ExternalExceptionFilter { + static { + __name(this, "ExternalExceptionsHandler"); + } + constructor() { + super(...arguments); + this.filters = []; + } + next(exception, host) { + const result = this.invokeCustomFilters(exception, host); + if (result) { + return result; + } + return super.catch(exception, host); + } + setCustomFilters(filters) { + if (!Array.isArray(filters)) { + throw new invalid_exception_filter_exception_1.InvalidExceptionFilterException(); + } + this.filters = filters; + } + invokeCustomFilters(exception, host) { + if ((0, shared_utils_1.isEmpty)(this.filters)) { + return null; + } + const filter = (0, select_exception_filter_metadata_util_1.selectExceptionFilterMetadata)(this.filters, exception); + return filter ? filter.func(exception, host) : null; + } + }; + exports2.ExternalExceptionsHandler = ExternalExceptionsHandler; + } +}); + +// node_modules/@nestjs/core/exceptions/external-exception-filter-context.js +var require_external_exception_filter_context = __commonJS({ + "node_modules/@nestjs/core/exceptions/external-exception-filter-context.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExternalExceptionFilterContext = void 0; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var constants_2 = require_constants5(); + var base_exception_filter_context_1 = require_base_exception_filter_context(); + var external_exceptions_handler_1 = require_external_exceptions_handler(); + var ExternalExceptionFilterContext = class extends base_exception_filter_context_1.BaseExceptionFilterContext { + static { + __name(this, "ExternalExceptionFilterContext"); + } + constructor(container, config) { + super(container); + this.config = config; + } + create(instance, callback, module3, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + this.moduleContext = module3; + const exceptionHandler = new external_exceptions_handler_1.ExternalExceptionsHandler(); + const filters = this.createContext(instance, callback, constants_1.EXCEPTION_FILTERS_METADATA, contextId, inquirerId); + if ((0, shared_utils_1.isEmpty)(filters)) { + return exceptionHandler; + } + exceptionHandler.setCustomFilters(filters.reverse()); + return exceptionHandler; + } + getGlobalMetadata(contextId = constants_2.STATIC_CONTEXT, inquirerId) { + if (!this.config) { + return []; + } + const globalFilters = this.config.getGlobalFilters(); + if (contextId === constants_2.STATIC_CONTEXT && !inquirerId) { + return globalFilters; + } + const scopedFilterWrappers = this.config.getGlobalRequestFilters(); + const scopedFilters = (0, iterare_1.iterate)(scopedFilterWrappers).map((wrapper) => wrapper.getInstanceByContextId(contextId, inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalFilters.concat(scopedFilters); + } + }; + exports2.ExternalExceptionFilterContext = ExternalExceptionFilterContext; + } +}); + +// node_modules/@nestjs/core/guards/constants.js +var require_constants6 = __commonJS({ + "node_modules/@nestjs/core/guards/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.FORBIDDEN_MESSAGE = void 0; + exports2.FORBIDDEN_MESSAGE = "Forbidden resource"; + } +}); + +// node_modules/@nestjs/core/helpers/execution-context-host.js +var require_execution_context_host = __commonJS({ + "node_modules/@nestjs/core/helpers/execution-context-host.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExecutionContextHost = void 0; + var ExecutionContextHost = class { + static { + __name(this, "ExecutionContextHost"); + } + constructor(args, constructorRef = null, handler = null) { + this.args = args; + this.constructorRef = constructorRef; + this.handler = handler; + this.contextType = "http"; + } + setType(type) { + type && (this.contextType = type); + } + getType() { + return this.contextType; + } + getClass() { + return this.constructorRef; + } + getHandler() { + return this.handler; + } + getArgs() { + return this.args; + } + getArgByIndex(index) { + return this.args[index]; + } + switchToRpc() { + return Object.assign(this, { + getData: /* @__PURE__ */ __name(() => this.getArgByIndex(0), "getData"), + getContext: /* @__PURE__ */ __name(() => this.getArgByIndex(1), "getContext") + }); + } + switchToHttp() { + return Object.assign(this, { + getRequest: /* @__PURE__ */ __name(() => this.getArgByIndex(0), "getRequest"), + getResponse: /* @__PURE__ */ __name(() => this.getArgByIndex(1), "getResponse"), + getNext: /* @__PURE__ */ __name(() => this.getArgByIndex(2), "getNext") + }); + } + switchToWs() { + return Object.assign(this, { + getClient: /* @__PURE__ */ __name(() => this.getArgByIndex(0), "getClient"), + getData: /* @__PURE__ */ __name(() => this.getArgByIndex(1), "getData"), + getPattern: /* @__PURE__ */ __name(() => this.getArgByIndex(this.getArgs().length - 1), "getPattern") + }); + } + }; + exports2.ExecutionContextHost = ExecutionContextHost; + } +}); + +// node_modules/@nestjs/core/guards/guards-consumer.js +var require_guards_consumer = __commonJS({ + "node_modules/@nestjs/core/guards/guards-consumer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.GuardsConsumer = void 0; + var shared_utils_1 = require_shared_utils(); + var rxjs_1 = require_cjs3(); + var execution_context_host_1 = require_execution_context_host(); + var GuardsConsumer = class { + static { + __name(this, "GuardsConsumer"); + } + async tryActivate(guards, args, instance, callback, type) { + if (!guards || (0, shared_utils_1.isEmpty)(guards)) { + return true; + } + const context = this.createContext(args, instance, callback); + context.setType(type); + for (const guard of guards) { + const result = guard.canActivate(context); + if (typeof result === "boolean") { + if (!result) { + return false; + } + continue; + } + if (await this.pickResult(result)) { + continue; + } + return false; + } + return true; + } + createContext(args, instance, callback) { + return new execution_context_host_1.ExecutionContextHost(args, instance.constructor, callback); + } + async pickResult(result) { + if (result instanceof rxjs_1.Observable) { + return (0, rxjs_1.lastValueFrom)(result); + } + return result; + } + }; + exports2.GuardsConsumer = GuardsConsumer; + } +}); + +// node_modules/@nestjs/core/guards/guards-context-creator.js +var require_guards_context_creator = __commonJS({ + "node_modules/@nestjs/core/guards/guards-context-creator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.GuardsContextCreator = void 0; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var context_creator_1 = require_context_creator(); + var constants_2 = require_constants5(); + var GuardsContextCreator = class extends context_creator_1.ContextCreator { + static { + __name(this, "GuardsContextCreator"); + } + constructor(container, config) { + super(); + this.container = container; + this.config = config; + } + create(instance, callback, module3, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + this.moduleContext = module3; + return this.createContext(instance, callback, constants_1.GUARDS_METADATA, contextId, inquirerId); + } + createConcreteContext(metadata, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + if ((0, shared_utils_1.isEmpty)(metadata)) { + return []; + } + return (0, iterare_1.iterate)(metadata).filter((guard) => guard && (guard.name || guard.canActivate)).map((guard) => this.getGuardInstance(guard, contextId, inquirerId)).filter((guard) => !!guard && (0, shared_utils_1.isFunction)(guard.canActivate)).toArray(); + } + getGuardInstance(metatype, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + const isObject = !!metatype.canActivate; + if (isObject) { + return metatype; + } + const instanceWrapper = this.getInstanceByMetatype(metatype); + if (!instanceWrapper) { + return null; + } + const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId); + return instanceHost && instanceHost.instance; + } + getInstanceByMetatype(metatype) { + if (!this.moduleContext) { + return; + } + const collection = this.container.getModules(); + const moduleRef = collection.get(this.moduleContext); + if (!moduleRef) { + return; + } + const injectables = moduleRef.injectables; + return injectables.get(metatype); + } + getGlobalMetadata(contextId = constants_2.STATIC_CONTEXT, inquirerId) { + if (!this.config) { + return []; + } + const globalGuards = this.config.getGlobalGuards(); + if (contextId === constants_2.STATIC_CONTEXT && !inquirerId) { + return globalGuards; + } + const scopedGuardWrappers = this.config.getGlobalRequestGuards(); + const scopedGuards = (0, iterare_1.iterate)(scopedGuardWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalGuards.concat(scopedGuards); + } + }; + exports2.GuardsContextCreator = GuardsContextCreator; + } +}); + +// node_modules/@nestjs/core/guards/index.js +var require_guards = __commonJS({ + "node_modules/@nestjs/core/guards/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_constants6(), exports2); + tslib_1.__exportStar(require_guards_consumer(), exports2); + tslib_1.__exportStar(require_guards_context_creator(), exports2); + } +}); + +// node_modules/@nestjs/core/interceptors/interceptors-consumer.js +var require_interceptors_consumer = __commonJS({ + "node_modules/@nestjs/core/interceptors/interceptors-consumer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InterceptorsConsumer = void 0; + var shared_utils_1 = require_shared_utils(); + var async_hooks_1 = require("async_hooks"); + var rxjs_1 = require_cjs3(); + var operators_1 = require_operators(); + var execution_context_host_1 = require_execution_context_host(); + var InterceptorsConsumer = class { + static { + __name(this, "InterceptorsConsumer"); + } + async intercept(interceptors, args, instance, callback, next, type) { + if ((0, shared_utils_1.isEmpty)(interceptors)) { + return next(); + } + const context = this.createContext(args, instance, callback); + context.setType(type); + const nextFn = /* @__PURE__ */ __name(async (i = 0) => { + if (i >= interceptors.length) { + return (0, rxjs_1.defer)(async_hooks_1.AsyncResource.bind(() => this.transformDeferred(next))); + } + const handler = { + handle: /* @__PURE__ */ __name(() => (0, rxjs_1.defer)(async_hooks_1.AsyncResource.bind(() => nextFn(i + 1))).pipe((0, operators_1.mergeAll)()), "handle") + }; + return interceptors[i].intercept(context, handler); + }, "nextFn"); + return (0, rxjs_1.defer)(() => nextFn()).pipe((0, operators_1.mergeAll)()); + } + createContext(args, instance, callback) { + return new execution_context_host_1.ExecutionContextHost(args, instance.constructor, callback); + } + transformDeferred(next) { + const nextPromise = next(); + return new rxjs_1.Observable((subscriber) => { + let innerSub; + nextPromise.then((res) => { + if (subscriber.closed) { + if (res instanceof rxjs_1.Observable) { + const sub = res.subscribe({ error: /* @__PURE__ */ __name(() => { + }, "error") }); + sub.unsubscribe(); + } + return; + } + const isDeferred = res instanceof Promise || res instanceof rxjs_1.Observable; + innerSub = (0, rxjs_1.from)(isDeferred ? res : Promise.resolve(res)).subscribe(subscriber); + }).catch((err) => { + if (!subscriber.closed) { + subscriber.error(err); + } + }); + return () => { + innerSub?.unsubscribe(); + }; + }); + } + }; + exports2.InterceptorsConsumer = InterceptorsConsumer; + } +}); + +// node_modules/@nestjs/core/interceptors/interceptors-context-creator.js +var require_interceptors_context_creator = __commonJS({ + "node_modules/@nestjs/core/interceptors/interceptors-context-creator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InterceptorsContextCreator = void 0; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var context_creator_1 = require_context_creator(); + var constants_2 = require_constants5(); + var InterceptorsContextCreator = class extends context_creator_1.ContextCreator { + static { + __name(this, "InterceptorsContextCreator"); + } + constructor(container, config) { + super(); + this.container = container; + this.config = config; + } + create(instance, callback, module3, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + this.moduleContext = module3; + return this.createContext(instance, callback, constants_1.INTERCEPTORS_METADATA, contextId, inquirerId); + } + createConcreteContext(metadata, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + if ((0, shared_utils_1.isEmpty)(metadata)) { + return []; + } + return (0, iterare_1.iterate)(metadata).filter((interceptor) => interceptor && (interceptor.name || interceptor.intercept)).map((interceptor) => this.getInterceptorInstance(interceptor, contextId, inquirerId)).filter((interceptor) => interceptor ? (0, shared_utils_1.isFunction)(interceptor.intercept) : false).toArray(); + } + getInterceptorInstance(metatype, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + const isObject = !!metatype.intercept; + if (isObject) { + return metatype; + } + const instanceWrapper = this.getInstanceByMetatype(metatype); + if (!instanceWrapper) { + return null; + } + const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId); + return instanceHost && instanceHost.instance; + } + getInstanceByMetatype(metatype) { + if (!this.moduleContext) { + return; + } + const collection = this.container.getModules(); + const moduleRef = collection.get(this.moduleContext); + if (!moduleRef) { + return; + } + return moduleRef.injectables.get(metatype); + } + getGlobalMetadata(contextId = constants_2.STATIC_CONTEXT, inquirerId) { + if (!this.config) { + return []; + } + const globalInterceptors = this.config.getGlobalInterceptors(); + if (contextId === constants_2.STATIC_CONTEXT && !inquirerId) { + return globalInterceptors; + } + const scopedInterceptorWrappers = this.config.getGlobalRequestInterceptors(); + const scopedInterceptors = (0, iterare_1.iterate)(scopedInterceptorWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalInterceptors.concat(scopedInterceptors); + } + }; + exports2.InterceptorsContextCreator = InterceptorsContextCreator; + } +}); + +// node_modules/@nestjs/core/interceptors/index.js +var require_interceptors = __commonJS({ + "node_modules/@nestjs/core/interceptors/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_interceptors_consumer(), exports2); + tslib_1.__exportStar(require_interceptors_context_creator(), exports2); + } +}); + +// node_modules/@nestjs/core/pipes/params-token-factory.js +var require_params_token_factory = __commonJS({ + "node_modules/@nestjs/core/pipes/params-token-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParamsTokenFactory = void 0; + var route_paramtypes_enum_1 = require_route_paramtypes_enum(); + var ParamsTokenFactory = class { + static { + __name(this, "ParamsTokenFactory"); + } + exchangeEnumForString(type) { + switch (type) { + case route_paramtypes_enum_1.RouteParamtypes.BODY: + return "body"; + case route_paramtypes_enum_1.RouteParamtypes.PARAM: + return "param"; + case route_paramtypes_enum_1.RouteParamtypes.QUERY: + return "query"; + default: + return "custom"; + } + } + }; + exports2.ParamsTokenFactory = ParamsTokenFactory; + } +}); + +// node_modules/@nestjs/core/pipes/pipes-consumer.js +var require_pipes_consumer = __commonJS({ + "node_modules/@nestjs/core/pipes/pipes-consumer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PipesConsumer = void 0; + var params_token_factory_1 = require_params_token_factory(); + var PipesConsumer = class { + static { + __name(this, "PipesConsumer"); + } + constructor() { + this.paramsTokenFactory = new params_token_factory_1.ParamsTokenFactory(); + } + async apply(value, { metatype, type, data }, pipes) { + const token = this.paramsTokenFactory.exchangeEnumForString(type); + return this.applyPipes(value, { metatype, type: token, data }, pipes); + } + async applyPipes(value, { metatype, type, data }, transforms) { + return transforms.reduce(async (deferredValue, pipe) => { + const val = await deferredValue; + const result = pipe.transform(val, { metatype, type, data }); + return result; + }, Promise.resolve(value)); + } + }; + exports2.PipesConsumer = PipesConsumer; + } +}); + +// node_modules/@nestjs/core/pipes/pipes-context-creator.js +var require_pipes_context_creator = __commonJS({ + "node_modules/@nestjs/core/pipes/pipes-context-creator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PipesContextCreator = void 0; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var context_creator_1 = require_context_creator(); + var constants_2 = require_constants5(); + var PipesContextCreator = class extends context_creator_1.ContextCreator { + static { + __name(this, "PipesContextCreator"); + } + constructor(container, config) { + super(); + this.container = container; + this.config = config; + } + create(instance, callback, moduleKey, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + this.moduleContext = moduleKey; + return this.createContext(instance, callback, constants_1.PIPES_METADATA, contextId, inquirerId); + } + createConcreteContext(metadata, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + if ((0, shared_utils_1.isEmpty)(metadata)) { + return []; + } + return (0, iterare_1.iterate)(metadata).filter((pipe) => pipe && (pipe.name || pipe.transform)).map((pipe) => this.getPipeInstance(pipe, contextId, inquirerId)).filter((pipe) => !!pipe && pipe.transform && (0, shared_utils_1.isFunction)(pipe.transform)).toArray(); + } + getPipeInstance(pipe, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + const isObject = !!pipe.transform; + if (isObject) { + return pipe; + } + const instanceWrapper = this.getInstanceByMetatype(pipe); + if (!instanceWrapper) { + return null; + } + const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId); + return instanceHost && instanceHost.instance; + } + getInstanceByMetatype(metatype) { + if (!this.moduleContext) { + return; + } + const collection = this.container.getModules(); + const moduleRef = collection.get(this.moduleContext); + if (!moduleRef) { + return; + } + return moduleRef.injectables.get(metatype); + } + getGlobalMetadata(contextId = constants_2.STATIC_CONTEXT, inquirerId) { + if (!this.config) { + return []; + } + const globalPipes = this.config.getGlobalPipes(); + if (contextId === constants_2.STATIC_CONTEXT && !inquirerId) { + return globalPipes; + } + const scopedPipeWrappers = this.config.getGlobalRequestPipes(); + const scopedPipes = (0, iterare_1.iterate)(scopedPipeWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalPipes.concat(scopedPipes); + } + setModuleContext(context) { + this.moduleContext = context; + } + }; + exports2.PipesContextCreator = PipesContextCreator; + } +}); + +// node_modules/@nestjs/core/pipes/index.js +var require_pipes2 = __commonJS({ + "node_modules/@nestjs/core/pipes/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_params_token_factory(), exports2); + tslib_1.__exportStar(require_pipes_consumer(), exports2); + tslib_1.__exportStar(require_pipes_context_creator(), exports2); + } +}); + +// node_modules/@nestjs/core/helpers/context-utils.js +var require_context_utils = __commonJS({ + "node_modules/@nestjs/core/helpers/context-utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ContextUtils = void 0; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var execution_context_host_1 = require_execution_context_host(); + var ContextUtils = class { + static { + __name(this, "ContextUtils"); + } + mapParamType(key) { + const keyPair = key.split(":"); + return keyPair[0]; + } + reflectCallbackParamtypes(instance, methodName) { + return Reflect.getMetadata(constants_1.PARAMTYPES_METADATA, instance, methodName); + } + reflectCallbackMetadata(instance, methodName, metadataKey) { + return Reflect.getMetadata(metadataKey, instance.constructor, methodName); + } + reflectPassthrough(instance, methodName) { + return Reflect.getMetadata(constants_1.RESPONSE_PASSTHROUGH_METADATA, instance.constructor, methodName); + } + getArgumentsLength(keys, metadata) { + return keys.length ? Math.max(...keys.map((key) => metadata[key].index)) + 1 : 0; + } + createNullArray(length) { + const a = new Array(length); + for (let i = 0; i < length; ++i) + a[i] = void 0; + return a; + } + mergeParamsMetatypes(paramsProperties, paramtypes) { + if (!paramtypes) { + return paramsProperties; + } + return paramsProperties.map((param) => ({ + ...param, + metatype: paramtypes[param.index] + })); + } + getCustomFactory(factory, data, contextFactory) { + return (0, shared_utils_1.isFunction)(factory) ? (...args) => factory(data, contextFactory(args)) : () => null; + } + getContextFactory(contextType, instance, callback) { + const type = instance && instance.constructor; + return (args) => { + const ctx = new execution_context_host_1.ExecutionContextHost(args, type, callback); + ctx.setType(contextType); + return ctx; + }; + } + }; + exports2.ContextUtils = ContextUtils; + } +}); + +// node_modules/@nestjs/core/helpers/external-proxy.js +var require_external_proxy = __commonJS({ + "node_modules/@nestjs/core/helpers/external-proxy.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExternalErrorProxy = void 0; + var execution_context_host_1 = require_execution_context_host(); + var ExternalErrorProxy = class { + static { + __name(this, "ExternalErrorProxy"); + } + createProxy(targetCallback, exceptionsHandler, type) { + return async (...args) => { + try { + return await targetCallback(...args); + } catch (e) { + const host = new execution_context_host_1.ExecutionContextHost(args); + host.setType(type); + return exceptionsHandler.next(e, host); + } + }; + } + }; + exports2.ExternalErrorProxy = ExternalErrorProxy; + } +}); + +// node_modules/@nestjs/core/helpers/handler-metadata-storage.js +var require_handler_metadata_storage = __commonJS({ + "node_modules/@nestjs/core/helpers/handler-metadata-storage.js"(exports2) { + "use strict"; + var _a; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HandlerMetadataStorage = exports2.HANDLER_METADATA_SYMBOL = void 0; + var constants_1 = require_constants5(); + exports2.HANDLER_METADATA_SYMBOL = /* @__PURE__ */ Symbol.for("handler_metadata:cache"); + var HandlerMetadataStorage = class { + static { + __name(this, "HandlerMetadataStorage"); + } + constructor() { + this[_a] = /* @__PURE__ */ new Map(); + } + set(controller, methodName, metadata) { + const metadataKey = this.getMetadataKey(controller, methodName); + this[exports2.HANDLER_METADATA_SYMBOL].set(metadataKey, metadata); + } + get(controller, methodName) { + const metadataKey = this.getMetadataKey(controller, methodName); + return this[exports2.HANDLER_METADATA_SYMBOL].get(metadataKey); + } + getMetadataKey(controller, methodName) { + const ctor = controller.constructor; + const controllerKey = ctor && (ctor[constants_1.CONTROLLER_ID_KEY] || ctor.name); + return controllerKey + methodName; + } + }; + exports2.HandlerMetadataStorage = HandlerMetadataStorage; + _a = exports2.HANDLER_METADATA_SYMBOL; + } +}); + +// node_modules/@nestjs/core/helpers/external-context-creator.js +var require_external_context_creator = __commonJS({ + "node_modules/@nestjs/core/helpers/external-context-creator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExternalContextCreator = void 0; + var common_12 = require_common(); + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var rxjs_1 = require_cjs3(); + var external_exception_filter_context_1 = require_external_exception_filter_context(); + var guards_1 = require_guards(); + var constants_2 = require_constants6(); + var constants_3 = require_constants5(); + var interceptors_1 = require_interceptors(); + var pipes_1 = require_pipes2(); + var context_utils_1 = require_context_utils(); + var external_proxy_1 = require_external_proxy(); + var handler_metadata_storage_1 = require_handler_metadata_storage(); + var ExternalContextCreator = class _ExternalContextCreator { + static { + __name(this, "ExternalContextCreator"); + } + constructor(guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, modulesContainer, pipesContextCreator, pipesConsumer, filtersContextCreator) { + this.guardsContextCreator = guardsContextCreator; + this.guardsConsumer = guardsConsumer; + this.interceptorsContextCreator = interceptorsContextCreator; + this.interceptorsConsumer = interceptorsConsumer; + this.modulesContainer = modulesContainer; + this.pipesContextCreator = pipesContextCreator; + this.pipesConsumer = pipesConsumer; + this.filtersContextCreator = filtersContextCreator; + this.contextUtils = new context_utils_1.ContextUtils(); + this.externalErrorProxy = new external_proxy_1.ExternalErrorProxy(); + this.handlerMetadataStorage = new handler_metadata_storage_1.HandlerMetadataStorage(); + } + static fromContainer(container) { + const guardsContextCreator = new guards_1.GuardsContextCreator(container, container.applicationConfig); + const guardsConsumer = new guards_1.GuardsConsumer(); + const interceptorsContextCreator = new interceptors_1.InterceptorsContextCreator(container, container.applicationConfig); + const interceptorsConsumer = new interceptors_1.InterceptorsConsumer(); + const pipesContextCreator = new pipes_1.PipesContextCreator(container, container.applicationConfig); + const pipesConsumer = new pipes_1.PipesConsumer(); + const filtersContextCreator = new external_exception_filter_context_1.ExternalExceptionFilterContext(container, container.applicationConfig); + const externalContextCreator = new _ExternalContextCreator(guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, container.getModules(), pipesContextCreator, pipesConsumer, filtersContextCreator); + externalContextCreator.container = container; + return externalContextCreator; + } + create(instance, callback, methodName, metadataKey, paramsFactory, contextId = constants_3.STATIC_CONTEXT, inquirerId, options = { + interceptors: true, + guards: true, + filters: true + }, contextType = "http") { + const moduleKey = this.getContextModuleKey(instance.constructor); + const { argsLength, paramtypes, getParamsMetadata } = this.getMetadata(instance, methodName, metadataKey, paramsFactory, contextType); + const pipes = this.pipesContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const guards = this.guardsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const exceptionFilter = this.filtersContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const interceptors = options.interceptors ? this.interceptorsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId) : []; + const paramsMetadata = getParamsMetadata(moduleKey, contextId, inquirerId); + const paramsOptions = paramsMetadata ? this.contextUtils.mergeParamsMetatypes(paramsMetadata, paramtypes) : []; + const fnCanActivate = options.guards ? this.createGuardsFn(guards, instance, callback, contextType) : null; + const fnApplyPipes = this.createPipesFn(pipes, paramsOptions); + const handler = /* @__PURE__ */ __name((initialArgs, ...args) => async () => { + if (fnApplyPipes) { + await fnApplyPipes(initialArgs, ...args); + return callback.apply(instance, initialArgs); + } + return callback.apply(instance, args); + }, "handler"); + const target = /* @__PURE__ */ __name(async (...args) => { + const initialArgs = this.contextUtils.createNullArray(argsLength); + fnCanActivate && await fnCanActivate(args); + const result = await this.interceptorsConsumer.intercept(interceptors, args, instance, callback, handler(initialArgs, ...args), contextType); + return this.transformToResult(result); + }, "target"); + return options.filters ? this.externalErrorProxy.createProxy(target, exceptionFilter, contextType) : target; + } + getMetadata(instance, methodName, metadataKey, paramsFactory, contextType) { + const cacheMetadata = this.handlerMetadataStorage.get(instance, methodName); + if (cacheMetadata) { + return cacheMetadata; + } + const metadata = this.contextUtils.reflectCallbackMetadata(instance, methodName, metadataKey || "") || {}; + const keys = Object.keys(metadata); + const argsLength = this.contextUtils.getArgumentsLength(keys, metadata); + const paramtypes = this.contextUtils.reflectCallbackParamtypes(instance, methodName); + const contextFactory = this.contextUtils.getContextFactory(contextType, instance, instance[methodName]); + const getParamsMetadata = /* @__PURE__ */ __name((moduleKey, contextId = constants_3.STATIC_CONTEXT, inquirerId) => paramsFactory ? this.exchangeKeysForValues(keys, metadata, moduleKey, paramsFactory, contextId, inquirerId, contextFactory) : null, "getParamsMetadata"); + const handlerMetadata = { + argsLength, + paramtypes, + getParamsMetadata + }; + this.handlerMetadataStorage.set(instance, methodName, handlerMetadata); + return handlerMetadata; + } + getContextModuleKey(moduleCtor) { + const emptyModuleKey = ""; + if (!moduleCtor) { + return emptyModuleKey; + } + const moduleContainerEntries = this.modulesContainer.entries(); + for (const [key, moduleRef] of moduleContainerEntries) { + if (moduleRef.hasProvider(moduleCtor)) { + return key; + } + } + return emptyModuleKey; + } + exchangeKeysForValues(keys, metadata, moduleContext, paramsFactory, contextId = constants_3.STATIC_CONTEXT, inquirerId, contextFactory = this.contextUtils.getContextFactory("http")) { + this.pipesContextCreator.setModuleContext(moduleContext); + return keys.map((key) => { + const { index, data, pipes: pipesCollection } = metadata[key]; + const pipes = this.pipesContextCreator.createConcreteContext(pipesCollection, contextId, inquirerId); + const type = this.contextUtils.mapParamType(key); + if (key.includes(constants_1.CUSTOM_ROUTE_ARGS_METADATA)) { + const { factory } = metadata[key]; + const customExtractValue = this.contextUtils.getCustomFactory(factory, data, contextFactory); + return { index, extractValue: customExtractValue, type, data, pipes }; + } + const numericType = Number(type); + const extractValue = /* @__PURE__ */ __name((...args) => paramsFactory.exchangeKeyForValue(numericType, data, args), "extractValue"); + return { index, extractValue, type: numericType, data, pipes }; + }); + } + createPipesFn(pipes, paramsOptions) { + const pipesFn = /* @__PURE__ */ __name(async (args, ...params) => { + const resolveParamValue = /* @__PURE__ */ __name(async (param) => { + const { index, extractValue, type, data, metatype, pipes: paramPipes } = param; + const value = extractValue(...params); + args[index] = await this.getParamValue(value, { metatype, type, data }, pipes.concat(paramPipes)); + }, "resolveParamValue"); + await Promise.all(paramsOptions.map(resolveParamValue)); + }, "pipesFn"); + return paramsOptions.length ? pipesFn : null; + } + async getParamValue(value, { metatype, type, data }, pipes) { + return (0, shared_utils_1.isEmpty)(pipes) ? value : this.pipesConsumer.apply(value, { metatype, type, data }, pipes); + } + async transformToResult(resultOrDeferred) { + if ((0, rxjs_1.isObservable)(resultOrDeferred)) { + return (0, rxjs_1.lastValueFrom)(resultOrDeferred); + } + return resultOrDeferred; + } + createGuardsFn(guards, instance, callback, contextType) { + const canActivateFn = /* @__PURE__ */ __name(async (args) => { + const canActivate = await this.guardsConsumer.tryActivate(guards, args, instance, callback, contextType); + if (!canActivate) { + throw new common_12.ForbiddenException(constants_2.FORBIDDEN_MESSAGE); + } + }, "canActivateFn"); + return guards.length ? canActivateFn : null; + } + registerRequestProvider(request, contextId) { + this.container.registerRequestProvider(request, contextId); + } + }; + exports2.ExternalContextCreator = ExternalContextCreator; + } +}); + +// node_modules/@nestjs/core/helpers/index.js +var require_helpers = __commonJS({ + "node_modules/@nestjs/core/helpers/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_context_id_factory(), exports2); + tslib_1.__exportStar(require_external_context_creator(), exports2); + tslib_1.__exportStar(require_http_adapter_host(), exports2); + } +}); + +// node_modules/@nestjs/core/errors/exceptions/circular-dependency.exception.js +var require_circular_dependency_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/circular-dependency.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CircularDependencyException = void 0; + var runtime_exception_1 = require_runtime_exception(); + var CircularDependencyException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "CircularDependencyException"); + } + constructor(context) { + const ctx = context ? ` inside ${context}` : ``; + super(`A circular dependency has been detected${ctx}. Please, make sure that each side of a bidirectional relationships are decorated with "forwardRef()". Note that circular relationships between custom providers (e.g., factories) are not supported since functions cannot be called more than once.`); + } + }; + exports2.CircularDependencyException = CircularDependencyException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/unknown-element.exception.js +var require_unknown_element_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/unknown-element.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnknownElementException = void 0; + var runtime_exception_1 = require_runtime_exception(); + var UnknownElementException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "UnknownElementException"); + } + constructor(name) { + name = name && name.toString(); + super(`Nest could not find ${name || "given"} element (this provider does not exist in the current context)`); + } + }; + exports2.UnknownElementException = UnknownElementException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/invalid-class-scope.exception.js +var require_invalid_class_scope_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/invalid-class-scope.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InvalidClassScopeException = void 0; + var shared_utils_1 = require_shared_utils(); + var messages_1 = require_messages(); + var runtime_exception_1 = require_runtime_exception(); + var InvalidClassScopeException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "InvalidClassScopeException"); + } + constructor(metatypeOrToken) { + let name = (0, shared_utils_1.isFunction)(metatypeOrToken) ? metatypeOrToken.name : metatypeOrToken; + name = name && name.toString(); + super((0, messages_1.INVALID_CLASS_SCOPE_MESSAGE)`${name}`); + } + }; + exports2.InvalidClassScopeException = InvalidClassScopeException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/invalid-class.exception.js +var require_invalid_class_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/invalid-class.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InvalidClassException = void 0; + var messages_1 = require_messages(); + var runtime_exception_1 = require_runtime_exception(); + var InvalidClassException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "InvalidClassException"); + } + constructor(value) { + super((0, messages_1.INVALID_CLASS_MESSAGE)`${value}`); + } + }; + exports2.InvalidClassException = InvalidClassException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/unknown-export.exception.js +var require_unknown_export_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/unknown-export.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnknownExportException = void 0; + var messages_1 = require_messages(); + var runtime_exception_1 = require_runtime_exception(); + var UnknownExportException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "UnknownExportException"); + } + constructor(token, moduleName) { + super((0, messages_1.UNKNOWN_EXPORT_MESSAGE)(token, moduleName)); + } + }; + exports2.UnknownExportException = UnknownExportException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/unknown-module.exception.js +var require_unknown_module_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/unknown-module.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnknownModuleException = void 0; + var runtime_exception_1 = require_runtime_exception(); + var UnknownModuleException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "UnknownModuleException"); + } + constructor(moduleName) { + super(`Nest could not select the given module (${moduleName ? `"${moduleName}"` : "it"} does not exist in current context).`); + } + }; + exports2.UnknownModuleException = UnknownModuleException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/undefined-forwardref.exception.js +var require_undefined_forwardref_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/undefined-forwardref.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UndefinedForwardRefException = void 0; + var messages_1 = require_messages(); + var runtime_exception_1 = require_runtime_exception(); + var UndefinedForwardRefException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "UndefinedForwardRefException"); + } + constructor(scope) { + super((0, messages_1.UNDEFINED_FORWARDREF_MESSAGE)(scope)); + } + }; + exports2.UndefinedForwardRefException = UndefinedForwardRefException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/index.js +var require_exceptions3 = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_circular_dependency_exception(), exports2); + tslib_1.__exportStar(require_runtime_exception(), exports2); + tslib_1.__exportStar(require_unknown_element_exception(), exports2); + tslib_1.__exportStar(require_invalid_class_scope_exception(), exports2); + tslib_1.__exportStar(require_invalid_class_exception(), exports2); + tslib_1.__exportStar(require_unknown_export_exception(), exports2); + tslib_1.__exportStar(require_unknown_module_exception(), exports2); + tslib_1.__exportStar(require_undefined_forwardref_exception(), exports2); + } +}); + +// node_modules/@nestjs/core/inspector/initialize-on-preview.allowlist.js +var require_initialize_on_preview_allowlist = __commonJS({ + "node_modules/@nestjs/core/inspector/initialize-on-preview.allowlist.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InitializeOnPreviewAllowlist = void 0; + var InitializeOnPreviewAllowlist = class { + static { + __name(this, "InitializeOnPreviewAllowlist"); + } + static add(type) { + this.allowlist.set(type, true); + } + static has(type) { + return this.allowlist.has(type); + } + }; + exports2.InitializeOnPreviewAllowlist = InitializeOnPreviewAllowlist; + InitializeOnPreviewAllowlist.allowlist = /* @__PURE__ */ new WeakMap(); + } +}); + +// node_modules/@nestjs/core/injector/inquirer/inquirer-constants.js +var require_inquirer_constants = __commonJS({ + "node_modules/@nestjs/core/injector/inquirer/inquirer-constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.INQUIRER = void 0; + exports2.INQUIRER = "INQUIRER"; + } +}); + +// node_modules/@nestjs/core/injector/helpers/silent-logger.js +var require_silent_logger = __commonJS({ + "node_modules/@nestjs/core/injector/helpers/silent-logger.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SilentLogger = void 0; + var common_12 = require_common(); + var noop = /* @__PURE__ */ __name(() => { + }, "noop"); + var SilentLogger = class extends common_12.Logger { + static { + __name(this, "SilentLogger"); + } + constructor() { + super(...arguments); + this.log = noop; + this.error = noop; + this.warn = noop; + this.debug = noop; + this.verbose = noop; + this.fatal = noop; + this.setLogLevels = noop; + } + }; + exports2.SilentLogger = SilentLogger; + } +}); + +// node_modules/@nestjs/core/helpers/get-class-scope.js +var require_get_class_scope = __commonJS({ + "node_modules/@nestjs/core/helpers/get-class-scope.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getClassScope = getClassScope; + var constants_1 = require_constants2(); + function getClassScope(provider) { + const metadata = Reflect.getMetadata(constants_1.SCOPE_OPTIONS_METADATA, provider); + return metadata && metadata.scope; + } + __name(getClassScope, "getClassScope"); + } +}); + +// node_modules/@nestjs/core/helpers/is-durable.js +var require_is_durable = __commonJS({ + "node_modules/@nestjs/core/helpers/is-durable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isDurable = isDurable; + var constants_1 = require_constants2(); + function isDurable(provider) { + const metadata = Reflect.getMetadata(constants_1.SCOPE_OPTIONS_METADATA, provider); + return metadata && metadata.durable; + } + __name(isDurable, "isDurable"); + } +}); + +// node_modules/@nestjs/core/injector/abstract-instance-resolver.js +var require_abstract_instance_resolver = __commonJS({ + "node_modules/@nestjs/core/injector/abstract-instance-resolver.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AbstractInstanceResolver = void 0; + var common_12 = require_common(); + var exceptions_1 = require_exceptions3(); + var AbstractInstanceResolver = class { + static { + __name(this, "AbstractInstanceResolver"); + } + find(typeOrToken, options) { + const instanceLinkOrArray = this.instanceLinksHost.get(typeOrToken, options); + const pluckInstance = /* @__PURE__ */ __name(({ wrapperRef }) => { + if (wrapperRef.scope === common_12.Scope.REQUEST || wrapperRef.scope === common_12.Scope.TRANSIENT || !wrapperRef.isDependencyTreeStatic()) { + throw new exceptions_1.InvalidClassScopeException(typeOrToken); + } + return wrapperRef.instance; + }, "pluckInstance"); + if (Array.isArray(instanceLinkOrArray)) { + return instanceLinkOrArray.map(pluckInstance); + } + return pluckInstance(instanceLinkOrArray); + } + async resolvePerContext(typeOrToken, contextModule, contextId, options) { + const instanceLinkOrArray = options?.strict ? this.instanceLinksHost.get(typeOrToken, { + moduleId: contextModule.id, + each: options.each + }) : this.instanceLinksHost.get(typeOrToken, { + each: options?.each + }); + const pluckInstance = /* @__PURE__ */ __name(async (instanceLink) => { + const { wrapperRef, collection } = instanceLink; + if (wrapperRef.isDependencyTreeStatic() && !wrapperRef.isTransient) { + return wrapperRef.instance; + } + const ctorHost = wrapperRef.instance || { constructor: typeOrToken }; + const instance = await this.injector.loadPerContext(ctorHost, wrapperRef.host, collection, contextId, wrapperRef); + if (!instance) { + throw new exceptions_1.UnknownElementException(); + } + return instance; + }, "pluckInstance"); + if (Array.isArray(instanceLinkOrArray)) { + return Promise.all(instanceLinkOrArray.map((instanceLink) => pluckInstance(instanceLink))); + } + return pluckInstance(instanceLinkOrArray); + } + }; + exports2.AbstractInstanceResolver = AbstractInstanceResolver; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/undefined-dependency.exception.js +var require_undefined_dependency_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/undefined-dependency.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UndefinedDependencyException = void 0; + var messages_1 = require_messages(); + var runtime_exception_1 = require_runtime_exception(); + var UndefinedDependencyException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "UndefinedDependencyException"); + } + constructor(type, undefinedDependencyContext, moduleRef) { + super((0, messages_1.UNKNOWN_DEPENDENCIES_MESSAGE)(type, undefinedDependencyContext, moduleRef)); + } + }; + exports2.UndefinedDependencyException = UndefinedDependencyException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/unknown-dependencies.exception.js +var require_unknown_dependencies_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/unknown-dependencies.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnknownDependenciesException = void 0; + var messages_1 = require_messages(); + var runtime_exception_1 = require_runtime_exception(); + var UnknownDependenciesException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "UnknownDependenciesException"); + } + constructor(type, context, moduleRef, metadata) { + super((0, messages_1.UNKNOWN_DEPENDENCIES_MESSAGE)(type, context, moduleRef)); + this.type = type; + this.context = context; + this.metadata = metadata; + this.moduleRef = moduleRef && { id: moduleRef.id }; + } + }; + exports2.UnknownDependenciesException = UnknownDependenciesException; + } +}); + +// node_modules/@nestjs/core/helpers/barrier.js +var require_barrier = __commonJS({ + "node_modules/@nestjs/core/helpers/barrier.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Barrier = void 0; + var Barrier = class { + static { + __name(this, "Barrier"); + } + constructor(targetCount) { + this.currentCount = 0; + this.targetCount = targetCount; + this.promise = new Promise((resolve) => { + this.resolve = resolve; + }); + } + /** + * Signal that a participant has reached the barrier. + * + * The barrier will be resolved once `targetCount` participants have reached it. + */ + signal() { + this.currentCount += 1; + if (this.currentCount === this.targetCount) { + this.resolve(); + } + } + /** + * Wait for the barrier to be resolved. + * + * @returns A promise that resolves when the barrier is resolved. + */ + async wait() { + return this.promise; + } + /** + * Signal that a participant has reached the barrier and wait for the barrier to be resolved. + * + * The barrier will be resolved once `targetCount` participants have reached it. + * + * @returns A promise that resolves when the barrier is resolved. + */ + async signalAndWait() { + this.signal(); + return this.wait(); + } + }; + exports2.Barrier = Barrier; + } +}); + +// node_modules/@nestjs/core/injector/inquirer/index.js +var require_inquirer = __commonJS({ + "node_modules/@nestjs/core/injector/inquirer/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_inquirer_constants(), exports2); + } +}); + +// node_modules/@nestjs/core/inspector/deterministic-uuid-registry.js +var require_deterministic_uuid_registry = __commonJS({ + "node_modules/@nestjs/core/inspector/deterministic-uuid-registry.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DeterministicUuidRegistry = void 0; + var DeterministicUuidRegistry = class { + static { + __name(this, "DeterministicUuidRegistry"); + } + static get(str, inc = 0) { + const id = inc ? this.hashCode(`${str}_${inc}`) : this.hashCode(str); + if (this.registry.has(id)) { + return this.get(str, inc + 1); + } + this.registry.set(id, true); + return id; + } + static clear() { + this.registry.clear(); + } + static hashCode(s) { + let h = 0; + for (let i = 0; i < s.length; i++) + h = Math.imul(31, h) + s.charCodeAt(i) | 0; + return h.toString(); + } + }; + exports2.DeterministicUuidRegistry = DeterministicUuidRegistry; + DeterministicUuidRegistry.registry = /* @__PURE__ */ new Map(); + } +}); + +// node_modules/@nestjs/core/inspector/uuid-factory.js +var require_uuid_factory = __commonJS({ + "node_modules/@nestjs/core/inspector/uuid-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UuidFactory = exports2.UuidFactoryMode = void 0; + var random_string_generator_util_1 = require_random_string_generator_util(); + var deterministic_uuid_registry_1 = require_deterministic_uuid_registry(); + var UuidFactoryMode; + (function(UuidFactoryMode2) { + UuidFactoryMode2["Random"] = "random"; + UuidFactoryMode2["Deterministic"] = "deterministic"; + })(UuidFactoryMode || (exports2.UuidFactoryMode = UuidFactoryMode = {})); + var UuidFactory = class { + static { + __name(this, "UuidFactory"); + } + static set mode(value) { + this._mode = value; + } + static get(key = "") { + return this._mode === UuidFactoryMode.Deterministic ? deterministic_uuid_registry_1.DeterministicUuidRegistry.get(key) : (0, random_string_generator_util_1.randomStringGenerator)(); + } + }; + exports2.UuidFactory = UuidFactory; + UuidFactory._mode = UuidFactoryMode.Random; + } +}); + +// node_modules/@nestjs/core/injector/helpers/provider-classifier.js +var require_provider_classifier = __commonJS({ + "node_modules/@nestjs/core/injector/helpers/provider-classifier.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isClassProvider = isClassProvider; + exports2.isValueProvider = isValueProvider; + exports2.isFactoryProvider = isFactoryProvider; + var shared_utils_1 = require_shared_utils(); + function isClassProvider(provider) { + return Boolean(provider?.useClass); + } + __name(isClassProvider, "isClassProvider"); + function isValueProvider(provider) { + const providerValue = provider?.useValue; + return !(0, shared_utils_1.isUndefined)(providerValue); + } + __name(isValueProvider, "isValueProvider"); + function isFactoryProvider(provider) { + return Boolean(provider.useFactory); + } + __name(isFactoryProvider, "isFactoryProvider"); + } +}); + +// node_modules/@nestjs/core/injector/instance-wrapper.js +var require_instance_wrapper = __commonJS({ + "node_modules/@nestjs/core/injector/instance-wrapper.js"(exports2) { + "use strict"; + var _a; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InstanceWrapper = exports2.INSTANCE_ID_SYMBOL = exports2.INSTANCE_METADATA_SYMBOL = void 0; + var common_12 = require_common(); + var cli_colors_util_1 = require_cli_colors_util(); + var random_string_generator_util_1 = require_random_string_generator_util(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var uuid_factory_1 = require_uuid_factory(); + var constants_1 = require_constants5(); + var provider_classifier_1 = require_provider_classifier(); + exports2.INSTANCE_METADATA_SYMBOL = /* @__PURE__ */ Symbol.for("instance_metadata:cache"); + exports2.INSTANCE_ID_SYMBOL = /* @__PURE__ */ Symbol.for("instance_metadata:id"); + var dependencyTreeParents = /* @__PURE__ */ new WeakMap(); + var InstanceWrapper = class _InstanceWrapper { + static { + __name(this, "InstanceWrapper"); + } + constructor(metadata = {}) { + this.isAlias = false; + this.scope = common_12.Scope.DEFAULT; + this.values = /* @__PURE__ */ new WeakMap(); + this[_a] = {}; + this.initialize(metadata); + this[exports2.INSTANCE_ID_SYMBOL] = metadata[exports2.INSTANCE_ID_SYMBOL] ?? this.generateUuid(); + } + get id() { + return this[exports2.INSTANCE_ID_SYMBOL]; + } + set instance(value) { + this.values.set(constants_1.STATIC_CONTEXT, { instance: value }); + } + get instance() { + const instancePerContext = this.getInstanceByContextId(constants_1.STATIC_CONTEXT); + return instancePerContext.instance; + } + get isNotMetatype() { + return !this.metatype || this.isFactory; + } + get isFactory() { + return !!this.metatype && !(0, shared_utils_1.isNil)(this.inject); + } + get isTransient() { + return this.scope === common_12.Scope.TRANSIENT; + } + getInstanceByContextId(contextId, inquirerId) { + if (this.scope === common_12.Scope.TRANSIENT && inquirerId) { + return this.getInstanceByInquirerId(contextId, inquirerId); + } + const instancePerContext = this.values.get(contextId); + return instancePerContext ? instancePerContext : contextId !== constants_1.STATIC_CONTEXT ? this.cloneStaticInstance(contextId) : { + instance: null, + isResolved: true, + isPending: false + }; + } + getInstanceByInquirerId(contextId, inquirerId) { + let collectionPerContext = this.transientMap.get(inquirerId); + if (!collectionPerContext) { + collectionPerContext = /* @__PURE__ */ new WeakMap(); + this.transientMap.set(inquirerId, collectionPerContext); + } + const instancePerContext = collectionPerContext.get(contextId); + return instancePerContext ? instancePerContext : this.cloneTransientInstance(contextId, inquirerId); + } + setInstanceByContextId(contextId, value, inquirerId) { + if (this.scope === common_12.Scope.TRANSIENT && inquirerId) { + return this.setInstanceByInquirerId(contextId, inquirerId, value); + } + this.values.set(contextId, value); + } + setInstanceByInquirerId(contextId, inquirerId, value) { + let collection = this.transientMap.get(inquirerId); + if (!collection) { + collection = /* @__PURE__ */ new WeakMap(); + this.transientMap.set(inquirerId, collection); + } + collection.set(contextId, value); + } + removeInstanceByContextId(contextId, inquirerId) { + if (this.scope === common_12.Scope.TRANSIENT && inquirerId) { + return this.removeInstanceByInquirerId(contextId, inquirerId); + } + this.values.delete(contextId); + } + removeInstanceByInquirerId(contextId, inquirerId) { + const collection = this.transientMap.get(inquirerId); + if (!collection) { + return; + } + collection.delete(contextId); + } + addCtorMetadata(index, wrapper) { + if (!this[exports2.INSTANCE_METADATA_SYMBOL].dependencies) { + this[exports2.INSTANCE_METADATA_SYMBOL].dependencies = []; + } + this[exports2.INSTANCE_METADATA_SYMBOL].dependencies[index] = wrapper; + this.registerDependencyTreeParent(wrapper); + this.resetDependencyTreeState(); + } + getCtorMetadata() { + return this[exports2.INSTANCE_METADATA_SYMBOL].dependencies; + } + addPropertiesMetadata(key, wrapper) { + if (!this[exports2.INSTANCE_METADATA_SYMBOL].properties) { + this[exports2.INSTANCE_METADATA_SYMBOL].properties = []; + } + this[exports2.INSTANCE_METADATA_SYMBOL].properties.push({ + key, + wrapper + }); + this.registerDependencyTreeParent(wrapper); + this.resetDependencyTreeState(); + } + getPropertiesMetadata() { + return this[exports2.INSTANCE_METADATA_SYMBOL].properties; + } + addEnhancerMetadata(wrapper) { + if (!this[exports2.INSTANCE_METADATA_SYMBOL].enhancers) { + this[exports2.INSTANCE_METADATA_SYMBOL].enhancers = []; + } + this[exports2.INSTANCE_METADATA_SYMBOL].enhancers.push(wrapper); + this.registerDependencyTreeParent(wrapper); + this.resetDependencyTreeState(); + } + getEnhancersMetadata() { + return this[exports2.INSTANCE_METADATA_SYMBOL].enhancers; + } + isDependencyTreeDurable(lookupRegistry = []) { + if (!(0, shared_utils_1.isUndefined)(this.isTreeDurable)) { + return this.isTreeDurable; + } + if (this.scope === common_12.Scope.REQUEST) { + this.isTreeDurable = this.durable === void 0 ? false : this.durable; + if (this.isTreeDurable) { + this.printIntrospectedAsDurable(); + } + return this.isTreeDurable; + } + const isStatic = this.isDependencyTreeStatic(); + if (isStatic) { + return false; + } + const isTreeNonDurable = this.introspectDepsAttribute((collection, registry) => collection.some((item) => !item.isDependencyTreeStatic() && !item.isDependencyTreeDurable(registry)), lookupRegistry); + this.isTreeDurable = !isTreeNonDurable; + if (this.isTreeDurable) { + this.printIntrospectedAsDurable(); + } + return this.isTreeDurable; + } + introspectDepsAttribute(callback, lookupRegistry = []) { + if (lookupRegistry.includes(this[exports2.INSTANCE_ID_SYMBOL])) { + return false; + } + lookupRegistry = lookupRegistry.concat(this[exports2.INSTANCE_ID_SYMBOL]); + const { dependencies, properties, enhancers } = this[exports2.INSTANCE_METADATA_SYMBOL]; + let introspectionResult = dependencies ? callback(dependencies, lookupRegistry) : false; + if (introspectionResult || !(properties || enhancers)) { + return introspectionResult; + } + introspectionResult = properties ? callback(properties.map((item) => item.wrapper), lookupRegistry) : false; + if (introspectionResult || !enhancers) { + return introspectionResult; + } + return enhancers ? callback(enhancers, lookupRegistry) : false; + } + isDependencyTreeStatic(lookupRegistry = []) { + if (!(0, shared_utils_1.isUndefined)(this.isTreeStatic)) { + return this.isTreeStatic; + } + if (this.scope === common_12.Scope.REQUEST) { + this.isTreeStatic = false; + this.printIntrospectedAsRequestScoped(); + return this.isTreeStatic; + } + this.isTreeStatic = !this.introspectDepsAttribute((collection, registry) => collection.some((item) => !item.isDependencyTreeStatic(registry)), lookupRegistry); + if (!this.isTreeStatic) { + this.printIntrospectedAsRequestScoped(); + } + return this.isTreeStatic; + } + cloneStaticInstance(contextId) { + const staticInstance = this.getInstanceByContextId(constants_1.STATIC_CONTEXT); + if (this.isDependencyTreeStatic()) { + return staticInstance; + } + const instancePerContext = { + ...staticInstance, + instance: void 0, + isResolved: false, + isPending: false + }; + if (this.isNewable()) { + instancePerContext.instance = Object.create(this.metatype.prototype); + } + this.setInstanceByContextId(contextId, instancePerContext); + return instancePerContext; + } + cloneTransientInstance(contextId, inquirerId) { + const staticInstance = this.getInstanceByContextId(constants_1.STATIC_CONTEXT); + const instancePerContext = { + ...staticInstance, + instance: void 0, + isResolved: false, + isPending: false + }; + if (this.isNewable()) { + instancePerContext.instance = Object.create(this.metatype.prototype); + } + this.setInstanceByInquirerId(contextId, inquirerId, instancePerContext); + return instancePerContext; + } + createPrototype(contextId) { + const host = this.getInstanceByContextId(contextId); + if (!this.isNewable() || host.isResolved) { + return; + } + return Object.create(this.metatype.prototype); + } + isInRequestScope(contextId, inquirer) { + const isDependencyTreeStatic = this.isDependencyTreeStatic(); + return !isDependencyTreeStatic && contextId !== constants_1.STATIC_CONTEXT && (!this.isTransient || this.isTransient && !!inquirer); + } + isLazyTransient(contextId, inquirer) { + const isInquirerRequestScoped = !!(inquirer && !inquirer.isDependencyTreeStatic()); + return this.isDependencyTreeStatic() && contextId !== constants_1.STATIC_CONTEXT && this.isTransient && isInquirerRequestScoped; + } + isExplicitlyRequested(contextId, inquirer) { + const isSelfRequested = inquirer === this; + return this.isDependencyTreeStatic() && contextId !== constants_1.STATIC_CONTEXT && (isSelfRequested || !!(inquirer && inquirer.scope === common_12.Scope.TRANSIENT)); + } + isStatic(contextId, inquirer) { + if (!this.isDependencyTreeStatic() || contextId !== constants_1.STATIC_CONTEXT) { + return false; + } + if (!this.isTransient) { + return true; + } + const isInquirerRequestScoped = inquirer && !inquirer.isDependencyTreeStatic(); + const isStaticTransient = this.isTransient && !isInquirerRequestScoped; + const rootInquirer = inquirer?.getRootInquirer(); + if (isStaticTransient && inquirer && !inquirer.isTransient) { + return true; + } + if (isStaticTransient && rootInquirer && !rootInquirer.isTransient) { + return true; + } + if (isStaticTransient && inquirer?.isTransient && !rootInquirer) { + return true; + } + return false; + } + attachRootInquirer(inquirer) { + if (!this.isTransient) { + return; + } + this.rootInquirer = inquirer.getRootInquirer() ?? inquirer; + } + getRootInquirer() { + return this.rootInquirer; + } + getStaticTransientInstances() { + if (!this.transientMap) { + return []; + } + const instances = [...this.transientMap.values()]; + return (0, iterare_1.iterate)(instances).map((item) => item.get(constants_1.STATIC_CONTEXT)).filter((item) => { + return !!(item && item.isConstructorCalled); + }).toArray(); + } + mergeWith(provider) { + if ((0, provider_classifier_1.isValueProvider)(provider)) { + this.metatype = null; + this.inject = null; + this.scope = common_12.Scope.DEFAULT; + this.setInstanceByContextId(constants_1.STATIC_CONTEXT, { + instance: provider.useValue, + isResolved: true, + isPending: false + }); + } else if ((0, provider_classifier_1.isClassProvider)(provider)) { + this.inject = null; + this.metatype = provider.useClass; + } else if ((0, provider_classifier_1.isFactoryProvider)(provider)) { + this.metatype = provider.useFactory; + this.inject = provider.inject || []; + } + } + isNewable() { + return (0, shared_utils_1.isNil)(this.inject) && this.metatype && this.metatype.prototype; + } + registerDependencyTreeParent(wrapper) { + if (wrapper instanceof _InstanceWrapper) { + const parents = dependencyTreeParents.get(wrapper) ?? /* @__PURE__ */ new Set(); + parents.add(this); + dependencyTreeParents.set(wrapper, parents); + } + } + resetDependencyTreeState(lookupRegistry = /* @__PURE__ */ new Set()) { + if (lookupRegistry.has(this[exports2.INSTANCE_ID_SYMBOL])) { + return; + } + lookupRegistry.add(this[exports2.INSTANCE_ID_SYMBOL]); + this.isTreeStatic = void 0; + this.isTreeDurable = void 0; + dependencyTreeParents.get(this)?.forEach((parent) => parent.resetDependencyTreeState(lookupRegistry)); + } + initialize(metadata) { + const { instance, isResolved, ...wrapperPartial } = metadata; + Object.assign(this, wrapperPartial); + this.setInstanceByContextId(constants_1.STATIC_CONTEXT, { + instance, + isResolved + }); + this.scope === common_12.Scope.TRANSIENT && (this.transientMap = /* @__PURE__ */ new Map()); + } + printIntrospectedAsRequestScoped() { + if (!this.isDebugMode() || this.name === "REQUEST") { + return; + } + if ((0, shared_utils_1.isString)(this.name)) { + _InstanceWrapper.logger.log(`${cli_colors_util_1.clc.cyanBright(this.name)}${cli_colors_util_1.clc.green(" introspected as ")}${cli_colors_util_1.clc.magentaBright("request-scoped")}`); + } + } + printIntrospectedAsDurable() { + if (!this.isDebugMode()) { + return; + } + if ((0, shared_utils_1.isString)(this.name)) { + _InstanceWrapper.logger.log(`${cli_colors_util_1.clc.cyanBright(this.name)}${cli_colors_util_1.clc.green(" introspected as ")}${cli_colors_util_1.clc.magentaBright("durable")}`); + } + } + isDebugMode() { + return !!process.env.NEST_DEBUG; + } + generateUuid() { + let key = this.name?.toString() ?? this.token?.toString(); + key += this.host?.name ?? ""; + return key ? uuid_factory_1.UuidFactory.get(key) : (0, random_string_generator_util_1.randomStringGenerator)(); + } + }; + exports2.InstanceWrapper = InstanceWrapper; + _a = exports2.INSTANCE_METADATA_SYMBOL; + InstanceWrapper.logger = new common_12.Logger(InstanceWrapper.name); + } +}); + +// node_modules/@nestjs/core/injector/settlement-signal.js +var require_settlement_signal = __commonJS({ + "node_modules/@nestjs/core/injector/settlement-signal.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SettlementSignal = void 0; + var SettlementSignal = class { + static { + __name(this, "SettlementSignal"); + } + constructor() { + this._refs = /* @__PURE__ */ new Set(); + this.completed = false; + this.settledPromise = new Promise((resolve) => { + this.settleFn = resolve; + }); + } + /** + * Resolves the promise returned by `asPromise`. + */ + complete() { + this.completed = true; + this.settleFn(); + } + /** + * Rejects the promise returned by `asPromise` with the given error. + * @param err Error to reject the promise returned by `asPromise` with. + */ + error(err) { + this.completed = true; + this.settleFn(err); + } + /** + * Returns a promise that will be resolved when `complete` or `error` is called. + * @returns Promise that will be resolved when `complete` or `error` is called. + */ + asPromise() { + return this.settledPromise; + } + /** + * Inserts a wrapper id that the host of this signal depends on. + * @param wrapperId Wrapper id to insert. + */ + insertRef(wrapperId) { + this._refs.add(wrapperId); + } + /** + * Check if relationship is circular. + * @param wrapperId Wrapper id to check. + * @returns True if relationship is circular, false otherwise. + */ + isCycle(wrapperId) { + return !this.completed && this._refs.has(wrapperId); + } + }; + exports2.SettlementSignal = SettlementSignal; + } +}); + +// node_modules/@nestjs/core/injector/injector.js +var require_injector = __commonJS({ + "node_modules/@nestjs/core/injector/injector.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Injector = void 0; + var common_12 = require_common(); + var constants_1 = require_constants2(); + var cli_colors_util_1 = require_cli_colors_util(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var perf_hooks_1 = require("perf_hooks"); + var exceptions_1 = require_exceptions3(); + var runtime_exception_1 = require_runtime_exception(); + var undefined_dependency_exception_1 = require_undefined_dependency_exception(); + var unknown_dependencies_exception_1 = require_unknown_dependencies_exception(); + var barrier_1 = require_barrier(); + var constants_2 = require_constants5(); + var inquirer_1 = require_inquirer(); + var instance_wrapper_1 = require_instance_wrapper(); + var settlement_signal_1 = require_settlement_signal(); + var Injector = class { + static { + __name(this, "Injector"); + } + constructor(options) { + this.options = options; + this.logger = new common_12.Logger("InjectorLogger"); + this.instanceDecorator = (target) => target; + if (options?.instanceDecorator) { + this.instanceDecorator = options.instanceDecorator; + } + } + loadPrototype({ token }, collection, contextId = constants_2.STATIC_CONTEXT) { + if (!collection) { + return; + } + const target = collection.get(token); + const instance = target.createPrototype(contextId); + if (instance) { + const wrapper = new instance_wrapper_1.InstanceWrapper({ + ...target, + instance + }); + collection.set(token, wrapper); + } + } + async loadInstance(wrapper, collection, moduleRef, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }) { + const inquirerId = this.getContextInquirerId(resolutionContext); + const instanceHost = wrapper.getInstanceByContextId(this.getContextId(resolutionContext.contextId, wrapper), inquirerId); + if (instanceHost.isPending) { + const settlementSignal2 = wrapper.settlementSignal; + if (resolutionContext.inquirer && settlementSignal2?.isCycle(resolutionContext.inquirer.id)) { + throw new exceptions_1.CircularDependencyException(`"${wrapper.name}"`); + } + return instanceHost.donePromise.then((err) => { + if (err) { + throw err; + } + }); + } + const settlementSignal = this.applySettlementSignal(instanceHost, wrapper); + const token = wrapper.token || wrapper.name; + const { inject } = wrapper; + const targetWrapper = collection.get(token); + if ((0, shared_utils_1.isUndefined)(targetWrapper)) { + throw new runtime_exception_1.RuntimeException(); + } + if (instanceHost.isResolved) { + return settlementSignal.complete(); + } + try { + const t0 = this.getNowTimestamp(); + const localResolutionContext = this.createResolutionContext(resolutionContext.contextId, wrapper, inquirerId); + const callback = /* @__PURE__ */ __name(async (instances) => { + const properties = await this.resolveProperties(wrapper, moduleRef, inject, localResolutionContext, resolutionContext.inquirer); + const instance = await this.instantiateClass(instances, wrapper, targetWrapper, wrapper.isTransient ? localResolutionContext : resolutionContext); + this.applyProperties(instance, properties); + wrapper.initTime = this.getNowTimestamp() - t0; + settlementSignal.complete(); + }, "callback"); + await this.resolveConstructorParams(wrapper, moduleRef, inject, callback, localResolutionContext, resolutionContext.inquirer); + if (!instanceHost.isResolved) { + settlementSignal.complete(); + } + } catch (err) { + wrapper.removeInstanceByContextId(this.getContextId(resolutionContext.contextId, wrapper), inquirerId); + settlementSignal.error(err); + throw err; + } + } + async loadMiddleware(wrapper, collection, moduleRef, contextId = constants_2.STATIC_CONTEXT, inquirer) { + const { metatype, token } = wrapper; + const targetWrapper = collection.get(token); + if (!(0, shared_utils_1.isUndefined)(targetWrapper.instance)) { + return; + } + targetWrapper.instance = Object.create(metatype.prototype); + await this.loadInstance(wrapper, collection, moduleRef, this.createResolutionContext(contextId, inquirer || wrapper)); + } + async loadController(wrapper, moduleRef, contextId = constants_2.STATIC_CONTEXT) { + const controllers = moduleRef.controllers; + await this.loadInstance(wrapper, controllers, moduleRef, this.createResolutionContext(contextId, wrapper)); + await this.loadEnhancersPerContext(wrapper, contextId, wrapper); + } + async loadInjectable(wrapper, moduleRef, contextId = constants_2.STATIC_CONTEXT, inquirer) { + const injectables = moduleRef.injectables; + await this.loadInstance(wrapper, injectables, moduleRef, this.createResolutionContext(contextId, inquirer)); + } + async loadProvider(wrapper, moduleRef, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }) { + if (this.shouldSkipProviderLoading(wrapper, resolutionContext)) { + return; + } + const providers = moduleRef.providers; + await this.loadInstance(wrapper, providers, moduleRef, resolutionContext); + await this.loadEnhancersPerContext(wrapper, resolutionContext.contextId, wrapper); + } + applySettlementSignal(instancePerContext, host) { + const settlementSignal = new settlement_signal_1.SettlementSignal(); + instancePerContext.donePromise = settlementSignal.asPromise(); + instancePerContext.isPending = true; + host.settlementSignal = settlementSignal; + return settlementSignal; + } + async resolveConstructorParams(wrapper, moduleRef, inject, callback, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, parentInquirer) { + const metadata = wrapper.getCtorMetadata(); + if (resolutionContext.contextId !== constants_2.STATIC_CONTEXT && this.hasDenseCtorMetadata(wrapper, inject, metadata)) { + const deps = await this.loadCtorMetadata(metadata, resolutionContext.contextId, resolutionContext.inquirer, parentInquirer); + return callback(deps); + } + const isFactoryProvider = !(0, shared_utils_1.isNil)(inject); + const [dependencies, optionalDependenciesIds] = isFactoryProvider ? this.getFactoryProviderDependencies(wrapper) : this.getClassDependencies(wrapper); + const paramBarrier = new barrier_1.Barrier(dependencies.length); + let isResolved = true; + const resolveParam = /* @__PURE__ */ __name(async (param, index) => { + try { + if (this.isInquirer(param, parentInquirer)) { + paramBarrier.signal(); + return parentInquirer && parentInquirer.instance; + } + if (resolutionContext.inquirer?.isTransient && parentInquirer) { + resolutionContext.inquirer.attachRootInquirer(parentInquirer); + } + const nestedResolutionContext = this.getStaticTransientResolutionContext(resolutionContext, parentInquirer); + const paramWrapper = await this.resolveSingleParam(wrapper, param, { index, dependencies }, moduleRef, nestedResolutionContext, index); + await paramBarrier.signalAndWait(); + const effectiveResolutionContext = this.getEffectiveResolutionContext(paramWrapper, resolutionContext, parentInquirer); + const paramWrapperWithInstance = await this.resolveComponentHost(moduleRef, paramWrapper, effectiveResolutionContext); + const instanceHost = paramWrapperWithInstance.getInstanceByContextId(this.getContextId(effectiveResolutionContext.contextId, paramWrapperWithInstance), effectiveResolutionContext.effectiveInquirerId); + if (!instanceHost.isResolved && !paramWrapperWithInstance.forwardRef) { + isResolved = false; + } + return instanceHost?.instance; + } catch (err) { + paramBarrier.signal(); + const isOptional = optionalDependenciesIds.includes(index); + if (!isOptional) { + throw err; + } + return void 0; + } + }, "resolveParam"); + const instances = await Promise.all(dependencies.map(resolveParam)); + isResolved && await callback(instances); + } + getClassDependencies(wrapper) { + const ctorRef = wrapper.metatype; + return [ + this.reflectConstructorParams(ctorRef), + this.reflectOptionalParams(ctorRef) + ]; + } + getFactoryProviderDependencies(wrapper) { + const optionalDependenciesIds = []; + function isOptionalFactoryDependency(value) { + return !(0, shared_utils_1.isUndefined)(value.token) && !(0, shared_utils_1.isUndefined)(value.optional) && !value.prototype; + } + __name(isOptionalFactoryDependency, "isOptionalFactoryDependency"); + const mapFactoryProviderInjectArray = /* @__PURE__ */ __name((item, index) => { + if (typeof item !== "object") { + return item; + } + if (isOptionalFactoryDependency(item)) { + if (item.optional) { + optionalDependenciesIds.push(index); + } + return item?.token; + } + return item; + }, "mapFactoryProviderInjectArray"); + return [ + wrapper.inject?.map?.(mapFactoryProviderInjectArray), + optionalDependenciesIds + ]; + } + reflectConstructorParams(type) { + const paramtypes = [ + ...Reflect.getMetadata(constants_1.PARAMTYPES_METADATA, type) || [] + ]; + const selfParams = this.reflectSelfParams(type); + selfParams.forEach(({ index, param }) => paramtypes[index] = param); + return Array.from(paramtypes); + } + reflectOptionalParams(type) { + return Reflect.getMetadata(constants_1.OPTIONAL_DEPS_METADATA, type) || []; + } + reflectSelfParams(type) { + return Reflect.getMetadata(constants_1.SELF_DECLARED_DEPS_METADATA, type) || []; + } + async resolveSingleParam(wrapper, param, dependencyContext, moduleRef, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex) { + if ((0, shared_utils_1.isUndefined)(param)) { + this.logger.log("Nest encountered an undefined dependency. This may be due to a circular import or a missing dependency declaration."); + throw new undefined_dependency_exception_1.UndefinedDependencyException(wrapper.name, dependencyContext, moduleRef); + } + const token = this.resolveParamToken(wrapper, param); + return this.resolveComponentWrapper(moduleRef, token, dependencyContext, wrapper, resolutionContext, keyOrIndex); + } + resolveParamToken(wrapper, param) { + if (typeof param === "object" && "forwardRef" in param) { + wrapper.forwardRef = true; + return param.forwardRef(); + } + return param; + } + async resolveComponentWrapper(moduleRef, token, dependencyContext, wrapper, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex) { + this.printResolvingDependenciesLog(token, resolutionContext.inquirer); + this.printLookingForProviderLog(token, moduleRef); + const providers = moduleRef.providers; + return this.lookupComponent(providers, moduleRef, { ...dependencyContext, name: token }, wrapper, resolutionContext, keyOrIndex); + } + async resolveComponentHost(moduleRef, instanceWrapper, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }) { + const inquirerId = this.getContextInquirerId(resolutionContext); + const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(resolutionContext.contextId, instanceWrapper), inquirerId); + if (!instanceHost.isResolved && !instanceWrapper.forwardRef) { + resolutionContext.inquirer?.settlementSignal?.insertRef(instanceWrapper.id); + await this.loadProvider(instanceWrapper, instanceWrapper.host ?? moduleRef, resolutionContext); + } else if (!instanceHost.isResolved && instanceWrapper.forwardRef && (resolutionContext.contextId !== constants_2.STATIC_CONTEXT || !!inquirerId)) { + instanceHost.donePromise && void instanceHost.donePromise.then(() => this.loadProvider(instanceWrapper, moduleRef, resolutionContext)).catch((err) => { + instanceWrapper.settlementSignal?.error(err); + }); + } + if (instanceWrapper.async) { + const host = instanceWrapper.getInstanceByContextId(this.getContextId(resolutionContext.contextId, instanceWrapper), inquirerId); + host.instance = await host.instance; + instanceWrapper.setInstanceByContextId(resolutionContext.contextId, host, inquirerId); + } + return instanceWrapper; + } + async lookupComponent(providers, moduleRef, dependencyContext, wrapper, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex) { + const token = wrapper.token || wrapper.name; + const { name } = dependencyContext; + if (wrapper && token === name) { + throw new unknown_dependencies_exception_1.UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id }); + } + if (name && providers.has(name)) { + const instanceWrapper = providers.get(name); + this.printFoundInModuleLog(name, moduleRef); + this.addDependencyMetadata(keyOrIndex, wrapper, instanceWrapper); + return instanceWrapper; + } + return this.lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, resolutionContext, keyOrIndex); + } + async lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex) { + const instanceWrapper = await this.lookupComponentInImports(moduleRef, dependencyContext.name, wrapper, /* @__PURE__ */ new Set(), resolutionContext, keyOrIndex); + if ((0, shared_utils_1.isNil)(instanceWrapper)) { + throw new unknown_dependencies_exception_1.UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id }); + } + return instanceWrapper; + } + async lookupComponentInImports(moduleRef, name, wrapper, moduleRegistry = /* @__PURE__ */ new Set(), resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex, isTraversing) { + let instanceWrapperRef = null; + const imports = moduleRef.imports || /* @__PURE__ */ new Set(); + const identity = /* @__PURE__ */ __name((item) => item, "identity"); + let children = [...imports.values()].filter(identity); + if (isTraversing) { + const contextModuleExports = moduleRef.exports; + children = children.filter((child) => contextModuleExports.has(child.metatype)); + } + for (const relatedModule of children) { + if (moduleRegistry.has(relatedModule.id)) { + continue; + } + this.printLookingForProviderLog(name, relatedModule); + moduleRegistry.add(relatedModule.id); + const { providers, exports: exports3 } = relatedModule; + if (!exports3.has(name) || !providers.has(name)) { + const instanceRef = await this.lookupComponentInImports(relatedModule, name, wrapper, moduleRegistry, resolutionContext, keyOrIndex, true); + if (instanceRef) { + this.addDependencyMetadata(keyOrIndex, wrapper, instanceRef); + return instanceRef; + } + continue; + } + this.printFoundInModuleLog(name, relatedModule); + instanceWrapperRef = providers.get(name); + this.addDependencyMetadata(keyOrIndex, wrapper, instanceWrapperRef); + const inquirerId = this.getContextInquirerId(resolutionContext); + const instanceHost = instanceWrapperRef.getInstanceByContextId(this.getContextId(resolutionContext.contextId, instanceWrapperRef), inquirerId); + if (!instanceHost.isResolved && !instanceWrapperRef.forwardRef) { + break; + } + } + return instanceWrapperRef; + } + async resolveProperties(wrapper, moduleRef, inject, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, parentInquirer) { + if (!(0, shared_utils_1.isNil)(inject)) { + return []; + } + const metadata = wrapper.getPropertiesMetadata(); + if (metadata && resolutionContext.contextId !== constants_2.STATIC_CONTEXT) { + return this.loadPropertiesMetadata(metadata, resolutionContext.contextId, resolutionContext.inquirer); + } + const properties = this.reflectProperties(wrapper.metatype); + const propertyBarrier = new barrier_1.Barrier(properties.length); + const instances = await Promise.all(properties.map(async (item) => { + try { + const dependencyContext = { + key: item.key, + name: item.name + }; + if (this.isInquirer(item.name, parentInquirer)) { + propertyBarrier.signal(); + return parentInquirer && parentInquirer.instance; + } + const nestedResolutionContext = this.getStaticTransientResolutionContext(resolutionContext, parentInquirer); + const paramWrapper = await this.resolveSingleParam(wrapper, item.name, dependencyContext, moduleRef, nestedResolutionContext, item.key); + await propertyBarrier.signalAndWait(); + const effectivePropertyResolutionContext = this.getEffectiveResolutionContext(paramWrapper, resolutionContext, parentInquirer); + const paramWrapperWithInstance = await this.resolveComponentHost(moduleRef, paramWrapper, effectivePropertyResolutionContext); + if (!paramWrapperWithInstance) { + return void 0; + } + const instanceHost = paramWrapperWithInstance.getInstanceByContextId(this.getContextId(effectivePropertyResolutionContext.contextId, paramWrapperWithInstance), effectivePropertyResolutionContext.effectiveInquirerId); + return instanceHost.instance; + } catch (err) { + propertyBarrier.signal(); + if (!item.isOptional) { + throw err; + } + return void 0; + } + })); + return properties.map((item, index) => ({ + ...item, + instance: instances[index] + })); + } + reflectProperties(type) { + const properties = Reflect.getMetadata(constants_1.PROPERTY_DEPS_METADATA, type) || []; + const optionalKeys = Reflect.getMetadata(constants_1.OPTIONAL_PROPERTY_DEPS_METADATA, type) || []; + return properties.map((item) => ({ + ...item, + name: item.type, + isOptional: optionalKeys.includes(item.key) + })); + } + applyProperties(instance, properties) { + if (!(0, shared_utils_1.isObject)(instance)) { + return void 0; + } + (0, iterare_1.iterate)(properties).filter((item) => !(0, shared_utils_1.isNil)(item.instance)).forEach((item) => instance[item.key] = item.instance); + } + async instantiateClass(instances, wrapper, targetMetatype, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }) { + const { metatype, inject } = wrapper; + const inquirerId = this.getContextInquirerId(resolutionContext); + const instanceHost = targetMetatype.getInstanceByContextId(this.getContextId(resolutionContext.contextId, targetMetatype), inquirerId); + const isInContext = this.isInContext(wrapper, resolutionContext); + if (this.options?.preview && !wrapper.host?.initOnPreview) { + instanceHost.isResolved = true; + return instanceHost.instance; + } + if ((0, shared_utils_1.isNil)(inject) && isInContext) { + instanceHost.instance = wrapper.forwardRef ? Object.assign(instanceHost.instance, new metatype(...instances)) : new metatype(...instances); + instanceHost.instance = this.instanceDecorator(instanceHost.instance); + instanceHost.isConstructorCalled = true; + } else if (isInContext) { + const factoryReturnValue = targetMetatype.metatype(...instances); + instanceHost.instance = await factoryReturnValue; + instanceHost.instance = this.instanceDecorator(instanceHost.instance); + instanceHost.isConstructorCalled = true; + } + instanceHost.isResolved = true; + return instanceHost.instance; + } + async loadPerContext(instance, moduleRef, collection, ctx, wrapper) { + if (!wrapper) { + const injectionToken = instance.constructor; + wrapper = collection.get(injectionToken); + } else { + wrapper = collection.get(wrapper.token) ?? wrapper; + } + await this.loadInstance(wrapper, collection, moduleRef, this.createResolutionContext(ctx, wrapper)); + await this.loadEnhancersPerContext(wrapper, ctx, wrapper); + const host = wrapper.getInstanceByContextId(this.getContextId(ctx, wrapper), wrapper.id); + return host && host.instance; + } + async loadEnhancersPerContext(wrapper, ctx, inquirer) { + if (ctx === constants_2.STATIC_CONTEXT) { + return; + } + const enhancers = wrapper.getEnhancersMetadata() || []; + const loadEnhancer = /* @__PURE__ */ __name((item) => { + const hostModule = item.host; + return this.loadInstance(item, hostModule.injectables, hostModule, this.createResolutionContext(ctx, inquirer)); + }, "loadEnhancer"); + await Promise.all(enhancers.map(loadEnhancer)); + } + async loadCtorMetadata(metadata, contextId, inquirer, parentInquirer) { + const hosts = await Promise.all(metadata.map(async (item) => this.resolveScopedComponentHost(item, contextId, inquirer, parentInquirer))); + return hosts.map((item, index) => { + const dependency = metadata[index]; + const effectiveInquirerId = this.getEffectiveInquirerId(dependency, this.createResolutionContext(contextId, inquirer), parentInquirer); + return item?.getInstanceByContextId(this.getContextId(contextId, item), effectiveInquirerId).instance; + }); + } + async loadPropertiesMetadata(metadata, contextId, inquirer) { + const dependenciesHosts = await Promise.all(metadata.map(async ({ wrapper: item, key }) => ({ + key, + host: await this.resolveComponentHost(item.host, item, this.createResolutionContext(contextId, inquirer)) + }))); + const inquirerId = this.getInquirerId(inquirer); + return dependenciesHosts.map(({ key, host }) => ({ + key, + name: key, + instance: host.getInstanceByContextId(this.getContextId(contextId, host), inquirerId).instance + })); + } + getInquirerId(inquirer) { + return inquirer ? inquirer.id : void 0; + } + createResolutionContext(contextId, inquirer, effectiveInquirerId) { + return { + contextId, + inquirer, + effectiveInquirerId + }; + } + getContextInquirerId({ inquirer, effectiveInquirerId }) { + return effectiveInquirerId ?? this.getInquirerId(inquirer); + } + isInContext(wrapper, resolutionContext) { + return wrapper.isStatic(resolutionContext.contextId, resolutionContext.inquirer) || wrapper.isInRequestScope(resolutionContext.contextId, resolutionContext.inquirer) || wrapper.isLazyTransient(resolutionContext.contextId, resolutionContext.inquirer) || wrapper.isExplicitlyRequested(resolutionContext.contextId, resolutionContext.inquirer); + } + shouldSkipProviderLoading(wrapper, resolutionContext) { + const isStaticContext = resolutionContext.contextId === constants_2.STATIC_CONTEXT; + const hasNoInquirer = !resolutionContext.inquirer; + const isTopLevelStaticTransientOrRequestProvider = hasNoInquirer && (wrapper.isTransient || wrapper.scope === common_12.Scope.REQUEST); + const isStaticInquirerOutsideResolutionContext = !!resolutionContext.inquirer && !this.isInContext(resolutionContext.inquirer, this.createResolutionContext(resolutionContext.contextId, resolutionContext.inquirer)); + const shouldSkipForStaticBootstrap = isStaticContext && (isTopLevelStaticTransientOrRequestProvider || isStaticInquirerOutsideResolutionContext); + return shouldSkipForStaticBootstrap; + } + /** + * For nested TRANSIENT dependencies (TRANSIENT -> TRANSIENT) in non-static contexts, + * returns parentInquirer to ensure each parent TRANSIENT gets its own instance. + * This is necessary because in REQUEST/DURABLE scopes, the same TRANSIENT wrapper + * can be used by multiple parents, causing nested TRANSIENTs to be shared incorrectly. + * For non-TRANSIENT -> TRANSIENT, returns inquirer (current wrapper being created). + */ + getEffectiveInquirer(dependency, resolutionContext, parentInquirer) { + const { inquirer, contextId } = resolutionContext; + if (dependency?.isTransient && inquirer?.isTransient && parentInquirer) { + if (contextId === constants_2.STATIC_CONTEXT) { + return inquirer.getRootInquirer() ?? parentInquirer; + } + return parentInquirer; + } + return inquirer; + } + getEffectiveInquirerId(dependency, resolutionContext, parentInquirer) { + const { contextId, inquirer, effectiveInquirerId } = resolutionContext; + if (contextId === constants_2.STATIC_CONTEXT && dependency?.isTransient && inquirer?.isTransient && parentInquirer) { + const baseInquirerId = effectiveInquirerId ?? this.getInquirerId(parentInquirer); + return `${baseInquirerId}:${inquirer.id}`; + } + const effectiveInquirer = this.getEffectiveInquirer(dependency, resolutionContext, parentInquirer); + return this.getInquirerId(effectiveInquirer); + } + getStaticTransientResolutionContext(resolutionContext, parentInquirer) { + const { contextId, inquirer, effectiveInquirerId } = resolutionContext; + if (contextId === constants_2.STATIC_CONTEXT && inquirer?.isTransient && parentInquirer) { + const baseInquirerId = effectiveInquirerId ?? this.getInquirerId(parentInquirer); + return this.createResolutionContext(contextId, inquirer, `${baseInquirerId}:${inquirer.id}`); + } + return resolutionContext; + } + getEffectiveResolutionContext(dependency, resolutionContext, parentInquirer) { + return this.createResolutionContext(resolutionContext.contextId, this.getEffectiveInquirer(dependency, resolutionContext, parentInquirer), this.getEffectiveInquirerId(dependency, resolutionContext, parentInquirer)); + } + hasDenseCtorMetadata(wrapper, inject, metadata) { + if (!metadata) { + return false; + } + const expectedDepsLength = !(0, shared_utils_1.isNil)(inject) ? inject.length : wrapper.metatype ? this.reflectConstructorParams(wrapper.metatype).length : 0; + if (metadata.length !== expectedDepsLength) { + return false; + } + for (let index = 0; index < expectedDepsLength; index++) { + if (metadata[index] === void 0) { + return false; + } + } + return true; + } + resolveScopedComponentHost(item, contextId, inquirer, parentInquirer) { + return this.isInquirerRequest(item, parentInquirer) ? parentInquirer : this.resolveComponentHost(item.host, item, this.getEffectiveResolutionContext(item, this.createResolutionContext(contextId, inquirer), parentInquirer)); + } + isInquirerRequest(item, parentInquirer) { + return item.isTransient && item.name === inquirer_1.INQUIRER && parentInquirer; + } + isInquirer(param, parentInquirer) { + return param === inquirer_1.INQUIRER && parentInquirer; + } + addDependencyMetadata(keyOrIndex, hostWrapper, instanceWrapper) { + if ((0, shared_utils_1.isSymbol)(keyOrIndex) || (0, shared_utils_1.isString)(keyOrIndex)) { + hostWrapper.addPropertiesMetadata(keyOrIndex, instanceWrapper); + } else { + hostWrapper.addCtorMetadata(keyOrIndex, instanceWrapper); + } + } + getTokenName(token) { + return (0, shared_utils_1.isFunction)(token) ? token.name : token.toString(); + } + printResolvingDependenciesLog(token, inquirer) { + if (!this.isDebugMode()) { + return; + } + const tokenName = this.getTokenName(token); + const dependentName = (inquirer?.name && inquirer.name.toString?.()) ?? "unknown"; + const isAlias = dependentName === tokenName; + const messageToPrint = `Resolving dependency ${cli_colors_util_1.clc.cyanBright(tokenName)}${cli_colors_util_1.clc.green(" in the ")}${cli_colors_util_1.clc.yellow(dependentName)}${cli_colors_util_1.clc.green(` provider ${isAlias ? "(alias)" : ""}`)}`; + this.logger.log(messageToPrint); + } + printLookingForProviderLog(token, moduleRef) { + if (!this.isDebugMode()) { + return; + } + const tokenName = this.getTokenName(token); + const moduleRefName = moduleRef?.metatype?.name ?? "unknown"; + this.logger.log(`Looking for ${cli_colors_util_1.clc.cyanBright(tokenName)}${cli_colors_util_1.clc.green(" in ")}${cli_colors_util_1.clc.magentaBright(moduleRefName)}`); + } + printFoundInModuleLog(token, moduleRef) { + if (!this.isDebugMode()) { + return; + } + const tokenName = this.getTokenName(token); + const moduleRefName = moduleRef?.metatype?.name ?? "unknown"; + this.logger.log(`Found ${cli_colors_util_1.clc.cyanBright(tokenName)}${cli_colors_util_1.clc.green(" in ")}${cli_colors_util_1.clc.magentaBright(moduleRefName)}`); + } + isDebugMode() { + return !!process.env.NEST_DEBUG; + } + getContextId(contextId, instanceWrapper) { + return contextId.getParent ? contextId.getParent({ + token: instanceWrapper.token, + isTreeDurable: instanceWrapper.isDependencyTreeDurable() + }) : contextId; + } + getNowTimestamp() { + return perf_hooks_1.performance.now(); + } + }; + exports2.Injector = Injector; + } +}); + +// node_modules/@nestjs/core/injector/instance-links-host.js +var require_instance_links_host = __commonJS({ + "node_modules/@nestjs/core/injector/instance-links-host.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InstanceLinksHost = void 0; + var shared_utils_1 = require_shared_utils(); + var unknown_element_exception_1 = require_unknown_element_exception(); + var InstanceLinksHost = class { + static { + __name(this, "InstanceLinksHost"); + } + constructor(container) { + this.container = container; + this.instanceLinks = /* @__PURE__ */ new Map(); + this.initialize(); + } + get(token, options = {}) { + const instanceLinksForGivenToken = this.instanceLinks.get(token); + if (!instanceLinksForGivenToken) { + throw new unknown_element_exception_1.UnknownElementException(this.getInstanceNameByToken(token)); + } + if (options.each) { + return instanceLinksForGivenToken; + } + const instanceLink = options.moduleId ? instanceLinksForGivenToken.find((item) => item.moduleId === options.moduleId) : instanceLinksForGivenToken[instanceLinksForGivenToken.length - 1]; + if (!instanceLink) { + throw new unknown_element_exception_1.UnknownElementException(this.getInstanceNameByToken(token)); + } + return instanceLink; + } + initialize() { + const modules = this.container.getModules(); + modules.forEach((moduleRef) => { + const { providers, injectables, controllers } = moduleRef; + providers.forEach((wrapper, token) => this.addLink(wrapper, token, moduleRef, "providers")); + injectables.forEach((wrapper, token) => this.addLink(wrapper, token, moduleRef, "injectables")); + controllers.forEach((wrapper, token) => this.addLink(wrapper, token, moduleRef, "controllers")); + }); + } + addLink(wrapper, token, moduleRef, collectionName) { + const instanceLink = { + moduleId: moduleRef.id, + wrapperRef: wrapper, + collection: moduleRef[collectionName], + token + }; + const existingLinks = this.instanceLinks.get(token); + if (!existingLinks) { + this.instanceLinks.set(token, [instanceLink]); + } else { + existingLinks.push(instanceLink); + } + } + getInstanceNameByToken(token) { + return (0, shared_utils_1.isFunction)(token) ? token?.name : token; + } + }; + exports2.InstanceLinksHost = InstanceLinksHost; + } +}); + +// node_modules/@nestjs/core/injector/module-ref.js +var require_module_ref = __commonJS({ + "node_modules/@nestjs/core/injector/module-ref.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ModuleRef = void 0; + var common_12 = require_common(); + var get_class_scope_1 = require_get_class_scope(); + var is_durable_1 = require_is_durable(); + var abstract_instance_resolver_1 = require_abstract_instance_resolver(); + var constants_1 = require_constants5(); + var injector_1 = require_injector(); + var instance_links_host_1 = require_instance_links_host(); + var instance_wrapper_1 = require_instance_wrapper(); + var ModuleRef = class extends abstract_instance_resolver_1.AbstractInstanceResolver { + static { + __name(this, "ModuleRef"); + } + get instanceLinksHost() { + if (!this._instanceLinksHost) { + this._instanceLinksHost = new instance_links_host_1.InstanceLinksHost(this.container); + } + return this._instanceLinksHost; + } + constructor(container) { + super(); + this.container = container; + const contextOptions = container.contextOptions; + this.injector = new injector_1.Injector({ + preview: contextOptions?.preview ?? false, + snapshot: contextOptions?.snapshot, + instanceDecorator: contextOptions?.instrument?.instanceDecorator + }); + } + introspect(token) { + const { wrapperRef } = this.instanceLinksHost.get(token); + let scope = common_12.Scope.DEFAULT; + if (!wrapperRef.isDependencyTreeStatic()) { + scope = common_12.Scope.REQUEST; + } else if (wrapperRef.isTransient) { + scope = common_12.Scope.TRANSIENT; + } + return { scope }; + } + registerRequestByContextId(request, contextId) { + this.container.registerRequestProvider(request, contextId); + } + async instantiateClass(type, moduleRef, contextId) { + const wrapper = new instance_wrapper_1.InstanceWrapper({ + name: type && type.name, + metatype: type, + isResolved: false, + scope: (0, get_class_scope_1.getClassScope)(type), + durable: (0, is_durable_1.isDurable)(type), + host: moduleRef + }); + if (type?.prototype) { + wrapper.setInstanceByContextId(contextId ?? constants_1.STATIC_CONTEXT, { + instance: Object.create(type.prototype), + isResolved: false, + isPending: false + }); + } + return new Promise(async (resolve, reject) => { + try { + const callback = /* @__PURE__ */ __name(async (instances) => { + const properties = await this.injector.resolveProperties(wrapper, moduleRef, void 0, { + contextId: contextId ?? constants_1.STATIC_CONTEXT, + inquirer: wrapper + }); + const instance = new type(...instances); + this.injector.applyProperties(instance, properties); + resolve(instance); + }, "callback"); + await this.injector.resolveConstructorParams(wrapper, moduleRef, void 0, callback, { + contextId: contextId ?? constants_1.STATIC_CONTEXT, + inquirer: wrapper + }); + } catch (err) { + reject(err); + } + }); + } + }; + exports2.ModuleRef = ModuleRef; + } +}); + +// node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader.js +var require_lazy_module_loader = __commonJS({ + "node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.LazyModuleLoader = void 0; + var silent_logger_1 = require_silent_logger(); + var module_ref_1 = require_module_ref(); + var LazyModuleLoader = class { + static { + __name(this, "LazyModuleLoader"); + } + constructor(dependenciesScanner, instanceLoader, moduleCompiler, modulesContainer, moduleOverrides) { + this.dependenciesScanner = dependenciesScanner; + this.instanceLoader = instanceLoader; + this.moduleCompiler = moduleCompiler; + this.modulesContainer = modulesContainer; + this.moduleOverrides = moduleOverrides; + } + async load(loaderFn, loadOpts) { + this.registerLoggerConfiguration(loadOpts); + const moduleClassOrDynamicDefinition = await loaderFn(); + const moduleInstances = await this.dependenciesScanner.scanForModules({ + moduleDefinition: moduleClassOrDynamicDefinition, + overrides: this.moduleOverrides, + lazy: true + }); + if (moduleInstances.length === 0) { + const { token } = await this.moduleCompiler.compile(moduleClassOrDynamicDefinition); + const moduleInstance = this.modulesContainer.get(token); + return moduleInstance && this.getTargetModuleRef(moduleInstance); + } + const lazyModulesContainer = this.createLazyModulesContainer(moduleInstances); + await this.dependenciesScanner.scanModulesForDependencies(lazyModulesContainer); + await this.instanceLoader.createInstancesOfDependencies(lazyModulesContainer); + const [targetModule] = moduleInstances; + return this.getTargetModuleRef(targetModule); + } + registerLoggerConfiguration(loadOpts) { + if (loadOpts?.logger === false) { + this.instanceLoader.setLogger(new silent_logger_1.SilentLogger()); + } + } + createLazyModulesContainer(moduleInstances) { + moduleInstances = Array.from(new Set(moduleInstances)); + return new Map(moduleInstances.map((ref) => [ref.token, ref])); + } + getTargetModuleRef(moduleInstance) { + const moduleRefInstanceWrapper = moduleInstance.getProviderByKey(module_ref_1.ModuleRef); + return moduleRefInstanceWrapper.instance; + } + }; + exports2.LazyModuleLoader = LazyModuleLoader; + } +}); + +// node_modules/@nestjs/core/services/reflector.service.js +var require_reflector_service = __commonJS({ + "node_modules/@nestjs/core/services/reflector.service.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Reflector = void 0; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var uid_1 = require_dist(); + var Reflector = class { + static { + __name(this, "Reflector"); + } + static createDecorator(options = {}) { + const metadataKey = options.key ?? (0, uid_1.uid)(21); + const decoratorFn = /* @__PURE__ */ __name((metadataValue) => (target, key, descriptor) => { + const value = options.transform ? options.transform(metadataValue) : metadataValue; + (0, common_12.SetMetadata)(metadataKey, value ?? {})(target, key, descriptor); + }, "decoratorFn"); + decoratorFn.KEY = metadataKey; + return decoratorFn; + } + /** + * Retrieve metadata for a specified key or decorator for a specified target. + * + * @example + * `const roles = this.reflector.get('roles', context.getHandler());` + * + * @param metadataKey lookup key or decorator for metadata to retrieve + * @param target context (decorated object) to retrieve metadata from + * + */ + get(metadataKeyOrDecorator, target) { + const metadataKey = metadataKeyOrDecorator.KEY ?? metadataKeyOrDecorator; + return Reflect.getMetadata(metadataKey, target); + } + /** + * Retrieve metadata for a specified key or decorator for a specified set of targets. + * + * @param metadataKeyOrDecorator lookup key or decorator for metadata to retrieve + * @param targets context (decorated objects) to retrieve metadata from + * + */ + getAll(metadataKeyOrDecorator, targets) { + return (targets || []).map((target) => this.get(metadataKeyOrDecorator, target)); + } + /** + * Retrieve metadata for a specified key or decorator for a specified set of targets and merge results. + * + * @param metadataKeyOrDecorator lookup key for metadata to retrieve + * @param targets context (decorated objects) to retrieve metadata from + * + */ + getAllAndMerge(metadataKeyOrDecorator, targets) { + const metadataCollection = this.getAll(metadataKeyOrDecorator, targets).filter((item) => item !== void 0); + if ((0, shared_utils_1.isEmpty)(metadataCollection)) { + return metadataCollection; + } + if (metadataCollection.length === 1) { + const value = metadataCollection[0]; + if ((0, shared_utils_1.isObject)(value)) { + return value; + } + return metadataCollection; + } + return metadataCollection.reduce((a, b) => { + if (Array.isArray(a)) { + return a.concat(b); + } + if ((0, shared_utils_1.isObject)(a) && (0, shared_utils_1.isObject)(b)) { + return { + ...a, + ...b + }; + } + return [a, b]; + }); + } + /** + * Retrieve metadata for a specified key or decorator for a specified set of targets and return a first not undefined value. + * + * @param metadataKeyOrDecorator lookup key or metadata for metadata to retrieve + * @param targets context (decorated objects) to retrieve metadata from + * + */ + getAllAndOverride(metadataKeyOrDecorator, targets) { + for (const target of targets) { + const result = this.get(metadataKeyOrDecorator, target); + if (result !== void 0) { + return result; + } + } + return void 0; + } + }; + exports2.Reflector = Reflector; + } +}); + +// node_modules/@nestjs/core/inspector/serialized-graph.js +var require_serialized_graph = __commonJS({ + "node_modules/@nestjs/core/inspector/serialized-graph.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SerializedGraph = void 0; + var application_config_1 = require_application_config(); + var external_context_creator_1 = require_external_context_creator(); + var http_adapter_host_1 = require_http_adapter_host(); + var inquirer_constants_1 = require_inquirer_constants(); + var lazy_module_loader_1 = require_lazy_module_loader(); + var module_ref_1 = require_module_ref(); + var modules_container_1 = require_modules_container(); + var request_constants_1 = require_request_constants(); + var reflector_service_1 = require_reflector_service(); + var deterministic_uuid_registry_1 = require_deterministic_uuid_registry(); + var SerializedGraph = class _SerializedGraph { + static { + __name(this, "SerializedGraph"); + } + constructor() { + this.nodes = /* @__PURE__ */ new Map(); + this.edges = /* @__PURE__ */ new Map(); + this.entrypoints = /* @__PURE__ */ new Map(); + this.extras = { + orphanedEnhancers: [], + attachedEnhancers: [] + }; + this._status = "complete"; + } + set status(status) { + this._status = status; + } + set metadata(metadata) { + this._metadata = metadata; + } + insertNode(nodeDefinition) { + if (nodeDefinition.metadata.type === "provider" && _SerializedGraph.INTERNAL_PROVIDERS.includes(nodeDefinition.metadata.token)) { + nodeDefinition.metadata = { + ...nodeDefinition.metadata, + internal: true + }; + } + if (this.nodes.has(nodeDefinition.id)) { + return this.nodes.get(nodeDefinition.id); + } + this.nodes.set(nodeDefinition.id, nodeDefinition); + return nodeDefinition; + } + insertEdge(edgeDefinition) { + if (edgeDefinition.metadata.type === "class-to-class" && (_SerializedGraph.INTERNAL_PROVIDERS.includes(edgeDefinition.metadata.sourceClassToken) || _SerializedGraph.INTERNAL_PROVIDERS.includes(edgeDefinition.metadata.targetClassToken))) { + edgeDefinition.metadata = { + ...edgeDefinition.metadata, + internal: true + }; + } + const id = edgeDefinition.id ?? this.generateUuidByEdgeDefinition(edgeDefinition); + const edge = { + ...edgeDefinition, + id + }; + this.edges.set(id, edge); + return edge; + } + insertEntrypoint(definition, parentId) { + if (this.entrypoints.has(parentId)) { + const existingCollection = this.entrypoints.get(parentId); + existingCollection.push(definition); + } else { + this.entrypoints.set(parentId, [definition]); + } + } + insertOrphanedEnhancer(entry) { + this.extras.orphanedEnhancers.push(entry); + } + insertAttachedEnhancer(nodeId) { + this.extras.attachedEnhancers.push({ + nodeId + }); + } + getNodeById(id) { + return this.nodes.get(id); + } + toJSON() { + const json = { + nodes: Object.fromEntries(this.nodes), + edges: Object.fromEntries(this.edges), + entrypoints: Object.fromEntries(this.entrypoints), + extras: this.extras + }; + if (this._status) { + json["status"] = this._status; + } + if (this._metadata) { + json["metadata"] = this._metadata; + } + return json; + } + toString() { + const replacer = /* @__PURE__ */ __name((key, value) => { + if (typeof value === "symbol") { + return value.toString(); + } + return typeof value === "function" ? value.name ?? "Function" : value; + }, "replacer"); + return JSON.stringify(this.toJSON(), replacer, 2); + } + generateUuidByEdgeDefinition(edgeDefinition) { + return deterministic_uuid_registry_1.DeterministicUuidRegistry.get(JSON.stringify(edgeDefinition)); + } + }; + exports2.SerializedGraph = SerializedGraph; + SerializedGraph.INTERNAL_PROVIDERS = [ + application_config_1.ApplicationConfig, + module_ref_1.ModuleRef, + http_adapter_host_1.HttpAdapterHost, + lazy_module_loader_1.LazyModuleLoader, + external_context_creator_1.ExternalContextCreator, + modules_container_1.ModulesContainer, + reflector_service_1.Reflector, + SerializedGraph, + http_adapter_host_1.HttpAdapterHost.name, + reflector_service_1.Reflector.name, + request_constants_1.REQUEST, + inquirer_constants_1.INQUIRER + ]; + } +}); + +// node_modules/@nestjs/core/injector/compiler.js +var require_compiler = __commonJS({ + "node_modules/@nestjs/core/injector/compiler.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ModuleCompiler = void 0; + var ModuleCompiler = class { + static { + __name(this, "ModuleCompiler"); + } + constructor(_moduleOpaqueKeyFactory) { + this._moduleOpaqueKeyFactory = _moduleOpaqueKeyFactory; + } + get moduleOpaqueKeyFactory() { + return this._moduleOpaqueKeyFactory; + } + async compile(moduleClsOrDynamic) { + moduleClsOrDynamic = await moduleClsOrDynamic; + const { type, dynamicMetadata } = this.extractMetadata(moduleClsOrDynamic); + const token = dynamicMetadata ? this._moduleOpaqueKeyFactory.createForDynamic(type, dynamicMetadata, moduleClsOrDynamic) : this._moduleOpaqueKeyFactory.createForStatic(type, moduleClsOrDynamic); + return { type, dynamicMetadata, token }; + } + extractMetadata(moduleClsOrDynamic) { + if (!this.isDynamicModule(moduleClsOrDynamic)) { + return { + type: moduleClsOrDynamic?.forwardRef ? moduleClsOrDynamic.forwardRef() : moduleClsOrDynamic, + dynamicMetadata: void 0 + }; + } + const { module: type, ...dynamicMetadata } = moduleClsOrDynamic; + return { type, dynamicMetadata }; + } + isDynamicModule(moduleClsOrDynamic) { + return !!moduleClsOrDynamic.module; + } + }; + exports2.ModuleCompiler = ModuleCompiler; + } +}); + +// node_modules/@nestjs/core/router/request/request-providers.js +var require_request_providers = __commonJS({ + "node_modules/@nestjs/core/router/request/request-providers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.requestProvider = void 0; + var common_12 = require_common(); + var request_constants_1 = require_request_constants(); + var noop = /* @__PURE__ */ __name(() => { + }, "noop"); + exports2.requestProvider = { + provide: request_constants_1.REQUEST, + scope: common_12.Scope.REQUEST, + useFactory: noop + }; + } +}); + +// node_modules/@nestjs/core/services/index.js +var require_services2 = __commonJS({ + "node_modules/@nestjs/core/services/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_reflector_service(), exports2); + } +}); + +// node_modules/@nestjs/core/injector/inquirer/inquirer-providers.js +var require_inquirer_providers = __commonJS({ + "node_modules/@nestjs/core/injector/inquirer/inquirer-providers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.inquirerProvider = void 0; + var common_12 = require_common(); + var inquirer_constants_1 = require_inquirer_constants(); + var noop = /* @__PURE__ */ __name(() => { + }, "noop"); + exports2.inquirerProvider = { + provide: inquirer_constants_1.INQUIRER, + scope: common_12.Scope.TRANSIENT, + useFactory: noop + }; + } +}); + +// node_modules/@nestjs/core/injector/internal-core-module/internal-core-module.js +var require_internal_core_module = __commonJS({ + "node_modules/@nestjs/core/injector/internal-core-module/internal-core-module.js"(exports2) { + "use strict"; + var InternalCoreModule_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InternalCoreModule = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var request_providers_1 = require_request_providers(); + var services_1 = require_services2(); + var inquirer_providers_1 = require_inquirer_providers(); + var ReflectorAliasProvider = { + provide: services_1.Reflector.name, + useExisting: services_1.Reflector + }; + var InternalCoreModule = InternalCoreModule_1 = class InternalCoreModule { + static { + __name(this, "InternalCoreModule"); + } + static register(providers) { + return { + module: InternalCoreModule_1, + providers: [...providers], + exports: [...providers.map((item) => item.provide)] + }; + } + }; + exports2.InternalCoreModule = InternalCoreModule; + exports2.InternalCoreModule = InternalCoreModule = InternalCoreModule_1 = tslib_1.__decorate([ + (0, common_12.Global)(), + (0, common_12.Module)({ + providers: [ + services_1.Reflector, + ReflectorAliasProvider, + request_providers_1.requestProvider, + inquirer_providers_1.inquirerProvider + ], + exports: [ + services_1.Reflector, + ReflectorAliasProvider, + request_providers_1.requestProvider, + inquirer_providers_1.inquirerProvider + ] + }) + ], InternalCoreModule); + } +}); + +// node_modules/@nestjs/core/injector/internal-providers-storage.js +var require_internal_providers_storage = __commonJS({ + "node_modules/@nestjs/core/injector/internal-providers-storage.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InternalProvidersStorage = void 0; + var http_adapter_host_1 = require_http_adapter_host(); + var InternalProvidersStorage = class { + static { + __name(this, "InternalProvidersStorage"); + } + constructor() { + this._httpAdapterHost = new http_adapter_host_1.HttpAdapterHost(); + } + get httpAdapterHost() { + return this._httpAdapterHost; + } + get httpAdapter() { + return this._httpAdapter; + } + set httpAdapter(httpAdapter) { + this._httpAdapter = httpAdapter; + } + }; + exports2.InternalProvidersStorage = InternalProvidersStorage; + } +}); + +// node_modules/@nestjs/core/injector/module.js +var require_module = __commonJS({ + "node_modules/@nestjs/core/injector/module.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Module = void 0; + var constants_1 = require_constants2(); + var interfaces_1 = require_interfaces(); + var random_string_generator_util_1 = require_random_string_generator_util(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var application_config_1 = require_application_config(); + var exceptions_1 = require_exceptions3(); + var context_id_factory_1 = require_context_id_factory(); + var get_class_scope_1 = require_get_class_scope(); + var is_durable_1 = require_is_durable(); + var uuid_factory_1 = require_uuid_factory(); + var constants_2 = require_constants5(); + var instance_wrapper_1 = require_instance_wrapper(); + var module_ref_1 = require_module_ref(); + var Module = class { + static { + __name(this, "Module"); + } + constructor(_metatype, container) { + this._metatype = _metatype; + this.container = container; + this._imports = /* @__PURE__ */ new Set(); + this._providers = /* @__PURE__ */ new Map(); + this._injectables = /* @__PURE__ */ new Map(); + this._middlewares = /* @__PURE__ */ new Map(); + this._controllers = /* @__PURE__ */ new Map(); + this._entryProviderKeys = /* @__PURE__ */ new Set(); + this._exports = /* @__PURE__ */ new Set(); + this._distance = 0; + this._initOnPreview = false; + this._isGlobal = false; + this.addCoreProviders(); + this._id = this.generateUuid(); + } + get id() { + return this._id; + } + get token() { + return this._token; + } + set token(token) { + this._token = token; + } + get name() { + return this.metatype.name; + } + get isGlobal() { + return this._isGlobal; + } + set isGlobal(global2) { + this._isGlobal = global2; + } + get initOnPreview() { + return this._initOnPreview; + } + set initOnPreview(initOnPreview) { + this._initOnPreview = initOnPreview; + } + get providers() { + return this._providers; + } + get middlewares() { + return this._middlewares; + } + get imports() { + return this._imports; + } + get injectables() { + return this._injectables; + } + get controllers() { + return this._controllers; + } + get entryProviders() { + return Array.from(this._entryProviderKeys).map((token) => this.providers.get(token)); + } + get exports() { + return this._exports; + } + get instance() { + if (!this._providers.has(this._metatype)) { + throw new exceptions_1.RuntimeException(); + } + const moduleRef = this._providers.get(this._metatype); + return moduleRef.instance; + } + get metatype() { + return this._metatype; + } + get distance() { + return this._distance; + } + set distance(value) { + this._distance = value; + } + addCoreProviders() { + this.addModuleAsProvider(); + this.addModuleRef(); + this.addApplicationConfig(); + } + addModuleRef() { + const moduleRef = this.createModuleReferenceType(); + this._providers.set(module_ref_1.ModuleRef, new instance_wrapper_1.InstanceWrapper({ + token: module_ref_1.ModuleRef, + name: module_ref_1.ModuleRef.name, + metatype: module_ref_1.ModuleRef, + isResolved: true, + instance: new moduleRef(), + host: this + })); + } + addModuleAsProvider() { + this._providers.set(this._metatype, new instance_wrapper_1.InstanceWrapper({ + token: this._metatype, + name: this._metatype.name, + metatype: this._metatype, + isResolved: false, + instance: null, + host: this + })); + } + addApplicationConfig() { + this._providers.set(application_config_1.ApplicationConfig, new instance_wrapper_1.InstanceWrapper({ + token: application_config_1.ApplicationConfig, + name: application_config_1.ApplicationConfig.name, + isResolved: true, + instance: this.container.applicationConfig, + host: this + })); + } + addInjectable(injectable, enhancerSubtype, host) { + if (this.isCustomProvider(injectable)) { + return this.addCustomProvider(injectable, this._injectables, enhancerSubtype); + } + let instanceWrapper = this.injectables.get(injectable); + if (!instanceWrapper) { + instanceWrapper = new instance_wrapper_1.InstanceWrapper({ + token: injectable, + name: injectable.name, + metatype: injectable, + instance: null, + isResolved: false, + scope: (0, get_class_scope_1.getClassScope)(injectable), + durable: (0, is_durable_1.isDurable)(injectable), + subtype: enhancerSubtype, + host: this + }); + this._injectables.set(injectable, instanceWrapper); + } + if (host) { + const hostWrapper = this._controllers.get(host) || this._providers.get(host); + hostWrapper && hostWrapper.addEnhancerMetadata(instanceWrapper); + } + return instanceWrapper; + } + addProvider(provider, enhancerSubtype) { + if (this.isCustomProvider(provider)) { + if (this.isEntryProvider(provider.provide)) { + this._entryProviderKeys.add(provider.provide); + } + return this.addCustomProvider(provider, this._providers, enhancerSubtype); + } + const isAlreadyDeclared = this._providers.has(provider); + if ((this.isTransientProvider(provider) || this.isRequestScopeProvider(provider)) && isAlreadyDeclared) { + return provider; + } + this._providers.set(provider, new instance_wrapper_1.InstanceWrapper({ + token: provider, + name: provider.name, + metatype: provider, + instance: null, + isResolved: false, + scope: (0, get_class_scope_1.getClassScope)(provider), + durable: (0, is_durable_1.isDurable)(provider), + host: this + })); + if (this.isEntryProvider(provider)) { + this._entryProviderKeys.add(provider); + } + return provider; + } + isCustomProvider(provider) { + return !(0, shared_utils_1.isNil)(provider.provide); + } + addCustomProvider(provider, collection, enhancerSubtype) { + if (this.isCustomClass(provider)) { + this.addCustomClass(provider, collection, enhancerSubtype); + } else if (this.isCustomValue(provider)) { + this.addCustomValue(provider, collection, enhancerSubtype); + } else if (this.isCustomFactory(provider)) { + this.addCustomFactory(provider, collection, enhancerSubtype); + } else if (this.isCustomUseExisting(provider)) { + this.addCustomUseExisting(provider, collection, enhancerSubtype); + } + return provider.provide; + } + isCustomClass(provider) { + return !(0, shared_utils_1.isUndefined)(provider.useClass); + } + isCustomValue(provider) { + return (0, shared_utils_1.isObject)(provider) && Object.prototype.hasOwnProperty.call(provider, "useValue"); + } + isCustomFactory(provider) { + return !(0, shared_utils_1.isUndefined)(provider.useFactory); + } + isCustomUseExisting(provider) { + return !(0, shared_utils_1.isUndefined)(provider.useExisting); + } + isDynamicModule(exported) { + return exported && exported.module; + } + addCustomClass(provider, collection, enhancerSubtype) { + let { scope, durable } = provider; + const { useClass } = provider; + if ((0, shared_utils_1.isUndefined)(scope)) { + scope = (0, get_class_scope_1.getClassScope)(useClass); + } + if ((0, shared_utils_1.isUndefined)(durable)) { + durable = (0, is_durable_1.isDurable)(useClass); + } + const token = provider.provide; + collection.set(token, new instance_wrapper_1.InstanceWrapper({ + token, + name: useClass?.name || useClass, + metatype: useClass, + instance: null, + isResolved: false, + scope, + durable, + host: this, + subtype: enhancerSubtype + })); + } + addCustomValue(provider, collection, enhancerSubtype) { + const { useValue: value, provide: providerToken } = provider; + const instanceDecorator = this.container.contextOptions?.instrument?.instanceDecorator; + collection.set(providerToken, new instance_wrapper_1.InstanceWrapper({ + token: providerToken, + name: providerToken?.name || providerToken, + metatype: null, + instance: instanceDecorator ? instanceDecorator(value) : value, + isResolved: true, + async: value instanceof Promise, + host: this, + subtype: enhancerSubtype + })); + } + addCustomFactory(provider, collection, enhancerSubtype) { + const { useFactory: factory, inject, scope, durable, provide: providerToken } = provider; + collection.set(providerToken, new instance_wrapper_1.InstanceWrapper({ + token: providerToken, + name: providerToken?.name || providerToken, + metatype: factory, + instance: null, + isResolved: false, + inject: inject || [], + scope, + durable, + host: this, + subtype: enhancerSubtype + })); + } + addCustomUseExisting(provider, collection, enhancerSubtype) { + const { useExisting, provide: providerToken } = provider; + collection.set(providerToken, new instance_wrapper_1.InstanceWrapper({ + token: providerToken, + name: providerToken?.name || providerToken, + metatype: /* @__PURE__ */ __name(((instance) => instance), "metatype"), + instance: null, + isResolved: false, + inject: [useExisting], + host: this, + isAlias: true, + subtype: enhancerSubtype + })); + } + addExportedProviderOrModule(toExport) { + const addExportedUnit = /* @__PURE__ */ __name((token) => this._exports.add(this.validateExportedProvider(token)), "addExportedUnit"); + if (this.isCustomProvider(toExport)) { + return this.addCustomExportedProvider(toExport); + } else if ((0, shared_utils_1.isString)(toExport) || (0, shared_utils_1.isSymbol)(toExport)) { + return addExportedUnit(toExport); + } else if (this.isDynamicModule(toExport)) { + const { module: moduleClassRef } = toExport; + return addExportedUnit(moduleClassRef); + } + addExportedUnit(toExport); + } + addCustomExportedProvider(provider) { + const provide = provider.provide; + if ((0, shared_utils_1.isString)(provide) || (0, shared_utils_1.isSymbol)(provide)) { + return this._exports.add(this.validateExportedProvider(provide)); + } + this._exports.add(this.validateExportedProvider(provide)); + } + validateExportedProvider(token) { + if (this._providers.has(token)) { + return token; + } + const imports = (0, iterare_1.iterate)(this._imports.values()).filter((item) => !!item).map(({ metatype }) => metatype).filter((metatype) => !!metatype).toArray(); + if (!imports.includes(token)) { + const { name } = this.metatype; + const providerName = (0, shared_utils_1.isFunction)(token) ? token.name : token; + throw new exceptions_1.UnknownExportException(providerName, name); + } + return token; + } + addController(controller) { + this._controllers.set(controller, new instance_wrapper_1.InstanceWrapper({ + token: controller, + name: controller.name, + metatype: controller, + instance: null, + isResolved: false, + scope: (0, get_class_scope_1.getClassScope)(controller), + durable: (0, is_durable_1.isDurable)(controller), + host: this + })); + this.assignControllerUniqueId(controller); + } + assignControllerUniqueId(controller) { + Object.defineProperty(controller, constants_2.CONTROLLER_ID_KEY, { + enumerable: false, + writable: false, + configurable: true, + value: (0, random_string_generator_util_1.randomStringGenerator)() + }); + } + addImport(moduleRef) { + this._imports.add(moduleRef); + } + replace(toReplace, options) { + if (options.isProvider && this.hasProvider(toReplace)) { + const originalProvider = this._providers.get(toReplace); + return originalProvider.mergeWith({ provide: toReplace, ...options }); + } else if (!options.isProvider && this.hasInjectable(toReplace)) { + const originalInjectable = this._injectables.get(toReplace); + return originalInjectable.mergeWith({ + provide: toReplace, + ...options + }); + } + } + hasProvider(token) { + return this._providers.has(token); + } + hasInjectable(token) { + return this._injectables.has(token); + } + getProviderByKey(name) { + return this._providers.get(name); + } + getProviderById(id) { + return Array.from(this._providers.values()).find((item) => item.id === id); + } + getControllerById(id) { + return Array.from(this._controllers.values()).find((item) => item.id === id); + } + getInjectableById(id) { + return Array.from(this._injectables.values()).find((item) => item.id === id); + } + getMiddlewareById(id) { + return Array.from(this._middlewares.values()).find((item) => item.id === id); + } + getNonAliasProviders() { + return [...this._providers].filter(([_, wrapper]) => !wrapper.isAlias); + } + createModuleReferenceType() { + const self2 = this; + return class extends module_ref_1.ModuleRef { + constructor() { + super(self2.container); + } + get(typeOrToken, options = {}) { + options.strict ??= true; + options.each ??= false; + return this.find(typeOrToken, options.strict ? { + moduleId: self2.id, + each: options.each + } : options); + } + resolve(typeOrToken, contextId = (0, context_id_factory_1.createContextId)(), options = {}) { + options.strict ??= true; + options.each ??= false; + return this.resolvePerContext(typeOrToken, self2, contextId, options); + } + async create(type, contextId) { + if (!(type && (0, shared_utils_1.isFunction)(type) && type.prototype)) { + throw new exceptions_1.InvalidClassException(type); + } + return this.instantiateClass(type, self2, contextId); + } + }; + } + isEntryProvider(metatype) { + return typeof metatype === "function" ? !!Reflect.getMetadata(constants_1.ENTRY_PROVIDER_WATERMARK, metatype) : false; + } + generateUuid() { + const prefix = "M_"; + const key = this.token ? this.token.includes(":") ? this.token.split(":")[1] : this.token : this.name; + return key ? uuid_factory_1.UuidFactory.get(`${prefix}_${key}`) : (0, random_string_generator_util_1.randomStringGenerator)(); + } + isTransientProvider(provider) { + return (0, get_class_scope_1.getClassScope)(provider) === interfaces_1.Scope.TRANSIENT; + } + isRequestScopeProvider(provider) { + return (0, get_class_scope_1.getClassScope)(provider) === interfaces_1.Scope.REQUEST; + } + }; + exports2.Module = Module; + } +}); + +// node_modules/@nestjs/core/injector/opaque-key-factory/by-reference-module-opaque-key-factory.js +var require_by_reference_module_opaque_key_factory = __commonJS({ + "node_modules/@nestjs/core/injector/opaque-key-factory/by-reference-module-opaque-key-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ByReferenceModuleOpaqueKeyFactory = void 0; + var random_string_generator_util_1 = require_random_string_generator_util(); + var crypto_1 = require("crypto"); + var K_MODULE_ID = /* @__PURE__ */ Symbol("K_MODULE_ID"); + var ByReferenceModuleOpaqueKeyFactory = class { + static { + __name(this, "ByReferenceModuleOpaqueKeyFactory"); + } + constructor(options) { + this.keyGenerationStrategy = options?.keyGenerationStrategy ?? "random"; + } + createForStatic(moduleCls, originalRef = moduleCls) { + return this.getOrCreateModuleId(moduleCls, void 0, originalRef); + } + createForDynamic(moduleCls, dynamicMetadata, originalRef) { + return this.getOrCreateModuleId(moduleCls, dynamicMetadata, originalRef); + } + getOrCreateModuleId(moduleCls, dynamicMetadata, originalRef) { + if (originalRef[K_MODULE_ID]) { + return originalRef[K_MODULE_ID]; + } + let moduleId; + if (this.keyGenerationStrategy === "random") { + moduleId = this.generateRandomString(); + } else { + const delimiter = ":"; + moduleId = dynamicMetadata ? `${this.generateRandomString()}${delimiter}${this.hashString(moduleCls.name + JSON.stringify(dynamicMetadata))}` : `${this.generateRandomString()}${delimiter}${this.hashString(moduleCls.toString())}`; + } + originalRef[K_MODULE_ID] = moduleId; + return moduleId; + } + hashString(value) { + return (0, crypto_1.createHash)("sha256").update(value).digest("hex"); + } + generateRandomString() { + return (0, random_string_generator_util_1.randomStringGenerator)(); + } + }; + exports2.ByReferenceModuleOpaqueKeyFactory = ByReferenceModuleOpaqueKeyFactory; + } +}); + +// node_modules/fast-safe-stringify/index.js +var require_fast_safe_stringify = __commonJS({ + "node_modules/fast-safe-stringify/index.js"(exports2, module2) { + module2.exports = stringify; + stringify.default = stringify; + stringify.stable = deterministicStringify; + stringify.stableStringify = deterministicStringify; + var LIMIT_REPLACE_NODE = "[...]"; + var CIRCULAR_REPLACE_NODE = "[Circular]"; + var arr = []; + var replacerStack = []; + function defaultOptions() { + return { + depthLimit: Number.MAX_SAFE_INTEGER, + edgesLimit: Number.MAX_SAFE_INTEGER + }; + } + __name(defaultOptions, "defaultOptions"); + function stringify(obj, replacer, spacer, options) { + if (typeof options === "undefined") { + options = defaultOptions(); + } + decirc(obj, "", 0, [], void 0, 0, options); + var res; + try { + if (replacerStack.length === 0) { + res = JSON.stringify(obj, replacer, spacer); + } else { + res = JSON.stringify(obj, replaceGetterValues(replacer), spacer); + } + } catch (_) { + return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]"); + } finally { + while (arr.length !== 0) { + var part = arr.pop(); + if (part.length === 4) { + Object.defineProperty(part[0], part[1], part[3]); + } else { + part[0][part[1]] = part[2]; + } + } + } + return res; + } + __name(stringify, "stringify"); + function setReplace(replace, val, k, parent) { + var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k); + if (propertyDescriptor.get !== void 0) { + if (propertyDescriptor.configurable) { + Object.defineProperty(parent, k, { value: replace }); + arr.push([parent, k, val, propertyDescriptor]); + } else { + replacerStack.push([val, k, replace]); + } + } else { + parent[k] = replace; + arr.push([parent, k, val]); + } + } + __name(setReplace, "setReplace"); + function decirc(val, k, edgeIndex, stack, parent, depth, options) { + depth += 1; + var i; + if (typeof val === "object" && val !== null) { + for (i = 0; i < stack.length; i++) { + if (stack[i] === val) { + setReplace(CIRCULAR_REPLACE_NODE, val, k, parent); + return; + } + } + if (typeof options.depthLimit !== "undefined" && depth > options.depthLimit) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent); + return; + } + if (typeof options.edgesLimit !== "undefined" && edgeIndex + 1 > options.edgesLimit) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent); + return; + } + stack.push(val); + if (Array.isArray(val)) { + for (i = 0; i < val.length; i++) { + decirc(val[i], i, i, stack, val, depth, options); + } + } else { + var keys = Object.keys(val); + for (i = 0; i < keys.length; i++) { + var key = keys[i]; + decirc(val[key], key, i, stack, val, depth, options); + } + } + stack.pop(); + } + } + __name(decirc, "decirc"); + function compareFunction(a, b) { + if (a < b) { + return -1; + } + if (a > b) { + return 1; + } + return 0; + } + __name(compareFunction, "compareFunction"); + function deterministicStringify(obj, replacer, spacer, options) { + if (typeof options === "undefined") { + options = defaultOptions(); + } + var tmp = deterministicDecirc(obj, "", 0, [], void 0, 0, options) || obj; + var res; + try { + if (replacerStack.length === 0) { + res = JSON.stringify(tmp, replacer, spacer); + } else { + res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer); + } + } catch (_) { + return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]"); + } finally { + while (arr.length !== 0) { + var part = arr.pop(); + if (part.length === 4) { + Object.defineProperty(part[0], part[1], part[3]); + } else { + part[0][part[1]] = part[2]; + } + } + } + return res; + } + __name(deterministicStringify, "deterministicStringify"); + function deterministicDecirc(val, k, edgeIndex, stack, parent, depth, options) { + depth += 1; + var i; + if (typeof val === "object" && val !== null) { + for (i = 0; i < stack.length; i++) { + if (stack[i] === val) { + setReplace(CIRCULAR_REPLACE_NODE, val, k, parent); + return; + } + } + try { + if (typeof val.toJSON === "function") { + return; + } + } catch (_) { + return; + } + if (typeof options.depthLimit !== "undefined" && depth > options.depthLimit) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent); + return; + } + if (typeof options.edgesLimit !== "undefined" && edgeIndex + 1 > options.edgesLimit) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent); + return; + } + stack.push(val); + if (Array.isArray(val)) { + for (i = 0; i < val.length; i++) { + deterministicDecirc(val[i], i, i, stack, val, depth, options); + } + } else { + var tmp = {}; + var keys = Object.keys(val).sort(compareFunction); + for (i = 0; i < keys.length; i++) { + var key = keys[i]; + deterministicDecirc(val[key], key, i, stack, val, depth, options); + tmp[key] = val[key]; + } + if (typeof parent !== "undefined") { + arr.push([parent, k, val]); + parent[k] = tmp; + } else { + return tmp; + } + } + stack.pop(); + } + } + __name(deterministicDecirc, "deterministicDecirc"); + function replaceGetterValues(replacer) { + replacer = typeof replacer !== "undefined" ? replacer : function(k, v) { + return v; + }; + return function(key, val) { + if (replacerStack.length > 0) { + for (var i = 0; i < replacerStack.length; i++) { + var part = replacerStack[i]; + if (part[1] === key && part[0] === val) { + val = part[2]; + replacerStack.splice(i, 1); + break; + } + } + } + return replacer.call(this, key, val); + }; + } + __name(replaceGetterValues, "replaceGetterValues"); + } +}); + +// node_modules/@nestjs/core/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.js +var require_deep_hashed_module_opaque_key_factory = __commonJS({ + "node_modules/@nestjs/core/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DeepHashedModuleOpaqueKeyFactory = void 0; + var logger_service_1 = require_logger_service(); + var random_string_generator_util_1 = require_random_string_generator_util(); + var shared_utils_1 = require_shared_utils(); + var crypto_1 = require("crypto"); + var fast_safe_stringify_1 = require_fast_safe_stringify(); + var CLASS_STR = "class "; + var CLASS_STR_LEN = CLASS_STR.length; + var DeepHashedModuleOpaqueKeyFactory = class _DeepHashedModuleOpaqueKeyFactory { + static { + __name(this, "DeepHashedModuleOpaqueKeyFactory"); + } + constructor() { + this.moduleIdsCache = /* @__PURE__ */ new WeakMap(); + this.moduleTokenCache = /* @__PURE__ */ new Map(); + this.logger = new logger_service_1.Logger(_DeepHashedModuleOpaqueKeyFactory.name, { + timestamp: true + }); + } + createForStatic(moduleCls) { + const moduleId = this.getModuleId(moduleCls); + const moduleName = this.getModuleName(moduleCls); + const key = `${moduleId}_${moduleName}`; + if (this.moduleTokenCache.has(key)) { + return this.moduleTokenCache.get(key); + } + const hash = this.hashString(key); + this.moduleTokenCache.set(key, hash); + return hash; + } + createForDynamic(moduleCls, dynamicMetadata) { + const moduleId = this.getModuleId(moduleCls); + const moduleName = this.getModuleName(moduleCls); + const opaqueToken = { + id: moduleId, + module: moduleName, + dynamic: dynamicMetadata + }; + const start = performance.now(); + const opaqueTokenString = this.getStringifiedOpaqueToken(opaqueToken); + const timeSpentInMs = performance.now() - start; + if (timeSpentInMs > 10) { + const formattedTimeSpent = timeSpentInMs.toFixed(2); + this.logger.warn(`The module "${opaqueToken.module}" is taking ${formattedTimeSpent}ms to serialize, this may be caused by larger objects statically assigned to the module. Consider changing the "moduleIdGeneratorAlgorithm" option to "reference" to improve the performance.`); + } + return this.hashString(opaqueTokenString); + } + getStringifiedOpaqueToken(opaqueToken) { + return opaqueToken ? (0, fast_safe_stringify_1.default)(opaqueToken, this.replacer) : ""; + } + getModuleId(metatype) { + let moduleId = this.moduleIdsCache.get(metatype); + if (moduleId) { + return moduleId; + } + moduleId = (0, random_string_generator_util_1.randomStringGenerator)(); + this.moduleIdsCache.set(metatype, moduleId); + return moduleId; + } + getModuleName(metatype) { + return metatype.name; + } + hashString(value) { + return (0, crypto_1.createHash)("sha256").update(value).digest("hex"); + } + replacer(key, value) { + if ((0, shared_utils_1.isFunction)(value)) { + const funcAsString = value.toString(); + const isClass = funcAsString.slice(0, CLASS_STR_LEN) === CLASS_STR; + if (isClass) { + return value.name; + } + return funcAsString; + } + if ((0, shared_utils_1.isSymbol)(value)) { + return value.toString(); + } + return value; + } + }; + exports2.DeepHashedModuleOpaqueKeyFactory = DeepHashedModuleOpaqueKeyFactory; + } +}); + +// node_modules/@nestjs/core/injector/container.js +var require_container2 = __commonJS({ + "node_modules/@nestjs/core/injector/container.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NestContainer = void 0; + var constants_1 = require_constants2(); + var discoverable_meta_host_collection_1 = require_discoverable_meta_host_collection(); + var exceptions_1 = require_exceptions3(); + var initialize_on_preview_allowlist_1 = require_initialize_on_preview_allowlist(); + var serialized_graph_1 = require_serialized_graph(); + var request_constants_1 = require_request_constants(); + var compiler_1 = require_compiler(); + var internal_core_module_1 = require_internal_core_module(); + var internal_providers_storage_1 = require_internal_providers_storage(); + var module_1 = require_module(); + var modules_container_1 = require_modules_container(); + var by_reference_module_opaque_key_factory_1 = require_by_reference_module_opaque_key_factory(); + var deep_hashed_module_opaque_key_factory_1 = require_deep_hashed_module_opaque_key_factory(); + var NestContainer = class { + static { + __name(this, "NestContainer"); + } + constructor(_applicationConfig = void 0, _contextOptions = void 0) { + this._applicationConfig = _applicationConfig; + this._contextOptions = _contextOptions; + this.globalModules = /* @__PURE__ */ new Set(); + this.modules = new modules_container_1.ModulesContainer(); + this.dynamicModulesMetadata = /* @__PURE__ */ new Map(); + this.internalProvidersStorage = new internal_providers_storage_1.InternalProvidersStorage(); + this._serializedGraph = new serialized_graph_1.SerializedGraph(); + const moduleOpaqueKeyFactory = this._contextOptions?.moduleIdGeneratorAlgorithm === "deep-hash" ? new deep_hashed_module_opaque_key_factory_1.DeepHashedModuleOpaqueKeyFactory() : new by_reference_module_opaque_key_factory_1.ByReferenceModuleOpaqueKeyFactory({ + keyGenerationStrategy: this._contextOptions?.snapshot ? "shallow" : "random" + }); + this.moduleCompiler = new compiler_1.ModuleCompiler(moduleOpaqueKeyFactory); + } + get serializedGraph() { + return this._serializedGraph; + } + get applicationConfig() { + return this._applicationConfig; + } + get contextOptions() { + return this._contextOptions; + } + setHttpAdapter(httpAdapter) { + this.internalProvidersStorage.httpAdapter = httpAdapter; + if (!this.internalProvidersStorage.httpAdapterHost) { + return; + } + const host = this.internalProvidersStorage.httpAdapterHost; + host.httpAdapter = httpAdapter; + } + getHttpAdapterRef() { + return this.internalProvidersStorage.httpAdapter; + } + getHttpAdapterHostRef() { + return this.internalProvidersStorage.httpAdapterHost; + } + async addModule(metatype, scope) { + if (!metatype) { + throw new exceptions_1.UndefinedForwardRefException(scope); + } + const { type, dynamicMetadata, token } = await this.moduleCompiler.compile(metatype); + if (this.modules.has(token)) { + return { + moduleRef: this.modules.get(token), + inserted: true + }; + } + return { + moduleRef: await this.setModule({ + token, + type, + dynamicMetadata + }, scope), + inserted: true + }; + } + async replaceModule(metatypeToReplace, newMetatype, scope) { + if (!metatypeToReplace || !newMetatype) { + throw new exceptions_1.UndefinedForwardRefException(scope); + } + const { token } = await this.moduleCompiler.compile(metatypeToReplace); + const { type, dynamicMetadata } = await this.moduleCompiler.compile(newMetatype); + return { + moduleRef: await this.setModule({ + token, + type, + dynamicMetadata + }, scope), + inserted: false + }; + } + async setModule({ token, dynamicMetadata, type }, scope) { + const moduleRef = new module_1.Module(type, this); + moduleRef.token = token; + moduleRef.initOnPreview = this.shouldInitOnPreview(type); + this.modules.set(token, moduleRef); + const updatedScope = [].concat(scope, type); + await this.addDynamicMetadata(token, dynamicMetadata, updatedScope); + if (this.isGlobalModule(type, dynamicMetadata)) { + moduleRef.isGlobal = true; + moduleRef.distance = Number.MAX_VALUE; + this.addGlobalModule(moduleRef); + } + return moduleRef; + } + async addDynamicMetadata(token, dynamicModuleMetadata, scope) { + if (!dynamicModuleMetadata) { + return; + } + this.dynamicModulesMetadata.set(token, dynamicModuleMetadata); + const { imports } = dynamicModuleMetadata; + await this.addDynamicModules(imports, scope); + } + async addDynamicModules(modules, scope) { + if (!modules) { + return; + } + await Promise.all(modules.map((module3) => this.addModule(module3, scope))); + } + isGlobalModule(metatype, dynamicMetadata) { + if (dynamicMetadata && dynamicMetadata.global) { + return true; + } + return !!Reflect.getMetadata(constants_1.GLOBAL_MODULE_METADATA, metatype); + } + addGlobalModule(module3) { + this.globalModules.add(module3); + } + getModules() { + return this.modules; + } + getModuleCompiler() { + return this.moduleCompiler; + } + getModuleByKey(moduleKey) { + return this.modules.get(moduleKey); + } + getInternalCoreModuleRef() { + return this.internalCoreModule; + } + async addImport(relatedModule, token) { + if (!this.modules.has(token)) { + return; + } + const moduleRef = this.modules.get(token); + const { token: relatedModuleToken } = await this.moduleCompiler.compile(relatedModule); + const related = this.modules.get(relatedModuleToken); + moduleRef.addImport(related); + } + addProvider(provider, token, enhancerSubtype) { + const moduleRef = this.modules.get(token); + if (!provider) { + throw new exceptions_1.CircularDependencyException(moduleRef?.metatype.name); + } + if (!moduleRef) { + throw new exceptions_1.UnknownModuleException(); + } + const providerKey = moduleRef.addProvider(provider, enhancerSubtype); + const providerRef = moduleRef.getProviderByKey(providerKey); + discoverable_meta_host_collection_1.DiscoverableMetaHostCollection.inspectProvider(this.modules, providerRef); + return providerKey; + } + addInjectable(injectable, token, enhancerSubtype, host) { + if (!this.modules.has(token)) { + throw new exceptions_1.UnknownModuleException(); + } + const moduleRef = this.modules.get(token); + return moduleRef.addInjectable(injectable, enhancerSubtype, host); + } + addExportedProviderOrModule(toExport, token) { + if (!this.modules.has(token)) { + throw new exceptions_1.UnknownModuleException(); + } + const moduleRef = this.modules.get(token); + moduleRef.addExportedProviderOrModule(toExport); + } + addController(controller, token) { + if (!this.modules.has(token)) { + throw new exceptions_1.UnknownModuleException(); + } + const moduleRef = this.modules.get(token); + moduleRef.addController(controller); + const controllerRef = moduleRef.controllers.get(controller); + discoverable_meta_host_collection_1.DiscoverableMetaHostCollection.inspectController(this.modules, controllerRef); + } + clear() { + this.modules.clear(); + } + replace(toReplace, options) { + this.modules.forEach((moduleRef) => moduleRef.replace(toReplace, options)); + } + bindGlobalScope() { + this.modules.forEach((moduleRef) => this.bindGlobalsToImports(moduleRef)); + } + bindGlobalsToImports(moduleRef) { + this.globalModules.forEach((globalModule) => this.bindGlobalModuleToModule(moduleRef, globalModule)); + } + bindGlobalModuleToModule(target, globalModule) { + if (target === globalModule || target === this.internalCoreModule) { + return; + } + target.addImport(globalModule); + } + getDynamicMetadataByToken(token, metadataKey) { + const metadata = this.dynamicModulesMetadata.get(token); + return metadataKey ? metadata?.[metadataKey] ?? [] : metadata; + } + registerCoreModuleRef(moduleRef) { + this.internalCoreModule = moduleRef; + this.modules[internal_core_module_1.InternalCoreModule.name] = moduleRef; + } + getModuleTokenFactory() { + return this.moduleCompiler.moduleOpaqueKeyFactory; + } + registerRequestProvider(request, contextId) { + const wrapper = this.internalCoreModule.getProviderByKey(request_constants_1.REQUEST); + wrapper.setInstanceByContextId(contextId, { + instance: request, + isResolved: true + }); + } + shouldInitOnPreview(type) { + return initialize_on_preview_allowlist_1.InitializeOnPreviewAllowlist.has(type); + } + }; + exports2.NestContainer = NestContainer; + } +}); + +// node_modules/@nestjs/core/injector/index.js +var require_injector2 = __commonJS({ + "node_modules/@nestjs/core/injector/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_container2(), exports2); + tslib_1.__exportStar(require_inquirer(), exports2); + tslib_1.__exportStar(require_lazy_module_loader(), exports2); + tslib_1.__exportStar(require_module_ref(), exports2); + tslib_1.__exportStar(require_modules_container(), exports2); + } +}); + +// node_modules/@nestjs/core/inspector/partial-graph.host.js +var require_partial_graph_host = __commonJS({ + "node_modules/@nestjs/core/inspector/partial-graph.host.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PartialGraphHost = void 0; + var PartialGraphHost = class { + static { + __name(this, "PartialGraphHost"); + } + static toJSON() { + return this.partialGraph?.toJSON(); + } + static toString() { + return this.partialGraph?.toString(); + } + static register(partialGraph) { + this.partialGraph = partialGraph; + } + }; + exports2.PartialGraphHost = PartialGraphHost; + } +}); + +// node_modules/@nestjs/core/inspector/graph-inspector.js +var require_graph_inspector = __commonJS({ + "node_modules/@nestjs/core/inspector/graph-inspector.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.GraphInspector = void 0; + var unknown_dependencies_exception_1 = require_unknown_dependencies_exception(); + var deterministic_uuid_registry_1 = require_deterministic_uuid_registry(); + var partial_graph_host_1 = require_partial_graph_host(); + var GraphInspector = class { + static { + __name(this, "GraphInspector"); + } + constructor(container) { + this.container = container; + this.enhancersMetadataCache = new Array(); + this.graph = container.serializedGraph; + } + inspectModules(modules = this.container.getModules()) { + for (const moduleRef of modules.values()) { + this.insertModuleNode(moduleRef); + this.insertClassNodes(moduleRef); + this.insertModuleToModuleEdges(moduleRef); + } + this.enhancersMetadataCache.forEach((entry) => this.insertEnhancerEdge(entry)); + deterministic_uuid_registry_1.DeterministicUuidRegistry.clear(); + } + registerPartial(error) { + this.graph.status = "partial"; + if (error instanceof unknown_dependencies_exception_1.UnknownDependenciesException) { + this.graph.metadata = { + cause: { + type: "unknown-dependencies", + context: error.context, + moduleId: error.moduleRef?.id, + nodeId: error.metadata?.id + } + }; + } else { + this.graph.metadata = { + cause: { + type: "unknown", + error + } + }; + } + partial_graph_host_1.PartialGraphHost.register(this.graph); + } + inspectInstanceWrapper(source, moduleRef) { + const ctorMetadata = source.getCtorMetadata(); + ctorMetadata?.forEach((target, index) => this.insertClassToClassEdge(source, target, moduleRef, index, "constructor")); + const propertiesMetadata = source.getPropertiesMetadata(); + propertiesMetadata?.forEach(({ key, wrapper: target }) => this.insertClassToClassEdge(source, target, moduleRef, key, "property")); + } + insertEnhancerMetadataCache(entry) { + this.enhancersMetadataCache.push(entry); + } + insertOrphanedEnhancer(entry) { + this.graph.insertOrphanedEnhancer({ + ...entry, + ref: entry.ref?.constructor?.name ?? "Object" + }); + } + insertAttachedEnhancer(wrapper) { + const existingNode = this.graph.getNodeById(wrapper.id); + existingNode.metadata.global = true; + this.graph.insertAttachedEnhancer(existingNode.id); + } + insertEntrypointDefinition(definition, parentId) { + definition = { + ...definition, + id: `${definition.classNodeId}_${definition.methodName}` + }; + this.graph.insertEntrypoint(definition, parentId); + } + insertClassNode(moduleRef, wrapper, type) { + this.graph.insertNode({ + id: wrapper.id, + label: wrapper.name, + parent: moduleRef.id, + metadata: { + type, + internal: wrapper.metatype === moduleRef.metatype, + sourceModuleName: moduleRef.name, + durable: wrapper.isDependencyTreeDurable(), + static: wrapper.isDependencyTreeStatic(), + scope: wrapper.scope, + transient: wrapper.isTransient, + exported: moduleRef.exports.has(wrapper.token), + token: wrapper.token, + subtype: wrapper.subtype, + initTime: wrapper.initTime + } + }); + } + insertModuleNode(moduleRef) { + const dynamicMetadata = this.container.getDynamicMetadataByToken(moduleRef.token); + const node = { + id: moduleRef.id, + label: moduleRef.name, + metadata: { + type: "module", + global: moduleRef.isGlobal, + dynamic: !!dynamicMetadata, + internal: moduleRef.name === "InternalCoreModule" + } + }; + this.graph.insertNode(node); + } + insertModuleToModuleEdges(moduleRef) { + for (const targetModuleRef of moduleRef.imports) { + this.graph.insertEdge({ + source: moduleRef.id, + target: targetModuleRef.id, + metadata: { + type: "module-to-module", + sourceModuleName: moduleRef.name, + targetModuleName: targetModuleRef.name + } + }); + } + } + insertEnhancerEdge(entry) { + const moduleRef = this.container.getModuleByKey(entry.moduleToken); + const sourceInstanceWrapper = moduleRef.controllers.get(entry.classRef) ?? moduleRef.providers.get(entry.classRef); + const existingSourceNode = this.graph.getNodeById(sourceInstanceWrapper.id); + const enhancers = existingSourceNode.metadata.enhancers ?? []; + if (entry.enhancerInstanceWrapper) { + this.insertClassToClassEdge(sourceInstanceWrapper, entry.enhancerInstanceWrapper, moduleRef, void 0, "decorator"); + enhancers.push({ + id: entry.enhancerInstanceWrapper.id, + methodKey: entry.methodKey, + subtype: entry.subtype + }); + } else { + const name = entry.enhancerRef.constructor?.name ?? entry.enhancerRef.name; + enhancers.push({ + name, + methodKey: entry.methodKey, + subtype: entry.subtype + }); + } + existingSourceNode.metadata.enhancers = enhancers; + } + insertClassToClassEdge(source, target, moduleRef, keyOrIndex, injectionType) { + this.graph.insertEdge({ + source: source.id, + target: target.id, + metadata: { + type: "class-to-class", + sourceModuleName: moduleRef.name, + sourceClassName: source.name, + targetClassName: target.name, + sourceClassToken: source.token, + targetClassToken: target.token, + targetModuleName: target.host?.name, + keyOrIndex, + injectionType + } + }); + } + insertClassNodes(moduleRef) { + moduleRef.providers.forEach((value) => this.insertClassNode(moduleRef, value, "provider")); + moduleRef.injectables.forEach((value) => this.insertClassNode(moduleRef, value, "injectable")); + moduleRef.controllers.forEach((value) => this.insertClassNode(moduleRef, value, "controller")); + } + }; + exports2.GraphInspector = GraphInspector; + } +}); + +// node_modules/@nestjs/core/inspector/index.js +var require_inspector = __commonJS({ + "node_modules/@nestjs/core/inspector/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_graph_inspector(), exports2); + tslib_1.__exportStar(require_initialize_on_preview_allowlist(), exports2); + tslib_1.__exportStar(require_partial_graph_host(), exports2); + tslib_1.__exportStar(require_serialized_graph(), exports2); + } +}); + +// node_modules/path-to-regexp/dist/index.js +var require_dist2 = __commonJS({ + "node_modules/path-to-regexp/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PathError = exports2.TokenData = void 0; + exports2.parse = parse; + exports2.compile = compile; + exports2.match = match; + exports2.pathToRegexp = pathToRegexp; + exports2.stringify = stringify; + var DEFAULT_DELIMITER = "/"; + var NOOP_VALUE = /* @__PURE__ */ __name((value) => value, "NOOP_VALUE"); + var ID_START = /^[$_\p{ID_Start}]$/u; + var ID_CONTINUE = /^[$\u200c\u200d\p{ID_Continue}]$/u; + var ID = /^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u; + function escapeText(str) { + return str.replace(/[{}()\[\]+?!:*\\]/g, "\\$&"); + } + __name(escapeText, "escapeText"); + function escape2(str) { + return str.replace(/[.+*?^${}()[\]|/\\]/g, "\\$&"); + } + __name(escape2, "escape"); + var TokenData = class { + static { + __name(this, "TokenData"); + } + constructor(tokens, originalPath) { + this.tokens = tokens; + this.originalPath = originalPath; + } + }; + exports2.TokenData = TokenData; + var PathError = class extends TypeError { + static { + __name(this, "PathError"); + } + constructor(message, originalPath) { + let text = message; + if (originalPath) + text += `: ${originalPath}`; + text += `; visit https://git.new/pathToRegexpError for info`; + super(text); + this.originalPath = originalPath; + } + }; + exports2.PathError = PathError; + function parse(str, options = {}) { + const { encodePath = NOOP_VALUE } = options; + const chars = [...str]; + let index = 0; + function consumeUntil(end) { + const output = []; + let path = ""; + function writePath() { + if (!path) + return; + output.push({ + type: "text", + value: encodePath(path) + }); + path = ""; + } + __name(writePath, "writePath"); + while (index < chars.length) { + const value = chars[index++]; + if (value === end) { + writePath(); + return output; + } + if (value === "\\") { + if (index === chars.length) { + throw new PathError(`Unexpected end after \\ at index ${index}`, str); + } + path += chars[index++]; + continue; + } + if (value === ":" || value === "*") { + const type = value === ":" ? "param" : "wildcard"; + let name = ""; + if (ID_START.test(chars[index])) { + do { + name += chars[index++]; + } while (ID_CONTINUE.test(chars[index])); + } else if (chars[index] === '"') { + let quoteStart = index; + while (index < chars.length) { + if (chars[++index] === '"') { + index++; + quoteStart = 0; + break; + } + if (chars[index] === "\\") + index++; + name += chars[index]; + } + if (quoteStart) { + throw new PathError(`Unterminated quote at index ${quoteStart}`, str); + } + } + if (!name) { + throw new PathError(`Missing parameter name at index ${index}`, str); + } + writePath(); + output.push({ type, name }); + continue; + } + if (value === "{") { + writePath(); + output.push({ + type: "group", + tokens: consumeUntil("}") + }); + continue; + } + if (value === "}" || value === "(" || value === ")" || value === "[" || value === "]" || value === "+" || value === "?" || value === "!") { + throw new PathError(`Unexpected ${value} at index ${index - 1}`, str); + } + path += value; + } + if (end) { + throw new PathError(`Unexpected end at index ${index}, expected ${end}`, str); + } + writePath(); + return output; + } + __name(consumeUntil, "consumeUntil"); + return new TokenData(consumeUntil(""), str); + } + __name(parse, "parse"); + function compile(path, options = {}) { + const { encode = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options; + const data = typeof path === "object" ? path : parse(path, options); + const fn = tokensToFunction(data.tokens, delimiter, encode); + return /* @__PURE__ */ __name(function path2(params = {}) { + const missing = []; + const path3 = fn(params, missing); + if (missing.length) { + throw new TypeError(`Missing parameters: ${missing.join(", ")}`); + } + return path3; + }, "path"); + } + __name(compile, "compile"); + function tokensToFunction(tokens, delimiter, encode) { + const encoders = tokens.map((token) => tokenToFunction(token, delimiter, encode)); + return (data, missing) => { + let result = ""; + for (const encoder of encoders) { + result += encoder(data, missing); + } + return result; + }; + } + __name(tokensToFunction, "tokensToFunction"); + function tokenToFunction(token, delimiter, encode) { + if (token.type === "text") + return () => token.value; + if (token.type === "group") { + const fn = tokensToFunction(token.tokens, delimiter, encode); + return (data, missing) => { + const len = missing.length; + const value = fn(data, missing); + if (missing.length === len) + return value; + missing.length = len; + return ""; + }; + } + const encodeValue = encode || NOOP_VALUE; + if (token.type === "wildcard" && encode !== false) { + return (data, missing) => { + const value = data[token.name]; + if (value == null) { + missing.push(token.name); + return ""; + } + if (!Array.isArray(value) || value.length === 0) { + throw new TypeError(`Expected "${token.name}" to be a non-empty array`); + } + let result = ""; + for (let i = 0; i < value.length; i++) { + if (typeof value[i] !== "string") { + throw new TypeError(`Expected "${token.name}/${i}" to be a string`); + } + if (i > 0) + result += delimiter; + result += encodeValue(value[i]); + } + return result; + }; + } + return (data, missing) => { + const value = data[token.name]; + if (value == null) { + missing.push(token.name); + return ""; + } + if (typeof value !== "string") { + throw new TypeError(`Expected "${token.name}" to be a string`); + } + return encodeValue(value); + }; + } + __name(tokenToFunction, "tokenToFunction"); + function match(path, options = {}) { + const { decode = decodeURIComponent, delimiter = DEFAULT_DELIMITER } = options; + const { regexp, keys } = pathToRegexp(path, options); + const decoders = keys.map((key) => { + if (decode === false) + return NOOP_VALUE; + if (key.type === "param") + return decode; + return (value) => value.split(delimiter).map(decode); + }); + return /* @__PURE__ */ __name(function match2(input) { + const m = regexp.exec(input); + if (!m) + return false; + const path2 = m[0]; + const params = /* @__PURE__ */ Object.create(null); + for (let i = 1; i < m.length; i++) { + if (m[i] === void 0) + continue; + const key = keys[i - 1]; + const decoder = decoders[i - 1]; + params[key.name] = decoder(m[i]); + } + return { path: path2, params }; + }, "match"); + } + __name(match, "match"); + function pathToRegexp(path, options = {}) { + const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true } = options; + const keys = []; + let source = ""; + let combinations = 0; + function process2(path2) { + if (Array.isArray(path2)) { + for (const p of path2) + process2(p); + return; + } + const data = typeof path2 === "object" ? path2 : parse(path2, options); + flatten(data.tokens, 0, [], (tokens) => { + if (combinations >= 256) { + throw new PathError("Too many path combinations", data.originalPath); + } + if (combinations > 0) + source += "|"; + source += toRegExpSource(tokens, delimiter, keys, data.originalPath); + combinations++; + }); + } + __name(process2, "process"); + process2(path); + let pattern = `^(?:${source})`; + if (trailing) + pattern += "(?:" + escape2(delimiter) + "$)?"; + pattern += end ? "$" : "(?=" + escape2(delimiter) + "|$)"; + return { regexp: new RegExp(pattern, sensitive ? "" : "i"), keys }; + } + __name(pathToRegexp, "pathToRegexp"); + function flatten(tokens, index, result, callback) { + while (index < tokens.length) { + const token = tokens[index++]; + if (token.type === "group") { + const len = result.length; + flatten(token.tokens, 0, result, (seq) => flatten(tokens, index, seq, callback)); + result.length = len; + continue; + } + result.push(token); + } + callback(result); + } + __name(flatten, "flatten"); + function toRegExpSource(tokens, delimiter, keys, originalPath) { + let result = ""; + let backtrack = ""; + let wildcardBacktrack = ""; + let prevCaptureType = 0; + let hasSegmentCapture = 0; + let index = 0; + function hasInSegment(index2, type) { + while (index2 < tokens.length) { + const token = tokens[index2++]; + if (token.type === type) + return true; + if (token.type === "text") { + if (token.value.includes(delimiter)) + break; + } + } + return false; + } + __name(hasInSegment, "hasInSegment"); + function peekText(index2) { + let result2 = ""; + while (index2 < tokens.length) { + const token = tokens[index2++]; + if (token.type !== "text") + break; + result2 += token.value; + } + return result2; + } + __name(peekText, "peekText"); + while (index < tokens.length) { + const token = tokens[index++]; + if (token.type === "text") { + result += escape2(token.value); + backtrack += token.value; + if (prevCaptureType === 2) + wildcardBacktrack += token.value; + if (token.value.includes(delimiter)) + hasSegmentCapture = 0; + continue; + } + if (token.type === "param" || token.type === "wildcard") { + if (prevCaptureType && !backtrack) { + throw new PathError(`Missing text before "${token.name}" ${token.type}`, originalPath); + } + if (token.type === "param") { + result += hasSegmentCapture & 2 ? `(${negate(delimiter, backtrack)}+)` : hasInSegment(index, "wildcard") ? `(${negate(delimiter, peekText(index))}+)` : hasSegmentCapture & 1 ? `(${negate(delimiter, backtrack)}+|${escape2(backtrack)})` : `(${negate(delimiter, "")}+)`; + hasSegmentCapture |= prevCaptureType = 1; + } else { + result += hasSegmentCapture & 2 ? `(${negate(backtrack, "")}+)` : wildcardBacktrack ? `(${negate(wildcardBacktrack, "")}+|${negate(delimiter, "")}+)` : `([^]+)`; + wildcardBacktrack = ""; + hasSegmentCapture |= prevCaptureType = 2; + } + keys.push(token); + backtrack = ""; + continue; + } + throw new TypeError(`Unknown token type: ${token.type}`); + } + return result; + } + __name(toRegExpSource, "toRegExpSource"); + function negate(a, b) { + if (b.length > a.length) + return negate(b, a); + if (a === b) + b = ""; + if (b.length > 1) + return `(?:(?!${escape2(a)}|${escape2(b)})[^])`; + if (a.length > 1) + return `(?:(?!${escape2(a)})[^${escape2(b)}])`; + return `[^${escape2(a + b)}]`; + } + __name(negate, "negate"); + function stringifyTokens(tokens, index) { + let value = ""; + while (index < tokens.length) { + const token = tokens[index++]; + if (token.type === "text") { + value += escapeText(token.value); + continue; + } + if (token.type === "group") { + value += "{" + stringifyTokens(token.tokens, 0) + "}"; + continue; + } + if (token.type === "param") { + value += ":" + stringifyName(token.name, tokens[index]); + continue; + } + if (token.type === "wildcard") { + value += "*" + stringifyName(token.name, tokens[index]); + continue; + } + throw new TypeError(`Unknown token type: ${token.type}`); + } + return value; + } + __name(stringifyTokens, "stringifyTokens"); + function stringify(data) { + return stringifyTokens(data.tokens, 0); + } + __name(stringify, "stringify"); + function stringifyName(name, next) { + if (!ID.test(name)) + return JSON.stringify(name); + if ((next === null || next === void 0 ? void 0 : next.type) === "text" && ID_CONTINUE.test(next.value[0])) { + return JSON.stringify(name); + } + return name; + } + __name(stringifyName, "stringifyName"); + } +}); + +// node_modules/@nestjs/core/router/legacy-route-converter.js +var require_legacy_route_converter = __commonJS({ + "node_modules/@nestjs/core/router/legacy-route-converter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.LegacyRouteConverter = void 0; + var common_12 = require_common(); + var UNSUPPORTED_PATH_MESSAGE = /* @__PURE__ */ __name((text, route) => `Unsupported route path: "${route}". In previous versions, the symbols ?, *, and + were used to denote optional or repeating path parameters. The latest version of "path-to-regexp" now requires the use of named parameters. For example, instead of using a route like /users/* to capture all routes starting with "/users", you should use /users/*path. For more details, refer to the migration guide.`, "UNSUPPORTED_PATH_MESSAGE"); + var LegacyRouteConverter = class { + static { + __name(this, "LegacyRouteConverter"); + } + /** + * Convert legacy routes to the new format (syntax). + * path-to-regexp used by Express>=v5 and @fastify/middie>=v9 no longer support unnamed wildcards. + * This method attempts to convert the old syntax to the new one, and logs an error if it fails. + * @param route The route to convert. + * @param options Options object. + * @returns The converted route, or the original route if it cannot be converted. + */ + static tryConvert(route, options) { + const routeWithLeadingSlash = route.startsWith("/") ? route : `/${route}`; + const normalizedRoute = route.endsWith("/") ? routeWithLeadingSlash : `${routeWithLeadingSlash}/`; + const loggingEnabled = options?.logs ?? true; + const printWarning = loggingEnabled ? this.printWarning.bind(this) : () => { + }; + if (normalizedRoute.endsWith("/(.*)/")) { + const convertedRoute = route.replace("(.*)", "{*path}"); + if (normalizedRoute !== "/(.*)/") { + printWarning(route, convertedRoute); + } + return convertedRoute; + } + if (normalizedRoute.endsWith("/*/")) { + const convertedRoute = route.replace("*", "{*path}"); + if (normalizedRoute !== "/*/") { + printWarning(route, convertedRoute); + } + return convertedRoute; + } + if (normalizedRoute.endsWith("/+/")) { + const convertedRoute = route.replace("/+", "/*path"); + printWarning(route, convertedRoute); + return convertedRoute; + } + if (normalizedRoute.includes("/*/")) { + const convertedRoute = route.replaceAll("/*/", (match, offset) => { + return `/*path${offset}/`; + }); + printWarning(route, convertedRoute); + return convertedRoute; + } + return route; + } + static printError(route) { + this.logger.error(UNSUPPORTED_PATH_MESSAGE`${route}`); + } + static printWarning(route, convertedRoute) { + const autoConvertMessage = convertedRoute ? ` Attempting to auto-convert to "${convertedRoute}"...` : " Attempting to auto-convert..."; + this.logger.warn(UNSUPPORTED_PATH_MESSAGE`${route}` + autoConvertMessage); + } + }; + exports2.LegacyRouteConverter = LegacyRouteConverter; + LegacyRouteConverter.logger = new common_12.Logger(LegacyRouteConverter.name); + } +}); + +// node_modules/@nestjs/core/router/utils/exclude-route.util.js +var require_exclude_route_util = __commonJS({ + "node_modules/@nestjs/core/router/utils/exclude-route.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isRequestMethodAll = void 0; + exports2.isRouteExcluded = isRouteExcluded; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var isRequestMethodAll = /* @__PURE__ */ __name((method) => { + return common_12.RequestMethod.ALL === method || method === -1; + }, "isRequestMethodAll"); + exports2.isRequestMethodAll = isRequestMethodAll; + function isRouteExcluded(excludedRoutes, path, requestMethod) { + return excludedRoutes.some((route) => { + if ((0, exports2.isRequestMethodAll)(route.requestMethod) || route.requestMethod === requestMethod) { + return route.pathRegex.exec((0, shared_utils_1.addLeadingSlash)(path)); + } + return false; + }); + } + __name(isRouteExcluded, "isRouteExcluded"); + } +}); + +// node_modules/@nestjs/core/router/utils/flatten-route-paths.util.js +var require_flatten_route_paths_util = __commonJS({ + "node_modules/@nestjs/core/router/utils/flatten-route-paths.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.flattenRoutePaths = flattenRoutePaths; + var shared_utils_1 = require_shared_utils(); + function flattenRoutePaths(routes) { + const result = []; + routes.forEach((item) => { + if (item.module && item.path) { + result.push({ module: item.module, path: item.path }); + } + if (item.children) { + const childrenRef = item.children; + childrenRef.forEach((child) => { + if (!(0, shared_utils_1.isString)(child) && (0, shared_utils_1.isString)(child.path)) { + child.path = (0, shared_utils_1.normalizePath)((0, shared_utils_1.normalizePath)(item.path) + (0, shared_utils_1.normalizePath)(child.path)); + } else { + result.push({ path: item.path, module: child }); + } + }); + result.push(...flattenRoutePaths(childrenRef)); + } + }); + return result; + } + __name(flattenRoutePaths, "flattenRoutePaths"); + } +}); + +// node_modules/@nestjs/core/router/utils/index.js +var require_utils7 = __commonJS({ + "node_modules/@nestjs/core/router/utils/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_exclude_route_util(), exports2); + tslib_1.__exportStar(require_flatten_route_paths_util(), exports2); + } +}); + +// node_modules/@nestjs/core/middleware/utils.js +var require_utils8 = __commonJS({ + "node_modules/@nestjs/core/middleware/utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mapToClass = exports2.filterMiddleware = exports2.mapToExcludeRoute = void 0; + exports2.isMiddlewareClass = isMiddlewareClass; + exports2.assignToken = assignToken; + exports2.isMiddlewareRouteExcluded = isMiddlewareRouteExcluded; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var path_to_regexp_1 = require_dist2(); + var uid_1 = require_dist(); + var legacy_route_converter_1 = require_legacy_route_converter(); + var utils_1 = require_utils7(); + var mapToExcludeRoute = /* @__PURE__ */ __name((routes) => { + return routes.map((route) => { + const originalPath = (0, shared_utils_1.isString)(route) ? route : route.path; + const path = legacy_route_converter_1.LegacyRouteConverter.tryConvert(originalPath); + try { + if ((0, shared_utils_1.isString)(route)) { + return { + path, + requestMethod: common_12.RequestMethod.ALL, + pathRegex: (0, path_to_regexp_1.pathToRegexp)((0, shared_utils_1.addLeadingSlash)(path)).regexp + }; + } + return { + path, + requestMethod: route.method, + pathRegex: (0, path_to_regexp_1.pathToRegexp)((0, shared_utils_1.addLeadingSlash)(path)).regexp + }; + } catch (e) { + if (e instanceof TypeError) { + legacy_route_converter_1.LegacyRouteConverter.printError(originalPath); + } + throw e; + } + }); + }, "mapToExcludeRoute"); + exports2.mapToExcludeRoute = mapToExcludeRoute; + var filterMiddleware = /* @__PURE__ */ __name((middleware, routes, httpAdapter) => { + const excludedRoutes = (0, exports2.mapToExcludeRoute)(routes); + return (0, iterare_1.iterate)([]).concat(middleware).filter(shared_utils_1.isFunction).map((item) => (0, exports2.mapToClass)(item, excludedRoutes, httpAdapter)).toArray(); + }, "filterMiddleware"); + exports2.filterMiddleware = filterMiddleware; + var mapToClass = /* @__PURE__ */ __name((middleware, excludedRoutes, httpAdapter) => { + if (isMiddlewareClass(middleware)) { + if (excludedRoutes.length <= 0) { + return middleware; + } + const MiddlewareHost = class extends middleware { + static { + __name(this, "MiddlewareHost"); + } + use(...params) { + const [req, _, next] = params; + const isExcluded = isMiddlewareRouteExcluded(req, excludedRoutes, httpAdapter); + if (isExcluded) { + return next(); + } + return super.use(...params); + } + }; + return assignToken(MiddlewareHost, middleware.name); + } + return assignToken(class { + constructor() { + this.use = (...params) => { + const [req, _, next] = params; + const isExcluded = isMiddlewareRouteExcluded(req, excludedRoutes, httpAdapter); + if (isExcluded) { + return next(); + } + return middleware(...params); + }; + } + }); + }, "mapToClass"); + exports2.mapToClass = mapToClass; + function isMiddlewareClass(middleware) { + const middlewareStr = middleware.toString(); + if (middlewareStr.substring(0, 5) === "class") { + return true; + } + const middlewareArr = middlewareStr.split(" "); + return middlewareArr[0] === "function" && /[A-Z]/.test(middlewareArr[1]?.[0]) && (0, shared_utils_1.isFunction)(middleware.prototype?.use); + } + __name(isMiddlewareClass, "isMiddlewareClass"); + function assignToken(metatype, token = (0, uid_1.uid)(21)) { + Object.defineProperty(metatype, "name", { value: token }); + return metatype; + } + __name(assignToken, "assignToken"); + function isMiddlewareRouteExcluded(req, excludedRoutes, httpAdapter) { + if (excludedRoutes.length <= 0) { + return false; + } + const reqMethod = httpAdapter.getRequestMethod(req); + const originalUrl = httpAdapter.getRequestUrl(req); + const queryParamsIndex = originalUrl ? originalUrl.indexOf("?") : -1; + const pathname = queryParamsIndex >= 0 ? originalUrl.slice(0, queryParamsIndex) : originalUrl; + return (0, utils_1.isRouteExcluded)(excludedRoutes, pathname, common_12.RequestMethod[reqMethod]); + } + __name(isMiddlewareRouteExcluded, "isMiddlewareRouteExcluded"); + } +}); + +// node_modules/@nestjs/core/middleware/builder.js +var require_builder = __commonJS({ + "node_modules/@nestjs/core/middleware/builder.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MiddlewareBuilder = void 0; + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var utils_1 = require_utils8(); + var MiddlewareBuilder = class _MiddlewareBuilder { + static { + __name(this, "MiddlewareBuilder"); + } + constructor(routesMapper, httpAdapter, routeInfoPathExtractor) { + this.routesMapper = routesMapper; + this.httpAdapter = httpAdapter; + this.routeInfoPathExtractor = routeInfoPathExtractor; + this.middlewareCollection = /* @__PURE__ */ new Set(); + } + apply(...middleware) { + return new _MiddlewareBuilder.ConfigProxy(this, middleware.flat(), this.routeInfoPathExtractor); + } + build() { + return [...this.middlewareCollection]; + } + getHttpAdapter() { + return this.httpAdapter; + } + }; + exports2.MiddlewareBuilder = MiddlewareBuilder; + MiddlewareBuilder.ConfigProxy = class { + constructor(builder, middleware, routeInfoPathExtractor) { + this.builder = builder; + this.middleware = middleware; + this.routeInfoPathExtractor = routeInfoPathExtractor; + this.excludedRoutes = []; + } + getExcludedRoutes() { + return this.excludedRoutes; + } + exclude(...routes) { + this.excludedRoutes = [ + ...this.excludedRoutes, + ...this.getRoutesFlatList(routes).reduce((excludedRoutes, route) => { + for (const routePath of this.routeInfoPathExtractor.extractPathFrom(route)) { + excludedRoutes.push({ + ...route, + path: routePath + }); + } + return excludedRoutes; + }, []) + ]; + return this; + } + forRoutes(...routes) { + const { middlewareCollection } = this.builder; + const flattedRoutes = this.getRoutesFlatList(routes); + const forRoutes = this.removeOverlappedRoutes(flattedRoutes); + const configuration = { + middleware: (0, utils_1.filterMiddleware)(this.middleware, this.excludedRoutes, this.builder.getHttpAdapter()), + forRoutes + }; + middlewareCollection.add(configuration); + return this.builder; + } + getRoutesFlatList(routes) { + const { routesMapper } = this.builder; + return (0, iterare_1.iterate)(routes).map((route) => routesMapper.mapRouteToRouteInfo(route)).flatten().toArray(); + } + removeOverlappedRoutes(routes) { + const regexMatchParams = /(:[^/]*)/g; + const wildcard = "([^/]*)"; + const routesWithRegex = routes.filter((route) => route.path.includes(":")).map((route) => ({ + method: route.method, + path: route.path, + regex: new RegExp("^(" + route.path.replace(regexMatchParams, wildcard) + ")$", "g") + })); + return routes.filter((route) => { + const isOverlapped = /* @__PURE__ */ __name((item) => { + if (route.method !== item.method) { + return false; + } + const normalizedRoutePath = (0, shared_utils_1.stripEndSlash)(route.path); + return normalizedRoutePath !== item.path && item.regex.test(normalizedRoutePath); + }, "isOverlapped"); + const routeMatch = routesWithRegex.find(isOverlapped); + return routeMatch === void 0; + }); + } + }; + } +}); + +// node_modules/@nestjs/core/middleware/index.js +var require_middleware2 = __commonJS({ + "node_modules/@nestjs/core/middleware/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_builder(), exports2); + } +}); + +// node_modules/@nestjs/core/helpers/optional-require.js +var require_optional_require = __commonJS({ + "node_modules/@nestjs/core/helpers/optional-require.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.optionalRequire = optionalRequire; + function optionalRequire(packageName, loaderFn) { + try { + return loaderFn ? loaderFn() : require(packageName); + } catch (e) { + return {}; + } + } + __name(optionalRequire, "optionalRequire"); + } +}); + +// node_modules/@nestjs/core/middleware/container.js +var require_container3 = __commonJS({ + "node_modules/@nestjs/core/middleware/container.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MiddlewareContainer = void 0; + var get_class_scope_1 = require_get_class_scope(); + var is_durable_1 = require_is_durable(); + var instance_wrapper_1 = require_instance_wrapper(); + var MiddlewareContainer = class { + static { + __name(this, "MiddlewareContainer"); + } + constructor(container) { + this.container = container; + this.middleware = /* @__PURE__ */ new Map(); + this.configurationSets = /* @__PURE__ */ new Map(); + } + getMiddlewareCollection(moduleKey) { + if (!this.middleware.has(moduleKey)) { + const moduleRef = this.container.getModuleByKey(moduleKey); + this.middleware.set(moduleKey, moduleRef.middlewares); + } + return this.middleware.get(moduleKey); + } + getConfigurations() { + return this.configurationSets; + } + insertConfig(configList, moduleKey) { + const middleware = this.getMiddlewareCollection(moduleKey); + const targetConfig = this.getTargetConfig(moduleKey); + const configurations = configList || []; + const insertMiddleware = /* @__PURE__ */ __name((metatype) => { + const token = metatype; + middleware.set(token, new instance_wrapper_1.InstanceWrapper({ + scope: (0, get_class_scope_1.getClassScope)(metatype), + durable: (0, is_durable_1.isDurable)(metatype), + name: token?.name ?? token, + metatype, + token + })); + }, "insertMiddleware"); + configurations.forEach((config) => { + [].concat(config.middleware).map(insertMiddleware); + targetConfig.add(config); + }); + } + getTargetConfig(moduleName) { + if (!this.configurationSets.has(moduleName)) { + this.configurationSets.set(moduleName, /* @__PURE__ */ new Set()); + } + return this.configurationSets.get(moduleName); + } + }; + exports2.MiddlewareContainer = MiddlewareContainer; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/invalid-middleware.exception.js +var require_invalid_middleware_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/invalid-middleware.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InvalidMiddlewareException = void 0; + var messages_1 = require_messages(); + var runtime_exception_1 = require_runtime_exception(); + var InvalidMiddlewareException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "InvalidMiddlewareException"); + } + constructor(name) { + super((0, messages_1.INVALID_MIDDLEWARE_MESSAGE)`${name}`); + } + }; + exports2.InvalidMiddlewareException = InvalidMiddlewareException; + } +}); + +// node_modules/@nestjs/core/exceptions/exceptions-handler.js +var require_exceptions_handler = __commonJS({ + "node_modules/@nestjs/core/exceptions/exceptions-handler.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExceptionsHandler = void 0; + var select_exception_filter_metadata_util_1 = require_select_exception_filter_metadata_util(); + var shared_utils_1 = require_shared_utils(); + var invalid_exception_filter_exception_1 = require_invalid_exception_filter_exception(); + var base_exception_filter_1 = require_base_exception_filter(); + var ExceptionsHandler = class extends base_exception_filter_1.BaseExceptionFilter { + static { + __name(this, "ExceptionsHandler"); + } + constructor() { + super(...arguments); + this.filters = []; + } + next(exception, ctx) { + if (this.invokeCustomFilters(exception, ctx)) { + return; + } + super.catch(exception, ctx); + } + setCustomFilters(filters) { + if (!Array.isArray(filters)) { + throw new invalid_exception_filter_exception_1.InvalidExceptionFilterException(); + } + this.filters = filters; + } + invokeCustomFilters(exception, ctx) { + if ((0, shared_utils_1.isEmpty)(this.filters)) { + return false; + } + const filter = (0, select_exception_filter_metadata_util_1.selectExceptionFilterMetadata)(this.filters, exception); + filter && filter.func(exception, ctx); + return !!filter; + } + }; + exports2.ExceptionsHandler = ExceptionsHandler; + } +}); + +// node_modules/@nestjs/core/router/router-exception-filters.js +var require_router_exception_filters = __commonJS({ + "node_modules/@nestjs/core/router/router-exception-filters.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouterExceptionFilters = void 0; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var base_exception_filter_context_1 = require_base_exception_filter_context(); + var exceptions_handler_1 = require_exceptions_handler(); + var constants_2 = require_constants5(); + var RouterExceptionFilters = class extends base_exception_filter_context_1.BaseExceptionFilterContext { + static { + __name(this, "RouterExceptionFilters"); + } + constructor(container, config, applicationRef) { + super(container); + this.config = config; + this.applicationRef = applicationRef; + } + create(instance, callback, moduleKey, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + this.moduleContext = moduleKey; + const exceptionHandler = new exceptions_handler_1.ExceptionsHandler(this.applicationRef); + const filters = this.createContext(instance, callback, constants_1.EXCEPTION_FILTERS_METADATA, contextId, inquirerId); + if ((0, shared_utils_1.isEmpty)(filters)) { + return exceptionHandler; + } + exceptionHandler.setCustomFilters(filters.reverse()); + return exceptionHandler; + } + getGlobalMetadata(contextId = constants_2.STATIC_CONTEXT, inquirerId) { + const globalFilters = this.config.getGlobalFilters(); + if (contextId === constants_2.STATIC_CONTEXT && !inquirerId) { + return globalFilters; + } + const scopedFilterWrappers = this.config.getGlobalRequestFilters(); + const scopedFilters = (0, iterare_1.iterate)(scopedFilterWrappers).map((wrapper) => wrapper.getInstanceByContextId(contextId, inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray(); + return globalFilters.concat(scopedFilters); + } + }; + exports2.RouterExceptionFilters = RouterExceptionFilters; + } +}); + +// node_modules/@nestjs/core/router/router-proxy.js +var require_router_proxy = __commonJS({ + "node_modules/@nestjs/core/router/router-proxy.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouterProxy = void 0; + var execution_context_host_1 = require_execution_context_host(); + var RouterProxy = class { + static { + __name(this, "RouterProxy"); + } + createProxy(targetCallback, exceptionsHandler) { + return async (req, res, next) => { + try { + await targetCallback(req, res, next); + } catch (e) { + const host = new execution_context_host_1.ExecutionContextHost([req, res, next]); + exceptionsHandler.next(e, host); + return res; + } + }; + } + createExceptionLayerProxy(targetCallback, exceptionsHandler) { + return async (err, req, res, next) => { + try { + await targetCallback(err, req, res, next); + } catch (e) { + const host = new execution_context_host_1.ExecutionContextHost([req, res, next]); + exceptionsHandler.next(e, host); + return res; + } + }; + } + }; + exports2.RouterProxy = RouterProxy; + } +}); + +// node_modules/@nestjs/core/middleware/resolver.js +var require_resolver = __commonJS({ + "node_modules/@nestjs/core/middleware/resolver.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MiddlewareResolver = void 0; + var MiddlewareResolver = class { + static { + __name(this, "MiddlewareResolver"); + } + constructor(middlewareContainer, injector) { + this.middlewareContainer = middlewareContainer; + this.injector = injector; + } + async resolveInstances(moduleRef, moduleName) { + const middlewareMap = this.middlewareContainer.getMiddlewareCollection(moduleName); + const resolveInstance = /* @__PURE__ */ __name(async (wrapper) => this.resolveMiddlewareInstance(wrapper, middlewareMap, moduleRef), "resolveInstance"); + await Promise.all([...middlewareMap.values()].map(resolveInstance)); + } + async resolveMiddlewareInstance(wrapper, middlewareMap, moduleRef) { + await this.injector.loadMiddleware(wrapper, middlewareMap, moduleRef); + } + }; + exports2.MiddlewareResolver = MiddlewareResolver; + } +}); + +// node_modules/@nestjs/core/router/route-path-factory.js +var require_route_path_factory = __commonJS({ + "node_modules/@nestjs/core/router/route-path-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RoutePathFactory = void 0; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var utils_1 = require_utils7(); + var RoutePathFactory = class { + static { + __name(this, "RoutePathFactory"); + } + constructor(applicationConfig) { + this.applicationConfig = applicationConfig; + } + create(metadata, requestMethod) { + let paths = [""]; + const versionOrVersions = this.getVersion(metadata); + if (versionOrVersions && metadata.versioningOptions?.type === common_12.VersioningType.URI) { + const versionPrefix = this.getVersionPrefix(metadata.versioningOptions); + if (Array.isArray(versionOrVersions)) { + paths = (0, common_12.flatten)(paths.map((path) => versionOrVersions.map((version) => ( + // Version Neutral - Do not include version in URL + version === common_12.VERSION_NEUTRAL ? path : `${path}/${versionPrefix}${version}` + )))); + } else { + if (versionOrVersions !== common_12.VERSION_NEUTRAL) { + paths = paths.map((path) => `${path}/${versionPrefix}${versionOrVersions}`); + } + } + } + paths = this.appendToAllIfDefined(paths, metadata.modulePath); + paths = this.appendToAllIfDefined(paths, metadata.ctrlPath); + paths = this.appendToAllIfDefined(paths, metadata.methodPath); + if (metadata.globalPrefix) { + paths = paths.map((path) => { + if (this.isExcludedFromGlobalPrefix(path, requestMethod, versionOrVersions, metadata.versioningOptions)) { + return path; + } + return (0, shared_utils_1.stripEndSlash)(metadata.globalPrefix || "") + path; + }); + } + return paths.map((path) => (0, shared_utils_1.addLeadingSlash)(path || "/")).map((path) => path !== "/" ? (0, shared_utils_1.stripEndSlash)(path) : path); + } + getVersion(metadata) { + return metadata.methodVersion || metadata.controllerVersion; + } + getVersionPrefix(versioningOptions) { + const defaultPrefix = "v"; + if (versioningOptions.type === common_12.VersioningType.URI) { + if (versioningOptions.prefix === false) { + return ""; + } else if (versioningOptions.prefix !== void 0) { + return versioningOptions.prefix; + } + } + return defaultPrefix; + } + appendToAllIfDefined(paths, fragmentToAppend) { + if (!fragmentToAppend) { + return paths; + } + const concatPaths = /* @__PURE__ */ __name((a, b) => (0, shared_utils_1.stripEndSlash)(a) + (0, shared_utils_1.addLeadingSlash)(b), "concatPaths"); + if (Array.isArray(fragmentToAppend)) { + const paths2dArray = paths.map((path) => fragmentToAppend.map((fragment) => concatPaths(path, fragment))); + return (0, common_12.flatten)(paths2dArray); + } + return paths.map((path) => concatPaths(path, fragmentToAppend)); + } + isExcludedFromGlobalPrefix(path, requestMethod, versionOrVersions, versioningOptions) { + if ((0, shared_utils_1.isUndefined)(requestMethod)) { + return false; + } + const options = this.applicationConfig.getGlobalPrefixOptions(); + const excludedRoutes = options.exclude; + if (versionOrVersions && versionOrVersions !== common_12.VERSION_NEUTRAL && versioningOptions?.type === common_12.VersioningType.URI) { + path = this.truncateVersionPrefixFromPath(path, versionOrVersions, versioningOptions); + } + return Array.isArray(excludedRoutes) && (0, utils_1.isRouteExcluded)(excludedRoutes, path, requestMethod); + } + truncateVersionPrefixFromPath(path, versionValue, versioningOptions) { + if (typeof versionValue !== "string") { + versionValue.forEach((version) => { + if (typeof version === "string") { + path = this.truncateVersionPrefixFromPath(path, version, versioningOptions); + } + }); + return path; + } + const prefix = `/${this.getVersionPrefix(versioningOptions)}${versionValue}`; + return path.startsWith(prefix) ? path.replace(prefix, "") : path; + } + }; + exports2.RoutePathFactory = RoutePathFactory; + } +}); + +// node_modules/@nestjs/core/middleware/route-info-path-extractor.js +var require_route_info_path_extractor = __commonJS({ + "node_modules/@nestjs/core/middleware/route-info-path-extractor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouteInfoPathExtractor = void 0; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var utils_1 = require_utils7(); + var route_path_factory_1 = require_route_path_factory(); + var RouteInfoPathExtractor = class { + static { + __name(this, "RouteInfoPathExtractor"); + } + constructor(applicationConfig) { + this.applicationConfig = applicationConfig; + this.routePathFactory = new route_path_factory_1.RoutePathFactory(applicationConfig); + this.prefixPath = (0, shared_utils_1.stripEndSlash)((0, shared_utils_1.addLeadingSlash)(this.applicationConfig.getGlobalPrefix())); + this.excludedGlobalPrefixRoutes = this.applicationConfig.getGlobalPrefixOptions().exclude; + this.versioningConfig = this.applicationConfig.getVersioning(); + } + extractPathsFrom({ path, method, version }) { + const versionPaths = this.extractVersionPathFrom(version); + if (this.isAWildcard(path)) { + const entries = versionPaths.length > 0 ? versionPaths.map((versionPath) => [ + this.prefixPath + versionPath + "$", + this.prefixPath + versionPath + (0, shared_utils_1.addLeadingSlash)(path) + ]).flat() : this.prefixPath ? [this.prefixPath + "$", this.prefixPath + (0, shared_utils_1.addLeadingSlash)(path)] : [(0, shared_utils_1.addLeadingSlash)(path)]; + return Array.isArray(this.excludedGlobalPrefixRoutes) ? [ + ...entries, + ...this.excludedGlobalPrefixRoutes.map((route) => Array.isArray(versionPaths) && versionPaths.length > 0 ? versionPaths.map((v) => v + (0, shared_utils_1.addLeadingSlash)(route.path)) : (0, shared_utils_1.addLeadingSlash)(route.path)).flat() + ] : entries; + } + return this.extractNonWildcardPathsFrom({ path, method, version }); + } + extractPathFrom(route) { + if (this.isAWildcard(route.path) && !route.version) { + return [(0, shared_utils_1.addLeadingSlash)(route.path)]; + } + return this.extractNonWildcardPathsFrom(route); + } + isAWildcard(path) { + const isSimpleWildcard = ["*", "/*", "/*/", "(.*)", "/(.*)"]; + if (isSimpleWildcard.includes(path)) { + return true; + } + const wildcardRegexp = /^\/\{.*\}.*|^\/\*.*$/; + return wildcardRegexp.test(path); + } + extractNonWildcardPathsFrom({ path, method, version }) { + const versionPaths = this.extractVersionPathFrom(version); + if (Array.isArray(this.excludedGlobalPrefixRoutes) && (0, utils_1.isRouteExcluded)(this.excludedGlobalPrefixRoutes, path, method)) { + if (!versionPaths.length) { + return [(0, shared_utils_1.addLeadingSlash)(path)]; + } + return versionPaths.map((versionPath) => versionPath + (0, shared_utils_1.addLeadingSlash)(path)); + } + if (!versionPaths.length) { + return [this.prefixPath + (0, shared_utils_1.addLeadingSlash)(path)]; + } + return versionPaths.map((versionPath) => this.prefixPath + versionPath + (0, shared_utils_1.addLeadingSlash)(path)); + } + extractVersionPathFrom(versionValue) { + if (!versionValue || this.versioningConfig?.type !== common_12.VersioningType.URI) + return []; + const versionPrefix = this.routePathFactory.getVersionPrefix(this.versioningConfig); + if (Array.isArray(versionValue)) { + return versionValue.map((version) => (0, shared_utils_1.addLeadingSlash)(versionPrefix + version.toString())); + } + return [(0, shared_utils_1.addLeadingSlash)(versionPrefix + versionValue.toString())]; + } + }; + exports2.RouteInfoPathExtractor = RouteInfoPathExtractor; + } +}); + +// node_modules/@nestjs/core/router/paths-explorer.js +var require_paths_explorer = __commonJS({ + "node_modules/@nestjs/core/router/paths-explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PathsExplorer = void 0; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var PathsExplorer = class { + static { + __name(this, "PathsExplorer"); + } + constructor(metadataScanner) { + this.metadataScanner = metadataScanner; + } + scanForPaths(instance, prototype) { + const instancePrototype = (0, shared_utils_1.isUndefined)(prototype) ? Object.getPrototypeOf(instance) : prototype; + return this.metadataScanner.getAllMethodNames(instancePrototype).reduce((acc, method) => { + const route = this.exploreMethodMetadata(instance, instancePrototype, method); + if (route) { + acc.push(route); + } + return acc; + }, []); + } + exploreMethodMetadata(instance, prototype, methodName) { + const instanceCallback = instance[methodName]; + const prototypeCallback = prototype[methodName]; + const routePath = Reflect.getMetadata(constants_1.PATH_METADATA, prototypeCallback); + if ((0, shared_utils_1.isUndefined)(routePath)) { + return null; + } + const requestMethod = Reflect.getMetadata(constants_1.METHOD_METADATA, prototypeCallback); + const version = Reflect.getMetadata(constants_1.VERSION_METADATA, prototypeCallback); + const path = (0, shared_utils_1.isString)(routePath) ? [(0, shared_utils_1.addLeadingSlash)(routePath)] : routePath.map((p) => (0, shared_utils_1.addLeadingSlash)(p)); + return { + path, + requestMethod, + targetCallback: instanceCallback, + methodName, + version + }; + } + }; + exports2.PathsExplorer = PathsExplorer; + } +}); + +// node_modules/@nestjs/core/router/router-module.js +var require_router_module = __commonJS({ + "node_modules/@nestjs/core/router/router-module.js"(exports2) { + "use strict"; + var RouterModule_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouterModule = exports2.targetModulesByContainer = exports2.ROUTES = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var modules_container_1 = require_modules_container(); + var utils_1 = require_utils7(); + exports2.ROUTES = /* @__PURE__ */ Symbol("ROUTES"); + exports2.targetModulesByContainer = /* @__PURE__ */ new WeakMap(); + var RouterModule = RouterModule_1 = class RouterModule { + static { + __name(this, "RouterModule"); + } + constructor(modulesContainer, routes) { + this.modulesContainer = modulesContainer; + this.routes = routes; + this.routes = this.deepCloneRoutes(routes); + this.initialize(); + } + static register(routes) { + return { + module: RouterModule_1, + providers: [ + { + provide: exports2.ROUTES, + useValue: routes + } + ] + }; + } + deepCloneRoutes(routes) { + return routes.map((routeOrType) => { + if (typeof routeOrType === "function") { + return routeOrType; + } + if (routeOrType.children) { + return { + ...routeOrType, + children: this.deepCloneRoutes(routeOrType.children) + }; + } + return { ...routeOrType }; + }); + } + initialize() { + const flattenedRoutes = (0, utils_1.flattenRoutePaths)(this.routes); + flattenedRoutes.forEach((route) => { + const modulePath = (0, shared_utils_1.normalizePath)(route.path); + this.registerModulePathMetadata(route.module, modulePath); + this.updateTargetModulesCache(route.module); + }); + } + registerModulePathMetadata(moduleCtor, modulePath) { + Reflect.defineMetadata(constants_1.MODULE_PATH + this.modulesContainer.applicationId, modulePath, moduleCtor); + } + updateTargetModulesCache(moduleCtor) { + let moduleClassSet; + if (exports2.targetModulesByContainer.has(this.modulesContainer)) { + moduleClassSet = exports2.targetModulesByContainer.get(this.modulesContainer); + } else { + moduleClassSet = /* @__PURE__ */ new WeakSet(); + exports2.targetModulesByContainer.set(this.modulesContainer, moduleClassSet); + } + const moduleRef = Array.from(this.modulesContainer.values()).find((item) => item?.metatype === moduleCtor); + if (!moduleRef) { + return; + } + moduleClassSet.add(moduleRef); + } + }; + exports2.RouterModule = RouterModule; + exports2.RouterModule = RouterModule = RouterModule_1 = tslib_1.__decorate([ + (0, common_12.Module)({}), + tslib_1.__param(1, (0, common_12.Inject)(exports2.ROUTES)), + tslib_1.__metadata("design:paramtypes", [modules_container_1.ModulesContainer, Array]) + ], RouterModule); + } +}); + +// node_modules/@nestjs/core/middleware/routes-mapper.js +var require_routes_mapper = __commonJS({ + "node_modules/@nestjs/core/middleware/routes-mapper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RoutesMapper = void 0; + var constants_1 = require_constants2(); + var interfaces_1 = require_interfaces(); + var shared_utils_1 = require_shared_utils(); + var metadata_scanner_1 = require_metadata_scanner(); + var paths_explorer_1 = require_paths_explorer(); + var router_module_1 = require_router_module(); + var RoutesMapper = class { + static { + __name(this, "RoutesMapper"); + } + constructor(container, applicationConfig) { + this.container = container; + this.applicationConfig = applicationConfig; + this.pathsExplorer = new paths_explorer_1.PathsExplorer(new metadata_scanner_1.MetadataScanner()); + } + mapRouteToRouteInfo(controllerOrRoute) { + if ((0, shared_utils_1.isString)(controllerOrRoute)) { + return this.getRouteInfoFromPath(controllerOrRoute); + } + const routePathOrPaths = this.getRoutePath(controllerOrRoute); + if (this.isRouteInfo(routePathOrPaths, controllerOrRoute)) { + return this.getRouteInfoFromObject(controllerOrRoute); + } + return this.getRouteInfoFromController(controllerOrRoute, routePathOrPaths); + } + getRouteInfoFromPath(routePath) { + const defaultRequestMethod = -1; + return [ + { + path: (0, shared_utils_1.addLeadingSlash)(routePath), + method: defaultRequestMethod + } + ]; + } + getRouteInfoFromObject(routeInfoObject) { + const routeInfo = { + path: (0, shared_utils_1.addLeadingSlash)(routeInfoObject.path), + method: routeInfoObject.method + }; + if (routeInfoObject.version) { + routeInfo.version = routeInfoObject.version; + } + return [routeInfo]; + } + getRouteInfoFromController(controller, routePath) { + const controllerPaths = this.pathsExplorer.scanForPaths(Object.create(controller), controller.prototype); + const controllerVersion = this.getVersionMetadata(controller); + const versioningConfig = this.applicationConfig.getVersioning(); + const moduleRef = this.getHostModuleOfController(controller); + const modulePath = this.getModulePath(moduleRef?.metatype); + const concatPaths = /* @__PURE__ */ __name((acc, currentValue) => acc.concat(currentValue), "concatPaths"); + const toUndefinedIfNeural = /* @__PURE__ */ __name((version) => version === interfaces_1.VERSION_NEUTRAL ? void 0 : version, "toUndefinedIfNeural"); + const toRouteInfo = /* @__PURE__ */ __name((item, prefix) => item.path?.flatMap((p) => { + let endpointPath = modulePath ?? ""; + endpointPath += this.normalizeGlobalPath(prefix) + (0, shared_utils_1.addLeadingSlash)(p); + const routeInfo = { + path: endpointPath, + method: item.requestMethod + }; + const version = item.version ?? controllerVersion; + if (version && versioningConfig) { + if (typeof version !== "string" && Array.isArray(version)) { + return version.map((v) => ({ + ...routeInfo, + version: toUndefinedIfNeural(v) + })); + } + routeInfo.version = toUndefinedIfNeural(version); + } + return routeInfo; + }), "toRouteInfo"); + return [].concat(routePath).map((routePath2) => controllerPaths.map((item) => toRouteInfo(item, routePath2)).reduce(concatPaths, [])).reduce(concatPaths, []); + } + isRouteInfo(path, objectOrClass) { + return (0, shared_utils_1.isUndefined)(path); + } + normalizeGlobalPath(path) { + const prefix = (0, shared_utils_1.addLeadingSlash)(path); + return prefix === "/" ? "" : prefix; + } + getRoutePath(route) { + return Reflect.getMetadata(constants_1.PATH_METADATA, route); + } + getHostModuleOfController(metatype) { + if (!metatype) { + return; + } + const modulesContainer = this.container.getModules(); + const moduleRefsSet = router_module_1.targetModulesByContainer.get(modulesContainer); + if (!moduleRefsSet) { + return; + } + const modules = Array.from(modulesContainer.values()).filter((moduleRef) => moduleRefsSet.has(moduleRef)); + return modules.find(({ controllers }) => controllers.has(metatype)); + } + getModulePath(metatype) { + if (!metatype) { + return; + } + const modulesContainer = this.container.getModules(); + const modulePath = Reflect.getMetadata(constants_1.MODULE_PATH + modulesContainer.applicationId, metatype); + return modulePath ?? Reflect.getMetadata(constants_1.MODULE_PATH, metatype); + } + getVersionMetadata(metatype) { + const versioningConfig = this.applicationConfig.getVersioning(); + if (versioningConfig) { + return Reflect.getMetadata(constants_1.VERSION_METADATA, metatype) ?? versioningConfig.defaultVersion; + } + } + }; + exports2.RoutesMapper = RoutesMapper; + } +}); + +// node_modules/@nestjs/core/middleware/middleware-module.js +var require_middleware_module = __commonJS({ + "node_modules/@nestjs/core/middleware/middleware-module.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MiddlewareModule = void 0; + var common_12 = require_common(); + var request_method_enum_1 = require_request_method_enum(); + var shared_utils_1 = require_shared_utils(); + var invalid_middleware_exception_1 = require_invalid_middleware_exception(); + var runtime_exception_1 = require_runtime_exception(); + var context_id_factory_1 = require_context_id_factory(); + var execution_context_host_1 = require_execution_context_host(); + var constants_1 = require_constants5(); + var request_constants_1 = require_request_constants(); + var router_exception_filters_1 = require_router_exception_filters(); + var router_proxy_1 = require_router_proxy(); + var utils_1 = require_utils7(); + var builder_1 = require_builder(); + var resolver_1 = require_resolver(); + var route_info_path_extractor_1 = require_route_info_path_extractor(); + var routes_mapper_1 = require_routes_mapper(); + var MiddlewareModule = class _MiddlewareModule { + static { + __name(this, "MiddlewareModule"); + } + constructor() { + this.routerProxy = new router_proxy_1.RouterProxy(); + this.exceptionFiltersCache = /* @__PURE__ */ new WeakMap(); + this.logger = new common_12.Logger(_MiddlewareModule.name); + } + async register(middlewareContainer, container, config, injector, httpAdapter, graphInspector, options) { + this.appOptions = options; + const appRef = container.getHttpAdapterRef(); + this.routerExceptionFilter = new router_exception_filters_1.RouterExceptionFilters(container, config, appRef); + this.routesMapper = new routes_mapper_1.RoutesMapper(container, config); + this.resolver = new resolver_1.MiddlewareResolver(middlewareContainer, injector); + this.routeInfoPathExtractor = new route_info_path_extractor_1.RouteInfoPathExtractor(config); + this.injector = injector; + this.container = container; + this.httpAdapter = httpAdapter; + this.graphInspector = graphInspector; + const modules = container.getModules(); + await this.resolveMiddleware(middlewareContainer, modules); + } + async resolveMiddleware(middlewareContainer, modules) { + const moduleEntries = [...modules.entries()]; + const loadMiddlewareConfiguration = /* @__PURE__ */ __name(async ([moduleName, moduleRef]) => { + await this.loadConfiguration(middlewareContainer, moduleRef, moduleName); + await this.resolver.resolveInstances(moduleRef, moduleName); + }, "loadMiddlewareConfiguration"); + await Promise.all(moduleEntries.map(loadMiddlewareConfiguration)); + } + async loadConfiguration(middlewareContainer, moduleRef, moduleKey) { + const { instance } = moduleRef; + if (!instance.configure) { + return; + } + const middlewareBuilder = new builder_1.MiddlewareBuilder(this.routesMapper, this.httpAdapter, this.routeInfoPathExtractor); + try { + await instance.configure(middlewareBuilder); + } catch (err) { + if (!this.appOptions.preview) { + throw err; + } + const warningMessage = `Warning! "${moduleRef.name}" module exposes a "configure" method that throws an exception in the preview mode (possibly due to missing dependencies). Note: you can ignore this message, just be aware that some of those conditional middlewares will not be reflected in your graph.`; + this.logger.warn(warningMessage); + } + if (!(middlewareBuilder instanceof builder_1.MiddlewareBuilder)) { + return; + } + const config = middlewareBuilder.build(); + middlewareContainer.insertConfig(config, moduleKey); + } + async registerMiddleware(middlewareContainer, applicationRef) { + const configs = middlewareContainer.getConfigurations(); + const registerAllConfigs = /* @__PURE__ */ __name(async (moduleKey, middlewareConfig) => { + for (const config of middlewareConfig) { + await this.registerMiddlewareConfig(middlewareContainer, config, moduleKey, applicationRef); + } + }, "registerAllConfigs"); + const entriesSortedByDistance = [...configs.entries()].sort(([moduleA], [moduleB]) => { + const moduleARef = this.container.getModuleByKey(moduleA); + const moduleBRef = this.container.getModuleByKey(moduleB); + const isModuleAGlobal = moduleARef.distance === Number.MAX_VALUE; + const isModuleBGlobal = moduleBRef.distance === Number.MAX_VALUE; + if (isModuleAGlobal && isModuleBGlobal) { + return 0; + } + if (isModuleAGlobal) { + return -1; + } + if (isModuleBGlobal) { + return 1; + } + return moduleARef.distance - moduleBRef.distance; + }); + for (const [moduleRef, moduleConfigurations] of entriesSortedByDistance) { + await registerAllConfigs(moduleRef, [...moduleConfigurations]); + } + } + async registerMiddlewareConfig(middlewareContainer, config, moduleKey, applicationRef) { + const { forRoutes } = config; + for (const routeInfo of forRoutes) { + await this.registerRouteMiddleware(middlewareContainer, routeInfo, config, moduleKey, applicationRef); + } + } + async registerRouteMiddleware(middlewareContainer, routeInfo, config, moduleKey, applicationRef) { + const middlewareCollection = [].concat(config.middleware); + const moduleRef = this.container.getModuleByKey(moduleKey); + for (const metatype of middlewareCollection) { + const collection = middlewareContainer.getMiddlewareCollection(moduleKey); + const instanceWrapper = collection.get(metatype); + if ((0, shared_utils_1.isUndefined)(instanceWrapper)) { + throw new runtime_exception_1.RuntimeException(); + } + if (instanceWrapper.isTransient) { + return; + } + this.graphInspector.insertClassNode(moduleRef, instanceWrapper, "middleware"); + const middlewareDefinition = { + type: "middleware", + methodName: "use", + className: instanceWrapper.name, + classNodeId: instanceWrapper.id, + metadata: { + key: routeInfo.path, + path: routeInfo.path, + requestMethod: request_method_enum_1.RequestMethod[routeInfo.method] ?? "ALL", + version: routeInfo.version + } + }; + this.graphInspector.insertEntrypointDefinition(middlewareDefinition, instanceWrapper.id); + await this.bindHandler(instanceWrapper, applicationRef, routeInfo, moduleRef, collection); + } + } + async bindHandler(wrapper, applicationRef, routeInfo, moduleRef, collection) { + const { instance, metatype } = wrapper; + if ((0, shared_utils_1.isUndefined)(instance?.use)) { + throw new invalid_middleware_exception_1.InvalidMiddlewareException(metatype.name); + } + const isStatic = wrapper.isDependencyTreeStatic(); + if (isStatic) { + const proxy = await this.createProxy(instance); + return this.registerHandler(applicationRef, routeInfo, proxy); + } + const isTreeDurable = wrapper.isDependencyTreeDurable(); + await this.registerHandler(applicationRef, routeInfo, async (req, res, next) => { + try { + const contextId = this.getContextId(req, isTreeDurable); + const contextInstance = await this.injector.loadPerContext(instance, moduleRef, collection, contextId); + const proxy = await this.createProxy(contextInstance, contextId); + return proxy(req, res, next); + } catch (err) { + let exceptionsHandler = this.exceptionFiltersCache.get(instance.use); + if (!exceptionsHandler) { + exceptionsHandler = this.routerExceptionFilter.create(instance, instance.use, void 0); + this.exceptionFiltersCache.set(instance.use, exceptionsHandler); + } + const host = new execution_context_host_1.ExecutionContextHost([req, res, next]); + exceptionsHandler.next(err, host); + } + }); + } + async createProxy(instance, contextId = constants_1.STATIC_CONTEXT) { + const exceptionsHandler = this.routerExceptionFilter.create(instance, instance.use, void 0, contextId); + const middleware = instance.use.bind(instance); + return this.routerProxy.createProxy(middleware, exceptionsHandler); + } + async registerHandler(applicationRef, routeInfo, proxy) { + const { method } = routeInfo; + const paths = this.routeInfoPathExtractor.extractPathsFrom(routeInfo); + const isMethodAll = (0, utils_1.isRequestMethodAll)(method); + const requestMethod = request_method_enum_1.RequestMethod[method]; + const router = await applicationRef.createMiddlewareFactory(method); + const middlewareFunction = isMethodAll ? proxy : (req, res, next) => { + const actualRequestMethod = applicationRef.getRequestMethod?.(req); + if (actualRequestMethod === requestMethod || actualRequestMethod === request_method_enum_1.RequestMethod[request_method_enum_1.RequestMethod.HEAD] && requestMethod === request_method_enum_1.RequestMethod[request_method_enum_1.RequestMethod.GET]) { + return proxy(req, res, next); + } + return next(); + }; + const pathsToApplyMiddleware = []; + paths.some((path) => path.match(/^\/?$/)) ? pathsToApplyMiddleware.push("/") : pathsToApplyMiddleware.push(...paths); + pathsToApplyMiddleware.forEach((path) => router(path, middlewareFunction)); + } + getContextId(request, isTreeDurable) { + const contextId = context_id_factory_1.ContextIdFactory.getByRequest(request); + if (!request[request_constants_1.REQUEST_CONTEXT_ID]) { + Object.defineProperty(request, request_constants_1.REQUEST_CONTEXT_ID, { + value: contextId, + enumerable: false, + writable: false, + configurable: false + }); + const requestProviderValue = isTreeDurable ? contextId.payload : Object.assign(request, contextId.payload); + this.container.registerRequestProvider(requestProviderValue, contextId); + } + return contextId; + } + }; + exports2.MiddlewareModule = MiddlewareModule; + } +}); + +// node_modules/@nestjs/core/injector/helpers/transient-instances.js +var require_transient_instances = __commonJS({ + "node_modules/@nestjs/core/injector/helpers/transient-instances.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getTransientInstances = getTransientInstances; + exports2.getNonTransientInstances = getNonTransientInstances; + var iterare_1 = require_lib(); + function getTransientInstances(instances) { + return (0, iterare_1.iterate)(instances).filter(([_, wrapper]) => wrapper.isDependencyTreeStatic()).map(([_, wrapper]) => wrapper.getStaticTransientInstances()).flatten().filter((item) => !!item).map(({ instance }) => instance).toArray(); + } + __name(getTransientInstances, "getTransientInstances"); + function getNonTransientInstances(instances) { + return (0, iterare_1.iterate)(instances).filter(([key, wrapper]) => wrapper.isDependencyTreeStatic() && !wrapper.isTransient).map(([key, { instance }]) => instance).toArray(); + } + __name(getNonTransientInstances, "getNonTransientInstances"); + } +}); + +// node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js +var require_on_app_bootstrap_hook = __commonJS({ + "node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.callModuleBootstrapHook = callModuleBootstrapHook; + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var transient_instances_1 = require_transient_instances(); + function hasOnAppBootstrapHook(instance) { + return (0, shared_utils_1.isFunction)(instance.onApplicationBootstrap); + } + __name(hasOnAppBootstrapHook, "hasOnAppBootstrapHook"); + function callOperator(instances) { + return (0, iterare_1.iterate)(instances).filter((instance) => !(0, shared_utils_1.isNil)(instance)).filter(hasOnAppBootstrapHook).map(async (instance) => instance.onApplicationBootstrap()).toArray(); + } + __name(callOperator, "callOperator"); + async function callModuleBootstrapHook(module3) { + const providers = module3.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const instances = [ + ...module3.controllers, + ...providers, + ...module3.injectables, + ...module3.middlewares + ]; + const nonTransientInstances = (0, transient_instances_1.getNonTransientInstances)(instances); + await Promise.all(callOperator(nonTransientInstances)); + const transientInstances = (0, transient_instances_1.getTransientInstances)(instances); + await Promise.all(callOperator(transientInstances)); + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasOnAppBootstrapHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + await moduleClassInstance.onApplicationBootstrap(); + } + } + __name(callModuleBootstrapHook, "callModuleBootstrapHook"); + } +}); + +// node_modules/@nestjs/core/hooks/on-app-shutdown.hook.js +var require_on_app_shutdown_hook = __commonJS({ + "node_modules/@nestjs/core/hooks/on-app-shutdown.hook.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.callAppShutdownHook = callAppShutdownHook; + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var transient_instances_1 = require_transient_instances(); + function hasOnAppShutdownHook(instance) { + return (0, shared_utils_1.isFunction)(instance.onApplicationShutdown); + } + __name(hasOnAppShutdownHook, "hasOnAppShutdownHook"); + function callOperator(instances, signal) { + return (0, iterare_1.iterate)(instances).filter((instance) => !(0, shared_utils_1.isNil)(instance)).filter(hasOnAppShutdownHook).map(async (instance) => instance.onApplicationShutdown(signal)).toArray(); + } + __name(callOperator, "callOperator"); + async function callAppShutdownHook(module3, signal) { + const providers = module3.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const instances = [ + ...module3.controllers, + ...providers, + ...module3.injectables, + ...module3.middlewares + ]; + const nonTransientInstances = (0, transient_instances_1.getNonTransientInstances)(instances); + await Promise.all(callOperator(nonTransientInstances, signal)); + const transientInstances = (0, transient_instances_1.getTransientInstances)(instances); + await Promise.all(callOperator(transientInstances, signal)); + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasOnAppShutdownHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + await moduleClassInstance.onApplicationShutdown(signal); + } + } + __name(callAppShutdownHook, "callAppShutdownHook"); + } +}); + +// node_modules/@nestjs/core/hooks/on-module-destroy.hook.js +var require_on_module_destroy_hook = __commonJS({ + "node_modules/@nestjs/core/hooks/on-module-destroy.hook.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.callModuleDestroyHook = callModuleDestroyHook; + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var transient_instances_1 = require_transient_instances(); + function hasOnModuleDestroyHook(instance) { + return (0, shared_utils_1.isFunction)(instance.onModuleDestroy); + } + __name(hasOnModuleDestroyHook, "hasOnModuleDestroyHook"); + function callOperator(instances) { + return (0, iterare_1.iterate)(instances).filter((instance) => !(0, shared_utils_1.isNil)(instance)).filter(hasOnModuleDestroyHook).map(async (instance) => instance.onModuleDestroy()).toArray(); + } + __name(callOperator, "callOperator"); + async function callModuleDestroyHook(module3) { + const providers = module3.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const instances = [ + ...module3.controllers, + ...providers, + ...module3.injectables, + ...module3.middlewares + ]; + const nonTransientInstances = (0, transient_instances_1.getNonTransientInstances)(instances); + await Promise.all(callOperator(nonTransientInstances)); + const transientInstances = (0, transient_instances_1.getTransientInstances)(instances); + await Promise.all(callOperator(transientInstances)); + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasOnModuleDestroyHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + await moduleClassInstance.onModuleDestroy(); + } + } + __name(callModuleDestroyHook, "callModuleDestroyHook"); + } +}); + +// node_modules/@nestjs/core/hooks/on-module-init.hook.js +var require_on_module_init_hook = __commonJS({ + "node_modules/@nestjs/core/hooks/on-module-init.hook.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.callModuleInitHook = callModuleInitHook; + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var transient_instances_1 = require_transient_instances(); + function hasOnModuleInitHook(instance) { + return (0, shared_utils_1.isFunction)(instance.onModuleInit); + } + __name(hasOnModuleInitHook, "hasOnModuleInitHook"); + function callOperator(instances) { + return (0, iterare_1.iterate)(instances).filter((instance) => !(0, shared_utils_1.isNil)(instance)).filter(hasOnModuleInitHook).map(async (instance) => instance.onModuleInit()).toArray(); + } + __name(callOperator, "callOperator"); + async function callModuleInitHook(module3) { + const providers = module3.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const instances = [ + ...module3.controllers, + ...providers, + ...module3.injectables, + ...module3.middlewares + ]; + const nonTransientInstances = (0, transient_instances_1.getNonTransientInstances)(instances); + await Promise.all(callOperator(nonTransientInstances)); + const transientInstances = (0, transient_instances_1.getTransientInstances)(instances); + await Promise.all(callOperator(transientInstances)); + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasOnModuleInitHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + await moduleClassInstance.onModuleInit(); + } + } + __name(callModuleInitHook, "callModuleInitHook"); + } +}); + +// node_modules/@nestjs/core/hooks/before-app-shutdown.hook.js +var require_before_app_shutdown_hook = __commonJS({ + "node_modules/@nestjs/core/hooks/before-app-shutdown.hook.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.callBeforeAppShutdownHook = callBeforeAppShutdownHook; + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var transient_instances_1 = require_transient_instances(); + function hasBeforeApplicationShutdownHook(instance) { + return (0, shared_utils_1.isFunction)(instance.beforeApplicationShutdown); + } + __name(hasBeforeApplicationShutdownHook, "hasBeforeApplicationShutdownHook"); + function callOperator(instances, signal) { + return (0, iterare_1.iterate)(instances).filter((instance) => !(0, shared_utils_1.isNil)(instance)).filter(hasBeforeApplicationShutdownHook).map(async (instance) => instance.beforeApplicationShutdown(signal)).toArray(); + } + __name(callOperator, "callOperator"); + async function callBeforeAppShutdownHook(module3, signal) { + const providers = module3.getNonAliasProviders(); + const [_, moduleClassHost] = providers.shift(); + const instances = [ + ...module3.controllers, + ...providers, + ...module3.injectables, + ...module3.middlewares + ]; + const nonTransientInstances = (0, transient_instances_1.getNonTransientInstances)(instances); + await Promise.all(callOperator(nonTransientInstances, signal)); + const transientInstances = (0, transient_instances_1.getTransientInstances)(instances); + await Promise.all(callOperator(transientInstances, signal)); + const moduleClassInstance = moduleClassHost.instance; + if (moduleClassInstance && hasBeforeApplicationShutdownHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) { + await moduleClassInstance.beforeApplicationShutdown(signal); + } + } + __name(callBeforeAppShutdownHook, "callBeforeAppShutdownHook"); + } +}); + +// node_modules/@nestjs/core/hooks/index.js +var require_hooks2 = __commonJS({ + "node_modules/@nestjs/core/hooks/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_on_app_bootstrap_hook(), exports2); + tslib_1.__exportStar(require_on_app_shutdown_hook(), exports2); + tslib_1.__exportStar(require_on_module_destroy_hook(), exports2); + tslib_1.__exportStar(require_on_module_init_hook(), exports2); + tslib_1.__exportStar(require_before_app_shutdown_hook(), exports2); + } +}); + +// node_modules/@nestjs/core/nest-application-context.js +var require_nest_application_context = __commonJS({ + "node_modules/@nestjs/core/nest-application-context.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NestApplicationContext = void 0; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var constants_1 = require_constants(); + var exceptions_1 = require_exceptions3(); + var context_id_factory_1 = require_context_id_factory(); + var hooks_1 = require_hooks2(); + var abstract_instance_resolver_1 = require_abstract_instance_resolver(); + var injector_1 = require_injector(); + var instance_links_host_1 = require_instance_links_host(); + var NestApplicationContext = class _NestApplicationContext extends abstract_instance_resolver_1.AbstractInstanceResolver { + static { + __name(this, "NestApplicationContext"); + } + get instanceLinksHost() { + if (!this._instanceLinksHost) { + this._instanceLinksHost = new instance_links_host_1.InstanceLinksHost(this.container); + } + return this._instanceLinksHost; + } + constructor(container, appOptions = {}, contextModule = null, scope = new Array()) { + super(); + this.container = container; + this.appOptions = appOptions; + this.contextModule = contextModule; + this.scope = scope; + this.isInitialized = false; + this.logger = new common_12.Logger(_NestApplicationContext.name, { + timestamp: true + }); + this.shouldFlushLogsOnOverride = false; + this.activeShutdownSignals = new Array(); + this.injector = new injector_1.Injector(); + this.moduleCompiler = container.getModuleCompiler(); + if (this.appOptions.preview) { + this.printInPreviewModeWarning(); + } + } + selectContextModule() { + const modules = this.container.getModules().values(); + this.contextModule = modules.next().value; + } + /** + * Allows navigating through the modules tree, for example, to pull out a specific instance from the selected module. + * @returns {INestApplicationContext} + */ + select(moduleType, selectOptions) { + const modulesContainer = this.container.getModules(); + const contextModuleCtor = this.contextModule.metatype; + const scope = this.scope.concat(contextModuleCtor); + const moduleTokenFactory = this.container.getModuleTokenFactory(); + const { type, dynamicMetadata } = this.moduleCompiler.extractMetadata(moduleType); + const token = dynamicMetadata ? moduleTokenFactory.createForDynamic(type, dynamicMetadata, moduleType) : moduleTokenFactory.createForStatic(type, moduleType); + const selectedModule = modulesContainer.get(token); + if (!selectedModule) { + throw new exceptions_1.UnknownModuleException(type.name); + } + const options = typeof selectOptions?.abortOnError !== "undefined" ? { + ...this.appOptions, + ...selectOptions + } : this.appOptions; + return new _NestApplicationContext(this.container, options, selectedModule, scope); + } + /** + * Retrieves an instance (or a list of instances) of either injectable or controller, otherwise, throws exception. + * @returns {TResult | Array} + */ + get(typeOrToken, options = { strict: false }) { + return !(options && options.strict) ? this.find(typeOrToken, options) : this.find(typeOrToken, { + moduleId: this.contextModule?.id, + each: options.each + }); + } + /** + * Resolves transient or request-scoped instance (or a list of instances) of either injectable or controller, otherwise, throws exception. + * @returns {Promise>} + */ + resolve(typeOrToken, contextId = (0, context_id_factory_1.createContextId)(), options = { strict: false }) { + return this.resolvePerContext(typeOrToken, this.contextModule, contextId, options); + } + /** + * Registers the request/context object for a given context ID (DI container sub-tree). + * @returns {void} + */ + registerRequestByContextId(request, contextId) { + this.container.registerRequestProvider(request, contextId); + } + /** + * Initializes the Nest application. + * Calls the Nest lifecycle events. + * + * @returns {Promise} The NestApplicationContext instance as Promise + */ + async init() { + if (this.isInitialized) { + return this; + } + this.initializationPromise = new Promise(async (resolve, reject) => { + try { + await this.callInitHook(); + await this.callBootstrapHook(); + resolve(); + } catch (err) { + reject(err); + } + }); + await this.initializationPromise; + this.isInitialized = true; + return this; + } + /** + * Terminates the application + * @returns {Promise} + */ + async close(signal) { + await this.initializationPromise; + await this.callDestroyHook(); + await this.callBeforeShutdownHook(signal); + await this.dispose(); + await this.callShutdownHook(signal); + this.unsubscribeFromProcessSignals(); + } + /** + * Sets custom logger service. + * Flushes buffered logs if auto flush is on. + * @returns {void} + */ + useLogger(logger) { + common_12.Logger.overrideLogger(logger); + if (this.shouldFlushLogsOnOverride) { + this.flushLogs(); + } + } + /** + * Prints buffered logs and detaches buffer. + * @returns {void} + */ + flushLogs() { + common_12.Logger.flush(); + } + /** + * Define that it must flush logs right after defining a custom logger. + */ + flushLogsOnOverride() { + this.shouldFlushLogsOnOverride = true; + } + /** + * Enables the usage of shutdown hooks. Will call the + * `onApplicationShutdown` function of a provider if the + * process receives a shutdown signal. + * + * @param {ShutdownSignal[]} [signals=[]] The system signals it should listen to + * @param {ShutdownHooksOptions} [options={}] Options for configuring shutdown hooks behavior + * + * @returns {this} The Nest application context instance + */ + enableShutdownHooks(signals = [], options = {}) { + if ((0, shared_utils_1.isEmpty)(signals)) { + signals = Object.keys(common_12.ShutdownSignal).map((key) => common_12.ShutdownSignal[key]); + } else { + signals = Array.from(new Set(signals)); + } + signals = (0, iterare_1.iterate)(signals).map((signal) => signal.toString().toUpperCase().trim()).filter((signal) => !this.activeShutdownSignals.includes(signal)).toArray(); + this.listenToShutdownSignals(signals, options); + return this; + } + async dispose() { + return Promise.resolve(); + } + /** + * Listens to shutdown signals by listening to + * process events + * + * @param {string[]} signals The system signals it should listen to + * @param {ShutdownHooksOptions} options Options for configuring shutdown hooks behavior + */ + listenToShutdownSignals(signals, options = {}) { + let receivedSignal = false; + const cleanup = /* @__PURE__ */ __name(async (signal) => { + try { + if (receivedSignal) { + return; + } + receivedSignal = true; + await this.initializationPromise; + await this.callDestroyHook(); + await this.callBeforeShutdownHook(signal); + await this.dispose(); + await this.callShutdownHook(signal); + signals.forEach((sig) => process.removeListener(sig, cleanup)); + if (options.useProcessExit) { + process.exit(0); + } else { + process.kill(process.pid, signal); + } + } catch (err) { + common_12.Logger.error(constants_1.MESSAGES.ERROR_DURING_SHUTDOWN, err?.stack, _NestApplicationContext.name); + process.exit(1); + } + }, "cleanup"); + this.shutdownCleanupRef = cleanup; + signals.forEach((signal) => { + this.activeShutdownSignals.push(signal); + process.on(signal, cleanup); + }); + } + /** + * Unsubscribes from shutdown signals (process events) + */ + unsubscribeFromProcessSignals() { + if (!this.shutdownCleanupRef) { + return; + } + this.activeShutdownSignals.forEach((signal) => { + process.removeListener(signal, this.shutdownCleanupRef); + }); + } + /** + * Calls the `onModuleInit` function on the registered + * modules and its children. + */ + async callInitHook() { + const modulesSortedByDistance = this.getModulesToTriggerHooksOn(); + for (const module3 of modulesSortedByDistance) { + await (0, hooks_1.callModuleInitHook)(module3); + } + } + /** + * Calls the `onModuleDestroy` function on the registered + * modules and its children. + */ + async callDestroyHook() { + const modulesSortedByDistance = [ + ...this.getModulesToTriggerHooksOn() + ].reverse(); + for (const module3 of modulesSortedByDistance) { + await (0, hooks_1.callModuleDestroyHook)(module3); + } + } + /** + * Calls the `onApplicationBootstrap` function on the registered + * modules and its children. + */ + async callBootstrapHook() { + const modulesSortedByDistance = this.getModulesToTriggerHooksOn(); + for (const module3 of modulesSortedByDistance) { + await (0, hooks_1.callModuleBootstrapHook)(module3); + } + } + /** + * Calls the `onApplicationShutdown` function on the registered + * modules and children. + */ + async callShutdownHook(signal) { + const modulesSortedByDistance = [ + ...this.getModulesToTriggerHooksOn() + ].reverse(); + for (const module3 of modulesSortedByDistance) { + await (0, hooks_1.callAppShutdownHook)(module3, signal); + } + } + /** + * Calls the `beforeApplicationShutdown` function on the registered + * modules and children. + */ + async callBeforeShutdownHook(signal) { + const modulesSortedByDistance = [ + ...this.getModulesToTriggerHooksOn() + ].reverse(); + for (const module3 of modulesSortedByDistance) { + await (0, hooks_1.callBeforeAppShutdownHook)(module3, signal); + } + } + assertNotInPreviewMode(methodName) { + if (this.appOptions.preview) { + const error = `Calling the "${methodName}" in the preview mode is not supported.`; + this.logger.error(error); + throw new Error(error); + } + } + getModulesToTriggerHooksOn() { + if (this._moduleRefsForHooksByDistance) { + return this._moduleRefsForHooksByDistance; + } + const modulesContainer = this.container.getModules(); + const compareFn = /* @__PURE__ */ __name((a, b) => b.distance - a.distance, "compareFn"); + const modulesSortedByDistance = Array.from(modulesContainer.values()).sort(compareFn); + this._moduleRefsForHooksByDistance = this.appOptions?.preview ? modulesSortedByDistance.filter((moduleRef) => moduleRef.initOnPreview) : modulesSortedByDistance; + return this._moduleRefsForHooksByDistance; + } + printInPreviewModeWarning() { + this.logger.warn("------------------------------------------------"); + this.logger.warn("Application is running in the PREVIEW mode!"); + this.logger.warn("Providers/controllers will not be instantiated."); + this.logger.warn("------------------------------------------------"); + } + }; + exports2.NestApplicationContext = NestApplicationContext; + } +}); + +// node_modules/@nestjs/core/helpers/messages.js +var require_messages2 = __commonJS({ + "node_modules/@nestjs/core/helpers/messages.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.INVALID_EXECUTION_CONTEXT = exports2.VERSIONED_CONTROLLER_MAPPING_MESSAGE = exports2.CONTROLLER_MAPPING_MESSAGE = exports2.VERSIONED_ROUTE_MAPPED_MESSAGE = exports2.ROUTE_MAPPED_MESSAGE = exports2.MODULE_INIT_MESSAGE = void 0; + var request_method_enum_1 = require_request_method_enum(); + var version_options_interface_1 = require_version_options_interface(); + var MODULE_INIT_MESSAGE = /* @__PURE__ */ __name((text, module3) => `${module3} dependencies initialized`, "MODULE_INIT_MESSAGE"); + exports2.MODULE_INIT_MESSAGE = MODULE_INIT_MESSAGE; + var ROUTE_MAPPED_MESSAGE = /* @__PURE__ */ __name((path, method) => `Mapped {${path}, ${request_method_enum_1.RequestMethod[method]}} route`, "ROUTE_MAPPED_MESSAGE"); + exports2.ROUTE_MAPPED_MESSAGE = ROUTE_MAPPED_MESSAGE; + var VERSIONED_ROUTE_MAPPED_MESSAGE = /* @__PURE__ */ __name((path, method, version) => { + const controllerVersions = Array.isArray(version) ? version : [version]; + const versions = controllerVersions.map((version2) => version2 === version_options_interface_1.VERSION_NEUTRAL ? "Neutral" : version2).join(","); + return `Mapped {${path}, ${request_method_enum_1.RequestMethod[method]}} (version: ${versions}) route`; + }, "VERSIONED_ROUTE_MAPPED_MESSAGE"); + exports2.VERSIONED_ROUTE_MAPPED_MESSAGE = VERSIONED_ROUTE_MAPPED_MESSAGE; + var CONTROLLER_MAPPING_MESSAGE = /* @__PURE__ */ __name((name, path) => `${name} {${path}}:`, "CONTROLLER_MAPPING_MESSAGE"); + exports2.CONTROLLER_MAPPING_MESSAGE = CONTROLLER_MAPPING_MESSAGE; + var VERSIONED_CONTROLLER_MAPPING_MESSAGE = /* @__PURE__ */ __name((name, path, version) => { + const controllerVersions = Array.isArray(version) ? version : [version]; + const versions = controllerVersions.map((version2) => version2 === version_options_interface_1.VERSION_NEUTRAL ? "Neutral" : version2).join(","); + return `${name} {${path}} (version: ${versions}):`; + }, "VERSIONED_CONTROLLER_MAPPING_MESSAGE"); + exports2.VERSIONED_CONTROLLER_MAPPING_MESSAGE = VERSIONED_CONTROLLER_MAPPING_MESSAGE; + var INVALID_EXECUTION_CONTEXT = /* @__PURE__ */ __name((methodName, currentContext) => `Calling ${methodName} is not allowed in this context. Your current execution context is "${currentContext}".`, "INVALID_EXECUTION_CONTEXT"); + exports2.INVALID_EXECUTION_CONTEXT = INVALID_EXECUTION_CONTEXT; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/unknown-request-mapping.exception.js +var require_unknown_request_mapping_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/unknown-request-mapping.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UnknownRequestMappingException = void 0; + var runtime_exception_1 = require_runtime_exception(); + var messages_1 = require_messages(); + var UnknownRequestMappingException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "UnknownRequestMappingException"); + } + constructor(metatype) { + super((0, messages_1.UNKNOWN_REQUEST_MAPPING)(metatype)); + } + }; + exports2.UnknownRequestMappingException = UnknownRequestMappingException; + } +}); + +// node_modules/@nestjs/core/helpers/router-method-factory.js +var require_router_method_factory = __commonJS({ + "node_modules/@nestjs/core/helpers/router-method-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouterMethodFactory = exports2.REQUEST_METHOD_MAP = void 0; + var request_method_enum_1 = require_request_method_enum(); + exports2.REQUEST_METHOD_MAP = { + [request_method_enum_1.RequestMethod.GET]: "get", + [request_method_enum_1.RequestMethod.POST]: "post", + [request_method_enum_1.RequestMethod.PUT]: "put", + [request_method_enum_1.RequestMethod.DELETE]: "delete", + [request_method_enum_1.RequestMethod.PATCH]: "patch", + [request_method_enum_1.RequestMethod.ALL]: "all", + [request_method_enum_1.RequestMethod.OPTIONS]: "options", + [request_method_enum_1.RequestMethod.HEAD]: "head", + [request_method_enum_1.RequestMethod.SEARCH]: "search", + [request_method_enum_1.RequestMethod.PROPFIND]: "propfind", + [request_method_enum_1.RequestMethod.PROPPATCH]: "proppatch", + [request_method_enum_1.RequestMethod.MKCOL]: "mkcol", + [request_method_enum_1.RequestMethod.COPY]: "copy", + [request_method_enum_1.RequestMethod.MOVE]: "move", + [request_method_enum_1.RequestMethod.LOCK]: "lock", + [request_method_enum_1.RequestMethod.UNLOCK]: "unlock" + }; + var RouterMethodFactory = class { + static { + __name(this, "RouterMethodFactory"); + } + get(target, requestMethod) { + const methodName = exports2.REQUEST_METHOD_MAP[requestMethod]; + const method = target[methodName]; + if (!method) { + return target.use; + } + return method; + } + }; + exports2.RouterMethodFactory = RouterMethodFactory; + } +}); + +// node_modules/@nestjs/core/router/route-params-factory.js +var require_route_params_factory = __commonJS({ + "node_modules/@nestjs/core/router/route-params-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouteParamsFactory = void 0; + var route_paramtypes_enum_1 = require_route_paramtypes_enum(); + var RouteParamsFactory = class { + static { + __name(this, "RouteParamsFactory"); + } + exchangeKeyForValue(key, data, { req, res, next }) { + switch (key) { + case route_paramtypes_enum_1.RouteParamtypes.NEXT: + return next; + case route_paramtypes_enum_1.RouteParamtypes.REQUEST: + return req; + case route_paramtypes_enum_1.RouteParamtypes.RESPONSE: + return res; + case route_paramtypes_enum_1.RouteParamtypes.BODY: + return data && req.body ? req.body[data] : req.body; + case route_paramtypes_enum_1.RouteParamtypes.RAW_BODY: + return req.rawBody; + case route_paramtypes_enum_1.RouteParamtypes.PARAM: + return data ? req.params[data] : req.params; + case route_paramtypes_enum_1.RouteParamtypes.HOST: + const hosts = req.hosts || {}; + return data ? hosts[data] : hosts; + case route_paramtypes_enum_1.RouteParamtypes.QUERY: + return data ? req.query[data] : req.query; + case route_paramtypes_enum_1.RouteParamtypes.HEADERS: + return data ? req.headers[data.toLowerCase()] : req.headers; + case route_paramtypes_enum_1.RouteParamtypes.SESSION: + return req.session; + case route_paramtypes_enum_1.RouteParamtypes.FILE: + return req[data || "file"]; + case route_paramtypes_enum_1.RouteParamtypes.FILES: + return req.files; + case route_paramtypes_enum_1.RouteParamtypes.IP: + return req.ip; + default: + return null; + } + } + }; + exports2.RouteParamsFactory = RouteParamsFactory; + } +}); + +// node_modules/@nestjs/core/router/sse-stream.js +var require_sse_stream = __commonJS({ + "node_modules/@nestjs/core/router/sse-stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SseStream = void 0; + var shared_utils_1 = require_shared_utils(); + var stream_1 = require("stream"); + function toDataString(data) { + if ((0, shared_utils_1.isObject)(data)) { + return toDataString(JSON.stringify(data)); + } + return data.split(/\r\n|\r|\n/).map((line) => `data: ${line} +`).join(""); + } + __name(toDataString, "toDataString"); + var SseStream = class extends stream_1.Transform { + static { + __name(this, "SseStream"); + } + constructor(req) { + super({ objectMode: true }); + this.lastEventId = null; + this._headersCommitted = false; + this._destination = null; + this._statusCode = 200; + if (req && req.socket) { + req.socket.setKeepAlive(true); + req.socket.setNoDelay(true); + req.socket.setTimeout(0); + } + } + get headersCommitted() { + return this._headersCommitted; + } + pipe(destination, options) { + this._destination = destination; + this._statusCode = options?.statusCode ?? 200; + this._additionalHeaders = options?.additionalHeaders; + return super.pipe(destination, options); + } + /** + * Writes SSE headers to the destination if they have not been sent yet. + * Headers are deferred until the first message so that, if the observable + * errors before any data is emitted, the HTTP status code can still be + * changed by an exception filter. + */ + commitHeaders() { + if (this._headersCommitted || !this._destination) { + return; + } + if (this._destination.writableEnded) { + return; + } + this._headersCommitted = true; + const statusCode = this._statusCode ?? 200; + const additionalHeaders = this._additionalHeaders; + if (this._destination.writeHead) { + this._destination.writeHead(statusCode, { + ...additionalHeaders, + // See https://github.com/dunglas/mercure/blob/master/hub/subscribe.go#L124-L130 + "Content-Type": "text/event-stream", + Connection: "keep-alive", + // Disable cache, even for old browsers and proxies + "Cache-Control": "private, no-cache, no-store, must-revalidate, max-age=0, no-transform", + Pragma: "no-cache", + Expire: "0", + // NGINX support https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/#x-accel-buffering + "X-Accel-Buffering": "no" + }); + this._destination.flushHeaders?.(); + } + this._destination.write("\n"); + } + _transform(message, encoding, callback) { + this.commitHeaders(); + const sanitize = /* @__PURE__ */ __name((val) => String(val).replace(/[\r\n]/g, ""), "sanitize"); + let data = message.type ? `event: ${sanitize(message.type)} +` : ""; + data += message.id !== void 0 && message.id !== null ? `id: ${sanitize(message.id)} +` : ""; + data += message.retry ? `retry: ${sanitize(message.retry)} +` : ""; + data += message.data ? toDataString(message.data) : ""; + data += "\n"; + this.push(data); + callback(); + } + /** + * Calls `.write` but handles the drain if needed + */ + writeMessage(message, cb) { + if (message.id === void 0 || message.id === null) { + this.lastEventId++; + message.id = this.lastEventId.toString(); + } + if (!this.write(message, "utf-8")) { + this.once("drain", cb); + } else { + process.nextTick(cb); + } + } + }; + exports2.SseStream = SseStream; + } +}); + +// node_modules/@nestjs/core/router/router-response-controller.js +var require_router_response_controller = __commonJS({ + "node_modules/@nestjs/core/router/router-response-controller.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouterResponseController = void 0; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var rxjs_1 = require_cjs3(); + var operators_1 = require_operators(); + var sse_stream_1 = require_sse_stream(); + var RouterResponseController = class _RouterResponseController { + static { + __name(this, "RouterResponseController"); + } + constructor(applicationRef) { + this.applicationRef = applicationRef; + this.logger = new common_12.Logger(_RouterResponseController.name); + } + async apply(result, response, httpStatusCode) { + return this.applicationRef.reply(response, result, httpStatusCode); + } + async redirect(resultOrDeferred, response, redirectResponse) { + const result = await this.transformToResult(resultOrDeferred); + const statusCode = result && result.statusCode ? result.statusCode : redirectResponse.statusCode ? redirectResponse.statusCode : common_12.HttpStatus.FOUND; + const url = result && result.url ? result.url : redirectResponse.url; + this.applicationRef.redirect(response, statusCode, url); + } + async render(resultOrDeferred, response, template) { + const result = await this.transformToResult(resultOrDeferred); + return this.applicationRef.render(response, template, result); + } + async transformToResult(resultOrDeferred) { + if ((0, rxjs_1.isObservable)(resultOrDeferred)) { + return (0, rxjs_1.lastValueFrom)(resultOrDeferred); + } + return resultOrDeferred; + } + getStatusByMethod(requestMethod) { + switch (requestMethod) { + case common_12.RequestMethod.POST: + return common_12.HttpStatus.CREATED; + default: + return common_12.HttpStatus.OK; + } + } + setHeaders(response, headers) { + headers.forEach(({ name, value }) => this.applicationRef.setHeader(response, name, typeof value === "function" ? value() : value)); + } + setStatus(response, statusCode) { + this.applicationRef.status(response, statusCode); + } + async sse(result, response, request, options) { + if (response.writableEnded) { + return; + } + const stream = new sse_stream_1.SseStream(request); + const statusCode = options?.statusCode ?? response.statusCode ?? 200; + return new Promise((resolve, reject) => { + let settled = false; + let closeRequested = false; + let subscription; + const disconnectSource = request.socket ?? response; + const cleanup = /* @__PURE__ */ __name(() => disconnectSource.removeListener("close", onClose), "cleanup"); + const endStream = /* @__PURE__ */ __name(() => { + if (!stream.writableEnded) { + stream.end(); + } + }, "endStream"); + const onClose = /* @__PURE__ */ __name(() => { + if (settled || closeRequested) { + return; + } + closeRequested = true; + if (!subscription) { + cleanup(); + return; + } + settled = true; + cleanup(); + subscription?.unsubscribe(); + endStream(); + response.end(); + resolve(); + }, "onClose"); + disconnectSource.once("close", onClose); + Promise.resolve(result).then((observableResult) => { + if (settled) { + return; + } + this.assertObservable(observableResult); + if (closeRequested) { + const cleanupSubscription = observableResult.subscribe({ + error: /* @__PURE__ */ __name(() => void 0, "error") + }); + cleanupSubscription.unsubscribe(); + settled = true; + endStream(); + response.end(); + resolve(); + return; + } + stream.pipe(response, { + additionalHeaders: options?.additionalHeaders, + statusCode + }); + subscription = observableResult.pipe((0, operators_1.map)((message) => { + if ((0, shared_utils_1.isObject)(message)) { + return message; + } + return { data: message }; + }), (0, operators_1.concatMap)((message) => new Promise((resolve2) => stream.writeMessage(message, () => resolve2()))), (0, operators_1.catchError)((err) => { + if (!stream.headersCommitted) { + throw err; + } + const data = err instanceof Error ? err.message : err; + stream.writeMessage({ type: "error", data }, (writeError) => { + if (writeError) { + this.logger.error(writeError); + } + }); + return rxjs_1.EMPTY; + })).subscribe({ + error: /* @__PURE__ */ __name((err) => { + if (settled) { + return; + } + settled = true; + cleanup(); + endStream(); + reject(err); + }, "error"), + complete: /* @__PURE__ */ __name(() => { + if (settled) { + return; + } + settled = true; + cleanup(); + endStream(); + resolve(); + }, "complete") + }); + setTimeout(() => { + if (!settled) { + stream.commitHeaders(); + } + }, 0); + }).catch((err) => { + if (settled) { + return; + } + if (closeRequested) { + settled = true; + endStream(); + response.end(); + resolve(); + return; + } + settled = true; + cleanup(); + endStream(); + reject(err); + }); + }); + } + assertObservable(value) { + if (!(0, rxjs_1.isObservable)(value)) { + throw new ReferenceError("You must return an Observable stream to use Server-Sent Events (SSE)."); + } + } + }; + exports2.RouterResponseController = RouterResponseController; + } +}); + +// node_modules/@nestjs/core/router/router-execution-context.js +var require_router_execution_context = __commonJS({ + "node_modules/@nestjs/core/router/router-execution-context.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouterExecutionContext = void 0; + var common_12 = require_common(); + var constants_1 = require_constants2(); + var route_paramtypes_enum_1 = require_route_paramtypes_enum(); + var shared_utils_1 = require_shared_utils(); + var guards_1 = require_guards(); + var context_utils_1 = require_context_utils(); + var handler_metadata_storage_1 = require_handler_metadata_storage(); + var constants_2 = require_constants5(); + var router_response_controller_1 = require_router_response_controller(); + var RouterExecutionContext = class { + static { + __name(this, "RouterExecutionContext"); + } + constructor(paramsFactory, pipesContextCreator, pipesConsumer, guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, applicationRef) { + this.paramsFactory = paramsFactory; + this.pipesContextCreator = pipesContextCreator; + this.pipesConsumer = pipesConsumer; + this.guardsContextCreator = guardsContextCreator; + this.guardsConsumer = guardsConsumer; + this.interceptorsContextCreator = interceptorsContextCreator; + this.interceptorsConsumer = interceptorsConsumer; + this.applicationRef = applicationRef; + this.handlerMetadataStorage = new handler_metadata_storage_1.HandlerMetadataStorage(); + this.contextUtils = new context_utils_1.ContextUtils(); + this.responseController = new router_response_controller_1.RouterResponseController(applicationRef); + } + create(instance, callback, methodName, moduleKey, requestMethod, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + const contextType = "http"; + const { argsLength, fnHandleResponse, isSseHandler, paramtypes, getParamsMetadata, httpStatusCode, responseHeaders, hasCustomHeaders } = this.getMetadata(instance, callback, methodName, moduleKey, requestMethod, contextType); + const paramsOptions = this.contextUtils.mergeParamsMetatypes(getParamsMetadata(moduleKey, contextId, inquirerId), paramtypes); + const pipes = this.pipesContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const guards = this.guardsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const interceptors = this.interceptorsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId); + const fnCanActivate = this.createGuardsFn(guards, instance, callback, contextType); + const fnApplyPipes = this.createPipesFn(pipes, paramsOptions); + const handler = /* @__PURE__ */ __name((args, req, res, next) => async () => { + fnApplyPipes && await fnApplyPipes(args, req, res, next); + return callback.apply(instance, args); + }, "handler"); + return async (req, res, next) => { + const args = this.contextUtils.createNullArray(argsLength); + fnCanActivate && await fnCanActivate([req, res, next]); + this.responseController.setStatus(res, httpStatusCode); + hasCustomHeaders && this.responseController.setHeaders(res, responseHeaders); + const resultOrDeferred = this.interceptorsConsumer.intercept(interceptors, [req, res, next], instance, callback, handler(args, req, res, next), contextType); + const result = isSseHandler ? resultOrDeferred : await resultOrDeferred; + await fnHandleResponse(result, res, req); + }; + } + getMetadata(instance, callback, methodName, moduleKey, requestMethod, contextType) { + const cacheMetadata = this.handlerMetadataStorage.get(instance, methodName); + if (cacheMetadata) { + return cacheMetadata; + } + const metadata = this.contextUtils.reflectCallbackMetadata(instance, methodName, constants_1.ROUTE_ARGS_METADATA) || {}; + const keys = Object.keys(metadata); + const argsLength = this.contextUtils.getArgumentsLength(keys, metadata); + const paramtypes = this.contextUtils.reflectCallbackParamtypes(instance, methodName); + const contextFactory = this.contextUtils.getContextFactory(contextType, instance, callback); + const getParamsMetadata = /* @__PURE__ */ __name((moduleKey2, contextId = constants_2.STATIC_CONTEXT, inquirerId) => this.exchangeKeysForValues(keys, metadata, moduleKey2, contextId, inquirerId, contextFactory), "getParamsMetadata"); + const paramsMetadata = getParamsMetadata(moduleKey); + const isResponseHandled = this.isResponseHandled(instance, methodName, paramsMetadata); + const httpRedirectResponse = this.reflectRedirect(callback); + const fnHandleResponse = this.createHandleResponseFn(callback, isResponseHandled, httpRedirectResponse); + const isSseHandler = !!this.reflectSse(callback); + const httpCode = this.reflectHttpStatusCode(callback); + const httpStatusCode = httpCode ? httpCode : this.responseController.getStatusByMethod(requestMethod); + const responseHeaders = this.reflectResponseHeaders(callback); + const hasCustomHeaders = !(0, shared_utils_1.isEmpty)(responseHeaders); + const handlerMetadata = { + argsLength, + fnHandleResponse, + isSseHandler, + paramtypes, + getParamsMetadata, + httpStatusCode, + hasCustomHeaders, + responseHeaders + }; + this.handlerMetadataStorage.set(instance, methodName, handlerMetadata); + return handlerMetadata; + } + reflectRedirect(callback) { + return Reflect.getMetadata(constants_1.REDIRECT_METADATA, callback); + } + reflectHttpStatusCode(callback) { + return Reflect.getMetadata(constants_1.HTTP_CODE_METADATA, callback); + } + reflectRenderTemplate(callback) { + return Reflect.getMetadata(constants_1.RENDER_METADATA, callback); + } + reflectResponseHeaders(callback) { + return Reflect.getMetadata(constants_1.HEADERS_METADATA, callback) || []; + } + reflectSse(callback) { + return Reflect.getMetadata(constants_1.SSE_METADATA, callback); + } + exchangeKeysForValues(keys, metadata, moduleContext, contextId = constants_2.STATIC_CONTEXT, inquirerId, contextFactory) { + this.pipesContextCreator.setModuleContext(moduleContext); + return keys.map((key) => { + const { index, data, pipes: pipesCollection } = metadata[key]; + const pipes = this.pipesContextCreator.createConcreteContext(pipesCollection, contextId, inquirerId); + const type = this.contextUtils.mapParamType(key); + if (key.includes(constants_1.CUSTOM_ROUTE_ARGS_METADATA)) { + const { factory } = metadata[key]; + const customExtractValue = this.contextUtils.getCustomFactory(factory, data, contextFactory); + return { index, extractValue: customExtractValue, type, data, pipes }; + } + const numericType = Number(type); + const extractValue = /* @__PURE__ */ __name((req, res, next) => this.paramsFactory.exchangeKeyForValue(numericType, data, { + req, + res, + next + }), "extractValue"); + return { index, extractValue, type: numericType, data, pipes }; + }); + } + async getParamValue(value, { metatype, type, data }, pipes) { + if (!(0, shared_utils_1.isEmpty)(pipes)) { + return this.pipesConsumer.apply(value, { metatype, type, data }, pipes); + } + return value; + } + isPipeable(type) { + return type === route_paramtypes_enum_1.RouteParamtypes.BODY || type === route_paramtypes_enum_1.RouteParamtypes.RAW_BODY || type === route_paramtypes_enum_1.RouteParamtypes.QUERY || type === route_paramtypes_enum_1.RouteParamtypes.PARAM || type === route_paramtypes_enum_1.RouteParamtypes.FILE || type === route_paramtypes_enum_1.RouteParamtypes.FILES || (0, shared_utils_1.isString)(type); + } + createGuardsFn(guards, instance, callback, contextType) { + const canActivateFn = /* @__PURE__ */ __name(async (args) => { + const canActivate = await this.guardsConsumer.tryActivate(guards, args, instance, callback, contextType); + if (!canActivate) { + throw new common_12.ForbiddenException(guards_1.FORBIDDEN_MESSAGE); + } + }, "canActivateFn"); + return guards.length ? canActivateFn : null; + } + createPipesFn(pipes, paramsOptions) { + const pipesFn = /* @__PURE__ */ __name(async (args, req, res, next) => { + const resolveParamValue = /* @__PURE__ */ __name(async (param) => { + const { index, extractValue, type, data, metatype, pipes: paramPipes } = param; + const value = extractValue(req, res, next); + args[index] = this.isPipeable(type) ? await this.getParamValue(value, { metatype, type, data }, pipes.concat(paramPipes)) : value; + }, "resolveParamValue"); + await Promise.all(paramsOptions.map(resolveParamValue)); + }, "pipesFn"); + return paramsOptions.length ? pipesFn : null; + } + createHandleResponseFn(callback, isResponseHandled, redirectResponse, httpStatusCode) { + const renderTemplate = this.reflectRenderTemplate(callback); + if (renderTemplate) { + return async (result, res) => { + return await this.responseController.render(result, res, renderTemplate); + }; + } + if (redirectResponse && (0, shared_utils_1.isString)(redirectResponse.url)) { + return async (result, res) => { + await this.responseController.redirect(result, res, redirectResponse); + }; + } + const isSseHandler = !!this.reflectSse(callback); + if (isSseHandler) { + return async (result, res, req) => { + const rawResponse = res.raw ?? res; + await this.responseController.sse(result, rawResponse, req.raw || req, { + additionalHeaders: res.getHeaders?.(), + statusCode: res.statusCode ?? rawResponse.statusCode + }); + }; + } + return async (result, res) => { + result = await this.responseController.transformToResult(result); + !isResponseHandled && await this.responseController.apply(result, res, httpStatusCode); + return res; + }; + } + isResponseHandled(instance, methodName, paramsMetadata) { + const hasResponseOrNextDecorator = paramsMetadata.some(({ type }) => type === route_paramtypes_enum_1.RouteParamtypes.RESPONSE || type === route_paramtypes_enum_1.RouteParamtypes.NEXT); + const isPassthroughEnabled = this.contextUtils.reflectPassthrough(instance, methodName); + return hasResponseOrNextDecorator && !isPassthroughEnabled; + } + }; + exports2.RouterExecutionContext = RouterExecutionContext; + } +}); + +// node_modules/@nestjs/core/router/router-explorer.js +var require_router_explorer = __commonJS({ + "node_modules/@nestjs/core/router/router-explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouterExplorer = void 0; + var constants_1 = require_constants2(); + var enums_1 = require_enums(); + var exceptions_1 = require_exceptions(); + var logger_service_1 = require_logger_service(); + var shared_utils_1 = require_shared_utils(); + var path_to_regexp_1 = require_dist2(); + var unknown_request_mapping_exception_1 = require_unknown_request_mapping_exception(); + var guards_1 = require_guards(); + var context_id_factory_1 = require_context_id_factory(); + var execution_context_host_1 = require_execution_context_host(); + var messages_1 = require_messages2(); + var router_method_factory_1 = require_router_method_factory(); + var constants_2 = require_constants5(); + var interceptors_1 = require_interceptors(); + var pipes_1 = require_pipes2(); + var paths_explorer_1 = require_paths_explorer(); + var request_constants_1 = require_request_constants(); + var route_params_factory_1 = require_route_params_factory(); + var router_execution_context_1 = require_router_execution_context(); + var RouterExplorer = class _RouterExplorer { + static { + __name(this, "RouterExplorer"); + } + constructor(metadataScanner, container, injector, routerProxy, exceptionsFilter, config, routePathFactory, graphInspector) { + this.container = container; + this.injector = injector; + this.routerProxy = routerProxy; + this.exceptionsFilter = exceptionsFilter; + this.routePathFactory = routePathFactory; + this.graphInspector = graphInspector; + this.routerMethodFactory = new router_method_factory_1.RouterMethodFactory(); + this.logger = new logger_service_1.Logger(_RouterExplorer.name, { + timestamp: true + }); + this.exceptionFiltersCache = /* @__PURE__ */ new WeakMap(); + this.pathsExplorer = new paths_explorer_1.PathsExplorer(metadataScanner); + const routeParamsFactory = new route_params_factory_1.RouteParamsFactory(); + const pipesContextCreator = new pipes_1.PipesContextCreator(container, config); + const pipesConsumer = new pipes_1.PipesConsumer(); + const guardsContextCreator = new guards_1.GuardsContextCreator(container, config); + const guardsConsumer = new guards_1.GuardsConsumer(); + const interceptorsContextCreator = new interceptors_1.InterceptorsContextCreator(container, config); + const interceptorsConsumer = new interceptors_1.InterceptorsConsumer(); + this.executionContextCreator = new router_execution_context_1.RouterExecutionContext(routeParamsFactory, pipesContextCreator, pipesConsumer, guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, container.getHttpAdapterRef()); + } + explore(instanceWrapper, moduleKey, httpAdapterRef, host, routePathMetadata) { + const { instance } = instanceWrapper; + const routerPaths = this.pathsExplorer.scanForPaths(instance); + this.applyPathsToRouterProxy(httpAdapterRef, routerPaths, instanceWrapper, moduleKey, routePathMetadata, host); + } + extractRouterPath(metatype) { + const path = Reflect.getMetadata(constants_1.PATH_METADATA, metatype); + if ((0, shared_utils_1.isUndefined)(path)) { + throw new unknown_request_mapping_exception_1.UnknownRequestMappingException(metatype); + } + if (Array.isArray(path)) { + return path.map((p) => (0, shared_utils_1.addLeadingSlash)(p)); + } + return [(0, shared_utils_1.addLeadingSlash)(path)]; + } + applyPathsToRouterProxy(router, routeDefinitions, instanceWrapper, moduleKey, routePathMetadata, host) { + (routeDefinitions || []).forEach((routeDefinition) => { + const { version: methodVersion } = routeDefinition; + routePathMetadata.methodVersion = methodVersion; + this.applyCallbackToRouter(router, routeDefinition, instanceWrapper, moduleKey, routePathMetadata, host); + }); + } + applyCallbackToRouter(router, routeDefinition, instanceWrapper, moduleKey, routePathMetadata, host) { + const { path: paths, requestMethod, targetCallback, methodName } = routeDefinition; + const { instance } = instanceWrapper; + const routerMethodRef = this.routerMethodFactory.get(router, requestMethod).bind(router); + const isRequestScoped = !instanceWrapper.isDependencyTreeStatic(); + const proxy = isRequestScoped ? this.createRequestScopedHandler(instanceWrapper, requestMethod, this.container.getModuleByKey(moduleKey), moduleKey, methodName) : this.createCallbackProxy(instance, targetCallback, methodName, moduleKey, requestMethod); + const isVersioned = (routePathMetadata.methodVersion || routePathMetadata.controllerVersion) && routePathMetadata.versioningOptions; + let routeHandler = this.applyHostFilter(host, proxy); + paths.forEach((path) => { + if (isVersioned && routePathMetadata.versioningOptions.type !== enums_1.VersioningType.URI) { + routeHandler = this.applyVersionFilter(router, routePathMetadata, routeHandler); + } + routePathMetadata.methodPath = path; + const pathsToRegister = this.routePathFactory.create(routePathMetadata, requestMethod); + pathsToRegister.forEach((path2) => { + const entrypointDefinition = { + type: "http-endpoint", + methodName, + className: instanceWrapper.name, + classNodeId: instanceWrapper.id, + metadata: { + key: path2, + path: path2, + requestMethod: enums_1.RequestMethod[requestMethod], + methodVersion: routePathMetadata.methodVersion, + controllerVersion: routePathMetadata.controllerVersion + } + }; + this.copyMetadataToCallback(targetCallback, routeHandler); + const normalizedPath = router.normalizePath ? router.normalizePath(path2) : path2; + const httpAdapter = this.container.getHttpAdapterRef(); + const onRouteTriggered = httpAdapter.getOnRouteTriggered?.(); + if (onRouteTriggered) { + routerMethodRef(normalizedPath, (...args) => { + onRouteTriggered(requestMethod, path2); + return routeHandler(...args); + }); + } else { + routerMethodRef(normalizedPath, routeHandler); + } + this.graphInspector.insertEntrypointDefinition(entrypointDefinition, instanceWrapper.id); + }); + const pathsToLog = this.routePathFactory.create({ + ...routePathMetadata, + versioningOptions: void 0 + }, requestMethod); + pathsToLog.forEach((path2) => { + if (isVersioned) { + const version = this.routePathFactory.getVersion(routePathMetadata); + this.logger.log((0, messages_1.VERSIONED_ROUTE_MAPPED_MESSAGE)(path2, requestMethod, version)); + } else { + this.logger.log((0, messages_1.ROUTE_MAPPED_MESSAGE)(path2, requestMethod)); + } + }); + }); + } + applyHostFilter(host, handler) { + if (!host) { + return handler; + } + const httpAdapterRef = this.container.getHttpAdapterRef(); + const hosts = Array.isArray(host) ? host : [host]; + const hostRegExps = hosts.map((host2) => { + if (typeof host2 === "string") { + try { + return (0, path_to_regexp_1.pathToRegexp)(host2); + } catch (e) { + if (e instanceof TypeError) { + this.logger.error(`Unsupported host "${host2}" syntax. In past releases, ?, *, and + were used to denote optional or repeating path parameters. The latest version of "path-to-regexp" now requires the use of named parameters. For example, instead of using a route like /users/* to capture all routes starting with "/users", you should use /users/*path. Please see the migration guide for more information.`); + } + throw e; + } + } + return { regexp: host2, keys: [] }; + }); + const unsupportedFilteringErrorMessage = Array.isArray(host) ? `HTTP adapter does not support filtering on hosts: ["${host.join('", "')}"]` : `HTTP adapter does not support filtering on host: "${host}"`; + return (req, res, next) => { + req.hosts = {}; + const hostname = httpAdapterRef.getRequestHostname(req) || ""; + for (const exp of hostRegExps) { + const match = hostname.match(exp.regexp); + if (match) { + if (exp.keys.length > 0) { + exp.keys.forEach((key, i) => req.hosts[key.name] = match[i + 1]); + } else if (exp.regexp && match.groups) { + for (const groupName in match.groups) { + req.hosts[groupName] = match.groups[groupName]; + } + } + return handler(req, res, next); + } + } + if (!next) { + throw new exceptions_1.InternalServerErrorException(unsupportedFilteringErrorMessage); + } + return next(); + }; + } + applyVersionFilter(router, routePathMetadata, handler) { + const version = this.routePathFactory.getVersion(routePathMetadata); + return router.applyVersionFilter(handler, version, routePathMetadata.versioningOptions); + } + createCallbackProxy(instance, callback, methodName, moduleRef, requestMethod, contextId = constants_2.STATIC_CONTEXT, inquirerId) { + const executionContext = this.executionContextCreator.create(instance, callback, methodName, moduleRef, requestMethod, contextId, inquirerId); + const exceptionFilter = this.exceptionsFilter.create(instance, callback, moduleRef, contextId, inquirerId); + return this.routerProxy.createProxy(executionContext, exceptionFilter); + } + createRequestScopedHandler(instanceWrapper, requestMethod, moduleRef, moduleKey, methodName) { + const { instance } = instanceWrapper; + const collection = moduleRef.controllers; + const isTreeDurable = instanceWrapper.isDependencyTreeDurable(); + return async (req, res, next) => { + try { + const contextId = this.getContextId(req, isTreeDurable); + const contextInstance = await this.injector.loadPerContext(instance, moduleRef, collection, contextId); + await this.createCallbackProxy(contextInstance, contextInstance[methodName], methodName, moduleKey, requestMethod, contextId, instanceWrapper.id)(req, res, next); + } catch (err) { + let exceptionFilter = this.exceptionFiltersCache.get(instance[methodName]); + if (!exceptionFilter) { + exceptionFilter = this.exceptionsFilter.create(instance, instance[methodName], moduleKey); + this.exceptionFiltersCache.set(instance[methodName], exceptionFilter); + } + const host = new execution_context_host_1.ExecutionContextHost([req, res, next]); + exceptionFilter.next(err, host); + } + }; + } + getContextId(request, isTreeDurable) { + const contextId = context_id_factory_1.ContextIdFactory.getByRequest(request); + if (!request[request_constants_1.REQUEST_CONTEXT_ID]) { + Object.defineProperty(request, request_constants_1.REQUEST_CONTEXT_ID, { + value: contextId, + enumerable: false, + writable: false, + configurable: false + }); + const requestProviderValue = isTreeDurable ? contextId.payload : Object.assign(request, contextId.payload); + this.container.registerRequestProvider(requestProviderValue, contextId); + } + return contextId; + } + copyMetadataToCallback(originalCallback, targetCallback) { + for (const key of Reflect.getMetadataKeys(originalCallback)) { + Reflect.defineMetadata(key, Reflect.getMetadata(key, originalCallback), targetCallback); + } + } + }; + exports2.RouterExplorer = RouterExplorer; + } +}); + +// node_modules/@nestjs/core/router/routes-resolver.js +var require_routes_resolver = __commonJS({ + "node_modules/@nestjs/core/router/routes-resolver.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RoutesResolver = void 0; + var common_12 = require_common(); + var constants_1 = require_constants2(); + var logger_service_1 = require_logger_service(); + var messages_1 = require_messages2(); + var metadata_scanner_1 = require_metadata_scanner(); + var route_path_factory_1 = require_route_path_factory(); + var router_exception_filters_1 = require_router_exception_filters(); + var router_explorer_1 = require_router_explorer(); + var router_proxy_1 = require_router_proxy(); + var RoutesResolver = class _RoutesResolver { + static { + __name(this, "RoutesResolver"); + } + constructor(container, applicationConfig, injector, graphInspector) { + this.container = container; + this.applicationConfig = applicationConfig; + this.injector = injector; + this.logger = new logger_service_1.Logger(_RoutesResolver.name, { + timestamp: true + }); + this.routerProxy = new router_proxy_1.RouterProxy(); + const httpAdapterRef = container.getHttpAdapterRef(); + this.routerExceptionsFilter = new router_exception_filters_1.RouterExceptionFilters(container, applicationConfig, httpAdapterRef); + this.routePathFactory = new route_path_factory_1.RoutePathFactory(this.applicationConfig); + const metadataScanner = new metadata_scanner_1.MetadataScanner(); + this.routerExplorer = new router_explorer_1.RouterExplorer(metadataScanner, this.container, this.injector, this.routerProxy, this.routerExceptionsFilter, this.applicationConfig, this.routePathFactory, graphInspector); + } + resolve(applicationRef, globalPrefix) { + const modules = this.container.getModules(); + modules.forEach(({ controllers, metatype }, moduleName) => { + const modulePath = this.getModulePathMetadata(metatype); + this.registerRouters(controllers, moduleName, globalPrefix, modulePath, applicationRef); + }); + } + registerRouters(routes, moduleName, globalPrefix, modulePath, applicationRef) { + routes.forEach((instanceWrapper) => { + const { metatype } = instanceWrapper; + const host = this.getHostMetadata(metatype); + const routerPaths = this.routerExplorer.extractRouterPath(metatype); + const controllerVersion = this.getVersionMetadata(metatype); + const controllerName = metatype.name; + routerPaths.forEach((path) => { + const pathsToLog = this.routePathFactory.create({ + ctrlPath: path, + modulePath, + globalPrefix + }); + if (!controllerVersion) { + pathsToLog.forEach((path2) => { + const logMessage = (0, messages_1.CONTROLLER_MAPPING_MESSAGE)(controllerName, path2); + this.logger.log(logMessage); + }); + } else { + pathsToLog.forEach((path2) => { + const logMessage = (0, messages_1.VERSIONED_CONTROLLER_MAPPING_MESSAGE)(controllerName, path2, controllerVersion); + this.logger.log(logMessage); + }); + } + const versioningOptions = this.applicationConfig.getVersioning(); + const routePathMetadata = { + ctrlPath: path, + modulePath, + globalPrefix, + controllerVersion, + versioningOptions + }; + this.routerExplorer.explore(instanceWrapper, moduleName, applicationRef, host, routePathMetadata); + }); + }); + } + registerNotFoundHandler() { + const applicationRef = this.container.getHttpAdapterRef(); + const callback = /* @__PURE__ */ __name((req, res) => { + const method = applicationRef.getRequestMethod(req); + const url = applicationRef.getRequestUrl(req); + throw new common_12.NotFoundException(`Cannot ${method} ${url}`); + }, "callback"); + const handler = this.routerExceptionsFilter.create({}, callback, void 0); + const proxy = this.routerProxy.createProxy(callback, handler); + applicationRef.setNotFoundHandler && applicationRef.setNotFoundHandler(proxy, this.applicationConfig.getGlobalPrefix()); + } + registerExceptionHandler() { + const callback = /* @__PURE__ */ __name((err, req, res, next) => { + throw this.mapExternalException(err); + }, "callback"); + const handler = this.routerExceptionsFilter.create({}, callback, void 0); + const proxy = this.routerProxy.createExceptionLayerProxy(callback, handler); + const applicationRef = this.container.getHttpAdapterRef(); + applicationRef.setErrorHandler && applicationRef.setErrorHandler(proxy, this.applicationConfig.getGlobalPrefix()); + } + mapExternalException(err) { + switch (true) { + // SyntaxError is thrown by Express body-parser when given invalid JSON (#422, #430) + // URIError is thrown by Express when given a path parameter with an invalid percentage + // encoding, e.g. '%FF' (#8915) + case (err instanceof SyntaxError || err instanceof URIError): + return new common_12.BadRequestException(err.message); + case this.isHttpFastifyError(err): + return new common_12.HttpException(err.message, err.statusCode); + default: + return err; + } + } + isHttpFastifyError(error) { + return error.statusCode !== void 0 && error instanceof Error && error.name === "FastifyError"; + } + getModulePathMetadata(metatype) { + const modulesContainer = this.container.getModules(); + const modulePath = Reflect.getMetadata(constants_1.MODULE_PATH + modulesContainer.applicationId, metatype); + return modulePath ?? Reflect.getMetadata(constants_1.MODULE_PATH, metatype); + } + getHostMetadata(metatype) { + return Reflect.getMetadata(constants_1.HOST_METADATA, metatype); + } + getVersionMetadata(metatype) { + const versioningConfig = this.applicationConfig.getVersioning(); + if (versioningConfig) { + return Reflect.getMetadata(constants_1.VERSION_METADATA, metatype) ?? versioningConfig.defaultVersion; + } + } + }; + exports2.RoutesResolver = RoutesResolver; + } +}); + +// node_modules/@nestjs/core/nest-application.js +var require_nest_application = __commonJS({ + "node_modules/@nestjs/core/nest-application.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NestApplication = void 0; + var common_12 = require_common(); + var logger_service_1 = require_logger_service(); + var load_package_util_1 = require_load_package_util(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var os_1 = require("os"); + var application_config_1 = require_application_config(); + var constants_1 = require_constants(); + var optional_require_1 = require_optional_require(); + var injector_1 = require_injector(); + var container_1 = require_container3(); + var middleware_module_1 = require_middleware_module(); + var utils_1 = require_utils8(); + var nest_application_context_1 = require_nest_application_context(); + var routes_resolver_1 = require_routes_resolver(); + var { SocketModule } = (0, optional_require_1.optionalRequire)("@nestjs/websockets/socket-module", () => require("@nestjs/websockets/socket-module")); + var { MicroservicesModule } = (0, optional_require_1.optionalRequire)("@nestjs/microservices/microservices-module", () => require("@nestjs/microservices/microservices-module")); + var NestApplication = class _NestApplication extends nest_application_context_1.NestApplicationContext { + static { + __name(this, "NestApplication"); + } + constructor(container, httpAdapter, config, graphInspector, appOptions = {}) { + super(container, appOptions); + this.httpAdapter = httpAdapter; + this.config = config; + this.graphInspector = graphInspector; + this.logger = new logger_service_1.Logger(_NestApplication.name, { + timestamp: true + }); + this.middlewareContainer = new container_1.MiddlewareContainer(this.container); + this.microservicesModule = MicroservicesModule && new MicroservicesModule(); + this.socketModule = SocketModule && new SocketModule(); + this.microservices = []; + this.isListening = false; + this.isWsModuleRegistered = false; + this.selectContextModule(); + this.registerHttpServer(); + this.injector = new injector_1.Injector({ + preview: this.appOptions.preview, + instanceDecorator: appOptions.instrument?.instanceDecorator + }); + this.middlewareModule = new middleware_module_1.MiddlewareModule(); + this.routesResolver = new routes_resolver_1.RoutesResolver(this.container, this.config, this.injector, this.graphInspector); + } + async dispose() { + this.socketModule && await this.socketModule.close(); + this.microservicesModule && await this.microservicesModule.close(); + this.httpAdapter && await this.httpAdapter.close(); + await Promise.all((0, iterare_1.iterate)(this.microservices).map(async (microservice) => { + microservice.setIsTerminated(true); + await microservice.close(); + })); + } + getHttpAdapter() { + return this.httpAdapter; + } + registerHttpServer() { + this.httpServer = this.createServer(); + } + getUnderlyingHttpServer() { + return this.httpAdapter.getHttpServer(); + } + applyOptions() { + if (!this.appOptions || !this.appOptions.cors) { + return void 0; + } + const passCustomOptions = (0, shared_utils_1.isObject)(this.appOptions.cors) || (0, shared_utils_1.isFunction)(this.appOptions.cors); + if (!passCustomOptions) { + return this.enableCors(); + } + return this.enableCors(this.appOptions.cors); + } + createServer() { + this.httpAdapter.initHttpServer(this.appOptions); + return this.httpAdapter.getHttpServer(); + } + async registerModules() { + this.registerWsModule(); + if (this.microservicesModule) { + this.microservicesModule.register(this.container, this.graphInspector, this.config, this.appOptions); + this.microservicesModule.setupClients(this.container); + } + await this.middlewareModule.register(this.middlewareContainer, this.container, this.config, this.injector, this.httpAdapter, this.graphInspector, this.appOptions); + } + registerWsModule() { + if (!this.socketModule) { + return; + } + this.socketModule.register(this.container, this.config, this.graphInspector, this.appOptions, this.httpServer); + this.isWsModuleRegistered = true; + } + async init() { + if (this.isInitialized) { + return this; + } + this.applyOptions(); + await this.httpAdapter?.init?.(); + const useBodyParser = this.appOptions && this.appOptions.bodyParser !== false; + useBodyParser && this.registerParserMiddleware(); + await this.registerModules(); + await this.registerRouter(); + await this.callInitHook(); + await this.registerRouterHooks(); + await this.callBootstrapHook(); + this.isInitialized = true; + this.logger.log(constants_1.MESSAGES.APPLICATION_READY); + return this; + } + registerParserMiddleware() { + const prefix = this.config.getGlobalPrefix(); + const rawBody = !!this.appOptions?.rawBody; + this.httpAdapter.registerParserMiddleware(prefix, rawBody); + } + async registerRouter() { + await this.registerMiddleware(this.httpAdapter); + const prefix = this.config.getGlobalPrefix(); + const basePath = (0, shared_utils_1.addLeadingSlash)(prefix); + this.routesResolver.resolve(this.httpAdapter, basePath); + } + async registerRouterHooks() { + this.routesResolver.registerNotFoundHandler(); + this.routesResolver.registerExceptionHandler(); + } + connectMicroservice(microserviceOptions, hybridAppOptions = {}) { + const { NestMicroservice } = (0, load_package_util_1.loadPackage)("@nestjs/microservices", "NestFactory", () => require("@nestjs/microservices")); + const { inheritAppConfig } = hybridAppOptions; + const applicationConfig = inheritAppConfig ? this.config : new application_config_1.ApplicationConfig(); + const instance = new NestMicroservice(this.container, microserviceOptions, this.graphInspector, applicationConfig); + if (!hybridAppOptions.deferInitialization) { + instance.registerListeners(); + instance.setIsInitialized(true); + instance.setIsInitHookCalled(true); + } + this.microservices.push(instance); + return instance; + } + getMicroservices() { + return this.microservices; + } + getHttpServer() { + return this.httpServer; + } + async startAllMicroservices() { + this.assertNotInPreviewMode("startAllMicroservices"); + await Promise.all(this.microservices.map((msvc) => msvc.listen())); + return this; + } + use(...args) { + this.httpAdapter.use(...args); + return this; + } + useBodyParser(...args) { + if (!("useBodyParser" in this.httpAdapter)) { + this.logger.warn("Your HTTP Adapter does not support `.useBodyParser`."); + return this; + } + const [parserType, ...otherArgs] = args; + const rawBody = !!this.appOptions.rawBody; + this.httpAdapter.useBodyParser?.(...[parserType, rawBody, ...otherArgs]); + return this; + } + enableCors(options) { + this.httpAdapter.enableCors(options); + } + enableVersioning(options = { type: common_12.VersioningType.URI }) { + this.config.enableVersioning(options); + return this; + } + async listen(port, ...args) { + this.assertNotInPreviewMode("listen"); + if (!this.isInitialized) { + await this.init(); + } + const httpAdapterHost = this.container.getHttpAdapterHostRef(); + return new Promise((resolve, reject) => { + const errorHandler = /* @__PURE__ */ __name((e) => { + this.logger.error(e?.toString?.()); + reject(e); + }, "errorHandler"); + this.httpServer.once("error", errorHandler); + const isCallbackInOriginalArgs = (0, shared_utils_1.isFunction)(args[args.length - 1]); + const listenFnArgs = isCallbackInOriginalArgs ? args.slice(0, args.length - 1) : args; + this.httpAdapter.listen(port, ...listenFnArgs, (...originalCallbackArgs) => { + if (this.appOptions?.autoFlushLogs ?? true) { + this.flushLogs(); + } + if (originalCallbackArgs[0] instanceof Error) { + return reject(originalCallbackArgs[0]); + } + const address = this.httpServer.address(); + if (address) { + this.httpServer.removeListener("error", errorHandler); + this.isListening = true; + httpAdapterHost.listening = true; + resolve(this.httpServer); + } + if (isCallbackInOriginalArgs) { + args[args.length - 1](...originalCallbackArgs); + } + }); + }); + } + async getUrl() { + return new Promise((resolve, reject) => { + if (!this.isListening) { + this.logger.error(constants_1.MESSAGES.CALL_LISTEN_FIRST); + reject(constants_1.MESSAGES.CALL_LISTEN_FIRST); + return; + } + const address = this.httpServer.address(); + resolve(this.formatAddress(address)); + }); + } + formatAddress(address) { + if ((0, shared_utils_1.isString)(address)) { + if ((0, os_1.platform)() === "win32") { + return address; + } + const basePath = encodeURIComponent(address); + return `${this.getProtocol()}+unix://${basePath}`; + } + let host = this.host(); + if (address && address.family === "IPv6") { + if (host === "::") { + host = "[::1]"; + } else { + host = `[${host}]`; + } + } else if (host === "0.0.0.0") { + host = "127.0.0.1"; + } + return `${this.getProtocol()}://${host}:${address.port}`; + } + setGlobalPrefix(prefix, options) { + this.config.setGlobalPrefix(prefix); + if (options) { + const exclude = options?.exclude ? (0, utils_1.mapToExcludeRoute)(options.exclude) : []; + this.config.setGlobalPrefixOptions({ + ...options, + exclude + }); + } + return this; + } + useWebSocketAdapter(adapter) { + if (this.isWsModuleRegistered) { + this.logger.warn("useWebSocketAdapter() was called after WebSocket gateways were already initialized. The provided adapter will be stored but will NOT be applied to existing gateways \u2014 they remain bound to the previously installed adapter. To install a custom adapter, call app.useWebSocketAdapter(...) BEFORE app.init() (or app.listen())."); + } + this.config.setIoAdapter(adapter); + return this; + } + useGlobalFilters(...filters) { + filters = this.applyInstanceDecoratorIfRegistered(...filters); + this.config.useGlobalFilters(...filters); + filters.forEach((item) => this.graphInspector.insertOrphanedEnhancer({ + subtype: "filter", + ref: item + })); + return this; + } + useGlobalPipes(...pipes) { + pipes = this.applyInstanceDecoratorIfRegistered(...pipes); + this.config.useGlobalPipes(...pipes); + pipes.forEach((item) => this.graphInspector.insertOrphanedEnhancer({ + subtype: "pipe", + ref: item + })); + return this; + } + useGlobalInterceptors(...interceptors) { + interceptors = this.applyInstanceDecoratorIfRegistered(...interceptors); + this.config.useGlobalInterceptors(...interceptors); + interceptors.forEach((item) => this.graphInspector.insertOrphanedEnhancer({ + subtype: "interceptor", + ref: item + })); + return this; + } + useGlobalGuards(...guards) { + guards = this.applyInstanceDecoratorIfRegistered(...guards); + this.config.useGlobalGuards(...guards); + guards.forEach((item) => this.graphInspector.insertOrphanedEnhancer({ + subtype: "guard", + ref: item + })); + return this; + } + useStaticAssets(pathOrOptions, options) { + this.httpAdapter.useStaticAssets && this.httpAdapter.useStaticAssets(pathOrOptions, options); + return this; + } + setBaseViewsDir(path) { + this.httpAdapter.setBaseViewsDir && this.httpAdapter.setBaseViewsDir(path); + return this; + } + setViewEngine(engineOrOptions) { + this.httpAdapter.setViewEngine && this.httpAdapter.setViewEngine(engineOrOptions); + return this; + } + host() { + const address = this.httpServer.address(); + if ((0, shared_utils_1.isString)(address)) { + return void 0; + } + return address && address.address; + } + getProtocol() { + return this.appOptions && this.appOptions.httpsOptions ? "https" : "http"; + } + async registerMiddleware(instance) { + await this.middlewareModule.registerMiddleware(this.middlewareContainer, instance); + } + applyInstanceDecoratorIfRegistered(...instances) { + if (this.appOptions.instrument?.instanceDecorator) { + return instances.map((instance) => this.appOptions.instrument.instanceDecorator(instance)); + } + return instances; + } + }; + exports2.NestApplication = NestApplication; + } +}); + +// node_modules/@nestjs/core/errors/exception-handler.js +var require_exception_handler = __commonJS({ + "node_modules/@nestjs/core/errors/exception-handler.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExceptionHandler = void 0; + var logger_service_1 = require_logger_service(); + var ExceptionHandler = class _ExceptionHandler { + static { + __name(this, "ExceptionHandler"); + } + handle(exception) { + _ExceptionHandler.logger.error(exception); + } + }; + exports2.ExceptionHandler = ExceptionHandler; + ExceptionHandler.logger = new logger_service_1.Logger(ExceptionHandler.name); + } +}); + +// node_modules/@nestjs/core/errors/exceptions-zone.js +var require_exceptions_zone = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions-zone.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExceptionsZone = void 0; + var common_12 = require_common(); + var exception_handler_1 = require_exception_handler(); + var DEFAULT_TEARDOWN = /* @__PURE__ */ __name(() => process.exit(1), "DEFAULT_TEARDOWN"); + var ExceptionsZone = class { + static { + __name(this, "ExceptionsZone"); + } + static run(callback, teardown = DEFAULT_TEARDOWN, autoFlushLogs) { + try { + callback(); + } catch (e) { + this.exceptionHandler.handle(e); + if (autoFlushLogs) { + common_12.Logger.flush(); + } + teardown(e); + } + } + static async asyncRun(callback, teardown = DEFAULT_TEARDOWN, autoFlushLogs) { + try { + await callback(); + } catch (e) { + this.exceptionHandler.handle(e); + if (autoFlushLogs) { + common_12.Logger.flush(); + } + teardown(e); + } + } + }; + exports2.ExceptionsZone = ExceptionsZone; + ExceptionsZone.exceptionHandler = new exception_handler_1.ExceptionHandler(); + } +}); + +// node_modules/@nestjs/core/helpers/load-adapter.js +var require_load_adapter = __commonJS({ + "node_modules/@nestjs/core/helpers/load-adapter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.loadAdapter = loadAdapter; + var common_12 = require_common(); + var MISSING_REQUIRED_DEPENDENCY = /* @__PURE__ */ __name((defaultPlatform, transport) => `No driver (${transport}) has been selected. In order to take advantage of the default driver, please, ensure to install the "${defaultPlatform}" package ($ npm install ${defaultPlatform}).`, "MISSING_REQUIRED_DEPENDENCY"); + var logger = new common_12.Logger("PackageLoader"); + function loadAdapter(defaultPlatform, transport, loaderFn) { + try { + return loaderFn ? loaderFn() : require(defaultPlatform); + } catch (e) { + logger.error(MISSING_REQUIRED_DEPENDENCY(defaultPlatform, transport)); + process.exit(1); + } + } + __name(loadAdapter, "loadAdapter"); + } +}); + +// node_modules/@nestjs/core/helpers/rethrow.js +var require_rethrow = __commonJS({ + "node_modules/@nestjs/core/helpers/rethrow.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.rethrow = void 0; + var rethrow = /* @__PURE__ */ __name((err) => { + throw err; + }, "rethrow"); + exports2.rethrow = rethrow; + } +}); + +// node_modules/@nestjs/core/injector/instance-loader.js +var require_instance_loader = __commonJS({ + "node_modules/@nestjs/core/injector/instance-loader.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InstanceLoader = void 0; + var common_12 = require_common(); + var messages_1 = require_messages2(); + var internal_core_module_1 = require_internal_core_module(); + var InstanceLoader = class _InstanceLoader { + static { + __name(this, "InstanceLoader"); + } + constructor(container, injector, graphInspector, logger = new common_12.Logger(_InstanceLoader.name, { + timestamp: true + })) { + this.container = container; + this.injector = injector; + this.graphInspector = graphInspector; + this.logger = logger; + } + setLogger(logger) { + this.logger = logger; + } + async createInstancesOfDependencies(modules = this.container.getModules()) { + this.createPrototypes(modules); + try { + await this.createInstances(modules); + } catch (err) { + this.graphInspector.inspectModules(modules); + this.graphInspector.registerPartial(err); + throw err; + } + this.graphInspector.inspectModules(modules); + } + createPrototypes(modules) { + modules.forEach((moduleRef) => { + this.createPrototypesOfProviders(moduleRef); + this.createPrototypesOfInjectables(moduleRef); + this.createPrototypesOfControllers(moduleRef); + }); + } + async createInstances(modules) { + await Promise.all([...modules.values()].map(async (moduleRef) => { + await this.createInstancesOfProviders(moduleRef); + await this.createInstancesOfInjectables(moduleRef); + await this.createInstancesOfControllers(moduleRef); + const { name } = moduleRef; + this.isModuleWhitelisted(name) && this.logger.log((0, messages_1.MODULE_INIT_MESSAGE)`${name}`); + })); + } + createPrototypesOfProviders(moduleRef) { + const { providers } = moduleRef; + providers.forEach((wrapper) => this.injector.loadPrototype(wrapper, providers)); + } + async createInstancesOfProviders(moduleRef) { + const { providers } = moduleRef; + const wrappers = [...providers.values()]; + await Promise.all(wrappers.map(async (item) => { + await this.injector.loadProvider(item, moduleRef); + this.graphInspector.inspectInstanceWrapper(item, moduleRef); + })); + } + createPrototypesOfControllers(moduleRef) { + const { controllers } = moduleRef; + controllers.forEach((wrapper) => this.injector.loadPrototype(wrapper, controllers)); + } + async createInstancesOfControllers(moduleRef) { + const { controllers } = moduleRef; + const wrappers = [...controllers.values()]; + await Promise.all(wrappers.map(async (item) => { + await this.injector.loadController(item, moduleRef); + this.graphInspector.inspectInstanceWrapper(item, moduleRef); + })); + } + createPrototypesOfInjectables(moduleRef) { + const { injectables } = moduleRef; + injectables.forEach((wrapper) => this.injector.loadPrototype(wrapper, injectables)); + } + async createInstancesOfInjectables(moduleRef) { + const { injectables } = moduleRef; + const wrappers = [...injectables.values()]; + await Promise.all(wrappers.map(async (item) => { + await this.injector.loadInjectable(item, moduleRef); + this.graphInspector.inspectInstanceWrapper(item, moduleRef); + })); + } + isModuleWhitelisted(name) { + return name !== internal_core_module_1.InternalCoreModule.name; + } + }; + exports2.InstanceLoader = InstanceLoader; + } +}); + +// node_modules/@nestjs/core/inspector/noop-graph-inspector.js +var require_noop_graph_inspector = __commonJS({ + "node_modules/@nestjs/core/inspector/noop-graph-inspector.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NoopGraphInspector = void 0; + var graph_inspector_1 = require_graph_inspector(); + var noop = /* @__PURE__ */ __name(() => { + }, "noop"); + exports2.NoopGraphInspector = new Proxy(graph_inspector_1.GraphInspector.prototype, { + get: /* @__PURE__ */ __name(() => noop, "get") + }); + } +}); + +// node_modules/@nestjs/core/errors/exceptions/invalid-class-module.exception.js +var require_invalid_class_module_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/invalid-class-module.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InvalidClassModuleException = void 0; + var messages_1 = require_messages(); + var runtime_exception_1 = require_runtime_exception(); + var InvalidClassModuleException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "InvalidClassModuleException"); + } + constructor(metatypeUsedAsAModule, scope, classKind) { + super((0, messages_1.USING_INVALID_CLASS_AS_A_MODULE_MESSAGE)(metatypeUsedAsAModule, scope, classKind)); + } + }; + exports2.InvalidClassModuleException = InvalidClassModuleException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/invalid-module.exception.js +var require_invalid_module_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/invalid-module.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InvalidModuleException = void 0; + var messages_1 = require_messages(); + var runtime_exception_1 = require_runtime_exception(); + var InvalidModuleException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "InvalidModuleException"); + } + constructor(parentModule, index, scope, receivedValue) { + super((0, messages_1.INVALID_MODULE_MESSAGE)(parentModule, index, scope, receivedValue)); + } + }; + exports2.InvalidModuleException = InvalidModuleException; + } +}); + +// node_modules/@nestjs/core/errors/exceptions/undefined-module.exception.js +var require_undefined_module_exception = __commonJS({ + "node_modules/@nestjs/core/errors/exceptions/undefined-module.exception.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UndefinedModuleException = void 0; + var runtime_exception_1 = require_runtime_exception(); + var messages_1 = require_messages(); + var UndefinedModuleException = class extends runtime_exception_1.RuntimeException { + static { + __name(this, "UndefinedModuleException"); + } + constructor(parentModule, index, scope) { + super((0, messages_1.UNDEFINED_MODULE_MESSAGE)(parentModule, index, scope)); + } + }; + exports2.UndefinedModuleException = UndefinedModuleException; + } +}); + +// node_modules/@nestjs/core/injector/internal-core-module/internal-core-module-factory.js +var require_internal_core_module_factory = __commonJS({ + "node_modules/@nestjs/core/injector/internal-core-module/internal-core-module-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.InternalCoreModuleFactory = void 0; + var common_12 = require_common(); + var external_context_creator_1 = require_external_context_creator(); + var http_adapter_host_1 = require_http_adapter_host(); + var initialize_on_preview_allowlist_1 = require_initialize_on_preview_allowlist(); + var serialized_graph_1 = require_serialized_graph(); + var injector_1 = require_injector(); + var instance_loader_1 = require_instance_loader(); + var lazy_module_loader_1 = require_lazy_module_loader(); + var modules_container_1 = require_modules_container(); + var internal_core_module_1 = require_internal_core_module(); + var InternalCoreModuleFactory = class { + static { + __name(this, "InternalCoreModuleFactory"); + } + static create(container, scanner, moduleCompiler, httpAdapterHost, graphInspector, moduleOverrides) { + const lazyModuleLoaderFactory = /* @__PURE__ */ __name(() => { + const logger = new common_12.Logger(lazy_module_loader_1.LazyModuleLoader.name, { + timestamp: false + }); + const injector = new injector_1.Injector({ + preview: container.contextOptions?.preview, + instanceDecorator: container.contextOptions?.instrument?.instanceDecorator + }); + const instanceLoader = new instance_loader_1.InstanceLoader(container, injector, graphInspector, logger); + return new lazy_module_loader_1.LazyModuleLoader(scanner, instanceLoader, moduleCompiler, container.getModules(), moduleOverrides); + }, "lazyModuleLoaderFactory"); + initialize_on_preview_allowlist_1.InitializeOnPreviewAllowlist.add(internal_core_module_1.InternalCoreModule); + return internal_core_module_1.InternalCoreModule.register([ + { + provide: external_context_creator_1.ExternalContextCreator, + useFactory: /* @__PURE__ */ __name(() => external_context_creator_1.ExternalContextCreator.fromContainer(container), "useFactory") + }, + { + provide: modules_container_1.ModulesContainer, + useFactory: /* @__PURE__ */ __name(() => container.getModules(), "useFactory") + }, + { + provide: http_adapter_host_1.HttpAdapterHost, + useFactory: /* @__PURE__ */ __name(() => httpAdapterHost, "useFactory") + }, + { + provide: lazy_module_loader_1.LazyModuleLoader, + useFactory: lazyModuleLoaderFactory + }, + { + provide: serialized_graph_1.SerializedGraph, + useFactory: /* @__PURE__ */ __name(() => container.serializedGraph, "useFactory") + } + ]); + } + }; + exports2.InternalCoreModuleFactory = InternalCoreModuleFactory; + } +}); + +// node_modules/@nestjs/core/injector/topology-tree/tree-node.js +var require_tree_node = __commonJS({ + "node_modules/@nestjs/core/injector/topology-tree/tree-node.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TreeNode = void 0; + var TreeNode = class { + static { + __name(this, "TreeNode"); + } + constructor({ value, parent }) { + this.children = /* @__PURE__ */ new Set(); + this.value = value; + this.parent = parent; + } + addChild(child) { + this.children.add(child); + } + removeChild(child) { + this.children.delete(child); + } + relink(parent) { + this.parent?.removeChild(this); + this.parent = parent; + this.parent.addChild(this); + } + getDepth() { + const visited = /* @__PURE__ */ new Set(); + let depth = 0; + let current = this; + while (current) { + depth++; + current = current.parent; + if (visited.has(current)) { + return -1; + } + visited.add(current); + } + return depth; + } + hasCycleWith(target) { + const visited = /* @__PURE__ */ new Set(); + let current = this; + while (current) { + if (current.value === target) { + return true; + } + current = current.parent; + if (visited.has(current)) { + return false; + } + visited.add(current); + } + return false; + } + }; + exports2.TreeNode = TreeNode; + } +}); + +// node_modules/@nestjs/core/injector/topology-tree/topology-tree.js +var require_topology_tree = __commonJS({ + "node_modules/@nestjs/core/injector/topology-tree/topology-tree.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TopologyTree = void 0; + var tree_node_1 = require_tree_node(); + var TopologyTree = class { + static { + __name(this, "TopologyTree"); + } + constructor(moduleRef) { + this.links = /* @__PURE__ */ new Map(); + this.root = new tree_node_1.TreeNode({ + value: moduleRef, + parent: null + }); + this.links.set(moduleRef, this.root); + this.traverseAndMapToTree(this.root); + } + walk(callback) { + function walkNode(node, depth = 1) { + callback(node.value, depth); + node.children.forEach((child) => walkNode(child, depth + 1)); + } + __name(walkNode, "walkNode"); + walkNode(this.root); + } + traverseAndMapToTree(node, depth = 1) { + if (!node.value.imports) { + return; + } + node.value.imports.forEach((child) => { + if (!child) { + return; + } + if (this.links.has(child)) { + const existingSubtree = this.links.get(child); + if (node.hasCycleWith(child)) { + return; + } + const existingDepth = existingSubtree.getDepth(); + if (existingDepth < depth) { + existingSubtree.relink(node); + } + return; + } + const childNode = new tree_node_1.TreeNode({ + value: child, + parent: node + }); + node.addChild(childNode); + this.links.set(child, childNode); + this.traverseAndMapToTree(childNode, depth + 1); + }); + } + }; + exports2.TopologyTree = TopologyTree; + } +}); + +// node_modules/@nestjs/core/scanner.js +var require_scanner = __commonJS({ + "node_modules/@nestjs/core/scanner.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DependenciesScanner = void 0; + var constants_1 = require_constants2(); + var interfaces_1 = require_interfaces(); + var shared_utils_1 = require_shared_utils(); + var iterare_1 = require_lib(); + var application_config_1 = require_application_config(); + var constants_2 = require_constants(); + var circular_dependency_exception_1 = require_circular_dependency_exception(); + var invalid_class_module_exception_1 = require_invalid_class_module_exception(); + var invalid_module_exception_1 = require_invalid_module_exception(); + var undefined_module_exception_1 = require_undefined_module_exception(); + var get_class_scope_1 = require_get_class_scope(); + var internal_core_module_factory_1 = require_internal_core_module_factory(); + var topology_tree_1 = require_topology_tree(); + var uuid_factory_1 = require_uuid_factory(); + var DependenciesScanner = class { + static { + __name(this, "DependenciesScanner"); + } + constructor(container, metadataScanner, graphInspector, applicationConfig = new application_config_1.ApplicationConfig()) { + this.container = container; + this.metadataScanner = metadataScanner; + this.graphInspector = graphInspector; + this.applicationConfig = applicationConfig; + this.applicationProvidersApplyMap = []; + } + async scan(module3, options) { + await this.registerCoreModule(options?.overrides); + await this.scanForModules({ + moduleDefinition: module3, + overrides: options?.overrides + }); + await this.scanModulesForDependencies(); + this.addScopedEnhancersMetadata(); + this.calculateModulesDistance(); + this.container.bindGlobalScope(); + } + async scanForModules({ moduleDefinition, lazy, scope = [], ctxRegistry = [], overrides = [] }) { + const { moduleRef: moduleInstance, inserted: moduleInserted } = await this.insertOrOverrideModule(moduleDefinition, overrides, scope) ?? {}; + moduleDefinition = this.getOverrideModuleByModule(moduleDefinition, overrides)?.newModule ?? moduleDefinition; + moduleDefinition = moduleDefinition instanceof Promise ? await moduleDefinition : moduleDefinition; + ctxRegistry.push(moduleDefinition); + if (this.isForwardReference(moduleDefinition)) { + moduleDefinition = moduleDefinition.forwardRef(); + } + const modules = !this.isDynamicModule(moduleDefinition) ? this.reflectMetadata(constants_1.MODULE_METADATA.IMPORTS, moduleDefinition) : [ + ...this.reflectMetadata(constants_1.MODULE_METADATA.IMPORTS, moduleDefinition.module), + ...moduleDefinition.imports || [] + ]; + let registeredModuleRefs = []; + for (const [index, innerModule] of modules.entries()) { + if (innerModule === void 0) { + throw new undefined_module_exception_1.UndefinedModuleException(moduleDefinition, index, scope); + } + if (!innerModule) { + throw new invalid_module_exception_1.InvalidModuleException(moduleDefinition, index, scope, innerModule); + } + if (ctxRegistry.includes(innerModule)) { + continue; + } + const moduleRefs = await this.scanForModules({ + moduleDefinition: innerModule, + scope: [].concat(scope, moduleDefinition), + ctxRegistry, + overrides, + lazy + }); + registeredModuleRefs = registeredModuleRefs.concat(moduleRefs); + } + if (!moduleInstance) { + return registeredModuleRefs; + } + if (lazy && moduleInserted) { + this.container.bindGlobalsToImports(moduleInstance); + } + return [moduleInstance].concat(registeredModuleRefs); + } + async insertModule(moduleDefinition, scope) { + const moduleToAdd = this.isForwardReference(moduleDefinition) ? moduleDefinition.forwardRef() : moduleDefinition; + if (this.isInjectable(moduleToAdd)) { + throw new invalid_class_module_exception_1.InvalidClassModuleException(moduleDefinition, scope, "provider"); + } + if (this.isController(moduleToAdd)) { + throw new invalid_class_module_exception_1.InvalidClassModuleException(moduleDefinition, scope, "controller"); + } + if (this.isExceptionFilter(moduleToAdd)) { + throw new invalid_class_module_exception_1.InvalidClassModuleException(moduleDefinition, scope, "filter"); + } + return this.container.addModule(moduleToAdd, scope); + } + async scanModulesForDependencies(modules = this.container.getModules()) { + for (const [token, { metatype }] of modules) { + await this.reflectImports(metatype, token, metatype.name); + this.reflectProviders(metatype, token); + this.reflectControllers(metatype, token); + this.reflectExports(metatype, token); + } + } + async reflectImports(module3, token, context) { + const modules = [ + ...this.reflectMetadata(constants_1.MODULE_METADATA.IMPORTS, module3), + ...this.container.getDynamicMetadataByToken(token, constants_1.MODULE_METADATA.IMPORTS) + ]; + for (const related of modules) { + await this.insertImport(related, token, context); + } + } + reflectProviders(module3, token) { + const providers = [ + ...this.reflectMetadata(constants_1.MODULE_METADATA.PROVIDERS, module3), + ...this.container.getDynamicMetadataByToken(token, constants_1.MODULE_METADATA.PROVIDERS) + ]; + providers.forEach((provider) => { + this.insertProvider(provider, token); + this.reflectDynamicMetadata(provider, token); + }); + } + reflectControllers(module3, token) { + const controllers = [ + ...this.reflectMetadata(constants_1.MODULE_METADATA.CONTROLLERS, module3), + ...this.container.getDynamicMetadataByToken(token, constants_1.MODULE_METADATA.CONTROLLERS) + ]; + controllers.forEach((item) => { + this.insertController(item, token); + this.reflectDynamicMetadata(item, token); + }); + } + reflectDynamicMetadata(cls, token) { + if (!cls || !cls.prototype) { + return; + } + this.reflectInjectables(cls, token, constants_1.GUARDS_METADATA); + this.reflectInjectables(cls, token, constants_1.INTERCEPTORS_METADATA); + this.reflectInjectables(cls, token, constants_1.EXCEPTION_FILTERS_METADATA); + this.reflectInjectables(cls, token, constants_1.PIPES_METADATA); + this.reflectParamInjectables(cls, token, constants_1.ROUTE_ARGS_METADATA); + } + reflectExports(module3, token) { + const exports3 = [ + ...this.reflectMetadata(constants_1.MODULE_METADATA.EXPORTS, module3), + ...this.container.getDynamicMetadataByToken(token, constants_1.MODULE_METADATA.EXPORTS) + ]; + exports3.forEach((exportedProvider) => this.insertExportedProviderOrModule(exportedProvider, token)); + } + reflectInjectables(component, token, metadataKey) { + const controllerInjectables = this.reflectMetadata(metadataKey, component); + const methodInjectables = this.metadataScanner.getAllMethodNames(component.prototype).reduce((acc, method) => { + const methodInjectable = this.reflectKeyMetadata(component, metadataKey, method); + if (methodInjectable) { + acc.push(methodInjectable); + } + return acc; + }, []); + controllerInjectables.forEach((injectable) => this.insertInjectable(injectable, token, component, constants_1.ENHANCER_KEY_TO_SUBTYPE_MAP[metadataKey])); + methodInjectables.forEach((methodInjectable) => { + methodInjectable.metadata.forEach((injectable) => this.insertInjectable(injectable, token, component, constants_1.ENHANCER_KEY_TO_SUBTYPE_MAP[metadataKey], methodInjectable.methodKey)); + }); + } + reflectParamInjectables(component, token, metadataKey) { + const paramsMethods = this.metadataScanner.getAllMethodNames(component.prototype); + paramsMethods.forEach((methodKey) => { + const metadata = Reflect.getMetadata(metadataKey, component, methodKey); + if (!metadata) { + return; + } + const params = Object.values(metadata); + params.map((item) => item.pipes).flat(1).forEach((injectable) => this.insertInjectable(injectable, token, component, "pipe", methodKey)); + }); + } + reflectKeyMetadata(component, key, methodKey) { + let prototype = component.prototype; + do { + const descriptor = Reflect.getOwnPropertyDescriptor(prototype, methodKey); + if (!descriptor) { + continue; + } + const metadata = Reflect.getMetadata(key, descriptor.value); + if (!metadata) { + return; + } + return { methodKey, metadata }; + } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype && prototype); + return void 0; + } + calculateModulesDistance() { + const modulesGenerator = this.container.getModules().values(); + modulesGenerator.next(); + const rootModule = modulesGenerator.next().value; + if (!rootModule) { + return; + } + const tree = new topology_tree_1.TopologyTree(rootModule); + tree.walk((moduleRef, depth) => { + if (moduleRef.isGlobal) { + return; + } + moduleRef.distance = depth; + }); + } + async insertImport(related, token, context) { + if ((0, shared_utils_1.isUndefined)(related)) { + throw new circular_dependency_exception_1.CircularDependencyException(context); + } + if (this.isForwardReference(related)) { + return this.container.addImport(related.forwardRef(), token); + } + await this.container.addImport(related, token); + } + isCustomProvider(provider) { + return provider && !(0, shared_utils_1.isNil)(provider.provide); + } + insertProvider(provider, token) { + const isCustomProvider = this.isCustomProvider(provider); + if (!isCustomProvider) { + return this.container.addProvider(provider, token); + } + const applyProvidersMap = this.getApplyProvidersMap(); + const providersKeys = Object.keys(applyProvidersMap); + const type = provider.provide; + if (!providersKeys.includes(type)) { + return this.container.addProvider(provider, token); + } + const uuid = uuid_factory_1.UuidFactory.get(type.toString()); + const providerToken = `${type} (UUID: ${uuid})`; + let scope = provider.scope; + if ((0, shared_utils_1.isNil)(scope) && provider.useClass) { + scope = (0, get_class_scope_1.getClassScope)(provider.useClass); + } + this.applicationProvidersApplyMap.push({ + type, + moduleKey: token, + providerKey: providerToken, + scope + }); + const newProvider = { + ...provider, + provide: providerToken, + scope + }; + const enhancerSubtype = constants_2.ENHANCER_TOKEN_TO_SUBTYPE_MAP[type]; + const factoryOrClassProvider = newProvider; + if (this.isRequestOrTransient(factoryOrClassProvider.scope)) { + return this.container.addInjectable(newProvider, token, enhancerSubtype); + } + this.container.addProvider(newProvider, token, enhancerSubtype); + } + insertInjectable(injectable, token, host, subtype, methodKey) { + if ((0, shared_utils_1.isFunction)(injectable)) { + const instanceWrapper = this.container.addInjectable(injectable, token, subtype, host); + this.graphInspector.insertEnhancerMetadataCache({ + moduleToken: token, + classRef: host, + enhancerInstanceWrapper: instanceWrapper, + targetNodeId: instanceWrapper.id, + subtype, + methodKey + }); + return instanceWrapper; + } else { + this.graphInspector.insertEnhancerMetadataCache({ + moduleToken: token, + classRef: host, + enhancerRef: injectable, + methodKey, + subtype + }); + } + } + insertExportedProviderOrModule(toExport, token) { + const fulfilledProvider = this.isForwardReference(toExport) ? toExport.forwardRef() : toExport; + this.container.addExportedProviderOrModule(fulfilledProvider, token); + } + insertController(controller, token) { + this.container.addController(controller, token); + } + insertOrOverrideModule(moduleDefinition, overrides, scope) { + const overrideModule = this.getOverrideModuleByModule(moduleDefinition, overrides); + if (overrideModule !== void 0) { + return this.overrideModule(moduleDefinition, overrideModule.newModule, scope); + } + return this.insertModule(moduleDefinition, scope); + } + getOverrideModuleByModule(module3, overrides) { + if (this.isForwardReference(module3)) { + return overrides.find((moduleToOverride) => { + return moduleToOverride.moduleToReplace === module3.forwardRef() || moduleToOverride.moduleToReplace.forwardRef?.() === module3.forwardRef(); + }); + } + return overrides.find((moduleToOverride) => moduleToOverride.moduleToReplace === module3); + } + async overrideModule(moduleToOverride, newModule, scope) { + return this.container.replaceModule(this.isForwardReference(moduleToOverride) ? moduleToOverride.forwardRef() : moduleToOverride, this.isForwardReference(newModule) ? newModule.forwardRef() : newModule, scope); + } + reflectMetadata(metadataKey, metatype) { + return Reflect.getMetadata(metadataKey, metatype) || []; + } + async registerCoreModule(overrides) { + const moduleDefinition = internal_core_module_factory_1.InternalCoreModuleFactory.create(this.container, this, this.container.getModuleCompiler(), this.container.getHttpAdapterHostRef(), this.graphInspector, overrides); + const [instance] = await this.scanForModules({ + moduleDefinition, + overrides + }); + this.container.registerCoreModuleRef(instance); + } + /** + * Add either request or transient globally scoped enhancers + * to all controllers metadata storage + */ + addScopedEnhancersMetadata() { + (0, iterare_1.iterate)(this.applicationProvidersApplyMap).filter((wrapper) => this.isRequestOrTransient(wrapper.scope)).forEach(({ moduleKey, providerKey }) => { + const modulesContainer = this.container.getModules(); + const { injectables } = modulesContainer.get(moduleKey); + const instanceWrapper = injectables.get(providerKey); + const iterableIterator = modulesContainer.values(); + (0, iterare_1.iterate)(iterableIterator).map((moduleRef) => Array.from(moduleRef.controllers.values()).concat(moduleRef.entryProviders)).flatten().forEach((controllerOrEntryProvider) => controllerOrEntryProvider.addEnhancerMetadata(instanceWrapper)); + }); + } + applyApplicationProviders() { + const applyProvidersMap = this.getApplyProvidersMap(); + const applyRequestProvidersMap = this.getApplyRequestProvidersMap(); + const getInstanceWrapper = /* @__PURE__ */ __name((moduleKey, providerKey, collectionKey) => { + const modules = this.container.getModules(); + const collection = modules.get(moduleKey)[collectionKey]; + return collection.get(providerKey); + }, "getInstanceWrapper"); + this.applicationProvidersApplyMap.forEach(({ moduleKey, providerKey, type, scope }) => { + let instanceWrapper; + if (this.isRequestOrTransient(scope)) { + instanceWrapper = getInstanceWrapper(moduleKey, providerKey, "injectables"); + this.graphInspector.insertAttachedEnhancer(instanceWrapper); + return applyRequestProvidersMap[type](instanceWrapper); + } + instanceWrapper = getInstanceWrapper(moduleKey, providerKey, "providers"); + this.graphInspector.insertAttachedEnhancer(instanceWrapper); + applyProvidersMap[type](instanceWrapper.instance); + }); + } + getApplyProvidersMap() { + return { + [constants_2.APP_INTERCEPTOR]: (interceptor) => this.applicationConfig.addGlobalInterceptor(interceptor), + [constants_2.APP_PIPE]: (pipe) => this.applicationConfig.addGlobalPipe(pipe), + [constants_2.APP_GUARD]: (guard) => this.applicationConfig.addGlobalGuard(guard), + [constants_2.APP_FILTER]: (filter) => this.applicationConfig.addGlobalFilter(filter) + }; + } + getApplyRequestProvidersMap() { + return { + [constants_2.APP_INTERCEPTOR]: (interceptor) => this.applicationConfig.addGlobalRequestInterceptor(interceptor), + [constants_2.APP_PIPE]: (pipe) => this.applicationConfig.addGlobalRequestPipe(pipe), + [constants_2.APP_GUARD]: (guard) => this.applicationConfig.addGlobalRequestGuard(guard), + [constants_2.APP_FILTER]: (filter) => this.applicationConfig.addGlobalRequestFilter(filter) + }; + } + isDynamicModule(module3) { + return module3 && !!module3.module; + } + /** + * @param metatype + * @returns `true` if `metatype` is annotated with the `@Injectable()` decorator. + */ + isInjectable(metatype) { + return !!Reflect.getMetadata(constants_1.INJECTABLE_WATERMARK, metatype); + } + /** + * @param metatype + * @returns `true` if `metatype` is annotated with the `@Controller()` decorator. + */ + isController(metatype) { + return !!Reflect.getMetadata(constants_1.CONTROLLER_WATERMARK, metatype); + } + /** + * @param metatype + * @returns `true` if `metatype` is annotated with the `@Catch()` decorator. + */ + isExceptionFilter(metatype) { + return !!Reflect.getMetadata(constants_1.CATCH_WATERMARK, metatype); + } + isForwardReference(module3) { + return module3 && !!module3.forwardRef; + } + isRequestOrTransient(scope) { + return scope === interfaces_1.Scope.REQUEST || scope === interfaces_1.Scope.TRANSIENT; + } + }; + exports2.DependenciesScanner = DependenciesScanner; + } +}); + +// node_modules/object-assign/index.js +var require_object_assign = __commonJS({ + "node_modules/object-assign/index.js"(exports2, module2) { + "use strict"; + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + function toObject(val) { + if (val === null || val === void 0) { + throw new TypeError("Object.assign cannot be called with null or undefined"); + } + return Object(val); + } + __name(toObject, "toObject"); + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + var test1 = new String("abc"); + test1[5] = "de"; + if (Object.getOwnPropertyNames(test1)[0] === "5") { + return false; + } + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2["_" + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function(n) { + return test2[n]; + }); + if (order2.join("") !== "0123456789") { + return false; + } + var test3 = {}; + "abcdefghijklmnopqrst".split("").forEach(function(letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") { + return false; + } + return true; + } catch (err) { + return false; + } + } + __name(shouldUseNative, "shouldUseNative"); + module2.exports = shouldUseNative() ? Object.assign : function(target, source) { + var from; + var to = toObject(target); + var symbols; + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + return to; + }; + } +}); + +// node_modules/vary/index.js +var require_vary = __commonJS({ + "node_modules/vary/index.js"(exports2, module2) { + "use strict"; + module2.exports = vary; + module2.exports.append = append; + var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + function append(header, field) { + if (typeof header !== "string") { + throw new TypeError("header argument is required"); + } + if (!field) { + throw new TypeError("field argument is required"); + } + var fields = !Array.isArray(field) ? parse(String(field)) : field; + for (var j = 0; j < fields.length; j++) { + if (!FIELD_NAME_REGEXP.test(fields[j])) { + throw new TypeError("field argument contains an invalid header name"); + } + } + if (header === "*") { + return header; + } + var val = header; + var vals = parse(header.toLowerCase()); + if (fields.indexOf("*") !== -1 || vals.indexOf("*") !== -1) { + return "*"; + } + for (var i = 0; i < fields.length; i++) { + var fld = fields[i].toLowerCase(); + if (vals.indexOf(fld) === -1) { + vals.push(fld); + val = val ? val + ", " + fields[i] : fields[i]; + } + } + return val; + } + __name(append, "append"); + function parse(header) { + var end = 0; + var list = []; + var start = 0; + for (var i = 0, len = header.length; i < len; i++) { + switch (header.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i + 1; + } + break; + case 44: + list.push(header.substring(start, end)); + start = end = i + 1; + break; + default: + end = i + 1; + break; + } + } + list.push(header.substring(start, end)); + return list; + } + __name(parse, "parse"); + function vary(res, field) { + if (!res || !res.getHeader || !res.setHeader) { + throw new TypeError("res argument is required"); + } + var val = res.getHeader("Vary") || ""; + var header = Array.isArray(val) ? val.join(", ") : String(val); + if (val = append(header, field)) { + res.setHeader("Vary", val); + } + } + __name(vary, "vary"); + } +}); + +// node_modules/cors/lib/index.js +var require_lib2 = __commonJS({ + "node_modules/cors/lib/index.js"(exports2, module2) { + (function() { + "use strict"; + var assign = require_object_assign(); + var vary = require_vary(); + var defaults = { + origin: "*", + methods: "GET,HEAD,PUT,PATCH,POST,DELETE", + preflightContinue: false, + optionsSuccessStatus: 204 + }; + function isString(s) { + return typeof s === "string" || s instanceof String; + } + __name(isString, "isString"); + function isOriginAllowed(origin, allowedOrigin) { + if (Array.isArray(allowedOrigin)) { + for (var i = 0; i < allowedOrigin.length; ++i) { + if (isOriginAllowed(origin, allowedOrigin[i])) { + return true; + } + } + return false; + } else if (isString(allowedOrigin)) { + return origin === allowedOrigin; + } else if (allowedOrigin instanceof RegExp) { + return allowedOrigin.test(origin); + } else { + return !!allowedOrigin; + } + } + __name(isOriginAllowed, "isOriginAllowed"); + function configureOrigin(options, req) { + var requestOrigin = req.headers.origin, headers = [], isAllowed; + if (!options.origin || options.origin === "*") { + headers.push([{ + key: "Access-Control-Allow-Origin", + value: "*" + }]); + } else if (isString(options.origin)) { + headers.push([{ + key: "Access-Control-Allow-Origin", + value: options.origin + }]); + headers.push([{ + key: "Vary", + value: "Origin" + }]); + } else { + isAllowed = isOriginAllowed(requestOrigin, options.origin); + headers.push([{ + key: "Access-Control-Allow-Origin", + value: isAllowed ? requestOrigin : false + }]); + headers.push([{ + key: "Vary", + value: "Origin" + }]); + } + return headers; + } + __name(configureOrigin, "configureOrigin"); + function configureMethods(options) { + var methods = options.methods; + if (methods.join) { + methods = options.methods.join(","); + } + return { + key: "Access-Control-Allow-Methods", + value: methods + }; + } + __name(configureMethods, "configureMethods"); + function configureCredentials(options) { + if (options.credentials === true) { + return { + key: "Access-Control-Allow-Credentials", + value: "true" + }; + } + return null; + } + __name(configureCredentials, "configureCredentials"); + function configureAllowedHeaders(options, req) { + var allowedHeaders = options.allowedHeaders || options.headers; + var headers = []; + if (!allowedHeaders) { + allowedHeaders = req.headers["access-control-request-headers"]; + headers.push([{ + key: "Vary", + value: "Access-Control-Request-Headers" + }]); + } else if (allowedHeaders.join) { + allowedHeaders = allowedHeaders.join(","); + } + if (allowedHeaders && allowedHeaders.length) { + headers.push([{ + key: "Access-Control-Allow-Headers", + value: allowedHeaders + }]); + } + return headers; + } + __name(configureAllowedHeaders, "configureAllowedHeaders"); + function configureExposedHeaders(options) { + var headers = options.exposedHeaders; + if (!headers) { + return null; + } else if (headers.join) { + headers = headers.join(","); + } + if (headers && headers.length) { + return { + key: "Access-Control-Expose-Headers", + value: headers + }; + } + return null; + } + __name(configureExposedHeaders, "configureExposedHeaders"); + function configureMaxAge(options) { + var maxAge = (typeof options.maxAge === "number" || options.maxAge) && options.maxAge.toString(); + if (maxAge && maxAge.length) { + return { + key: "Access-Control-Max-Age", + value: maxAge + }; + } + return null; + } + __name(configureMaxAge, "configureMaxAge"); + function applyHeaders(headers, res) { + for (var i = 0, n = headers.length; i < n; i++) { + var header = headers[i]; + if (header) { + if (Array.isArray(header)) { + applyHeaders(header, res); + } else if (header.key === "Vary" && header.value) { + vary(res, header.value); + } else if (header.value) { + res.setHeader(header.key, header.value); + } + } + } + } + __name(applyHeaders, "applyHeaders"); + function cors(options, req, res, next) { + var headers = [], method = req.method && req.method.toUpperCase && req.method.toUpperCase(); + if (method === "OPTIONS") { + headers.push(configureOrigin(options, req)); + headers.push(configureCredentials(options)); + headers.push(configureMethods(options)); + headers.push(configureAllowedHeaders(options, req)); + headers.push(configureMaxAge(options)); + headers.push(configureExposedHeaders(options)); + applyHeaders(headers, res); + if (options.preflightContinue) { + next(); + } else { + res.statusCode = options.optionsSuccessStatus; + res.setHeader("Content-Length", "0"); + res.end(); + } + } else { + headers.push(configureOrigin(options, req)); + headers.push(configureCredentials(options)); + headers.push(configureExposedHeaders(options)); + applyHeaders(headers, res); + next(); + } + } + __name(cors, "cors"); + function middlewareWrapper(o) { + var optionsCallback = null; + if (typeof o === "function") { + optionsCallback = o; + } else { + optionsCallback = /* @__PURE__ */ __name(function(req, cb) { + cb(null, o); + }, "optionsCallback"); + } + return /* @__PURE__ */ __name(function corsMiddleware(req, res, next) { + optionsCallback(req, function(err, options) { + if (err) { + next(err); + } else { + var corsOptions = assign({}, defaults, options); + var originCallback = null; + if (corsOptions.origin && typeof corsOptions.origin === "function") { + originCallback = corsOptions.origin; + } else if (corsOptions.origin) { + originCallback = /* @__PURE__ */ __name(function(origin, cb) { + cb(null, corsOptions.origin); + }, "originCallback"); + } + if (originCallback) { + originCallback(req.headers.origin, function(err2, origin) { + if (err2 || !origin) { + next(err2); + } else { + corsOptions.origin = origin; + cors(corsOptions, req, res, next); + } + }); + } else { + next(); + } + } + }); + }, "corsMiddleware"); + } + __name(middlewareWrapper, "middlewareWrapper"); + module2.exports = middlewareWrapper; + })(); + } +}); + +// node_modules/ms/index.js +var require_ms = __commonJS({ + "node_modules/ms/index.js"(exports2, module2) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) + ); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + __name(parse, "parse"); + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + __name(fmtShort, "fmtShort"); + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + __name(fmtLong, "fmtLong"); + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + __name(plural, "plural"); + } +}); + +// node_modules/debug/src/common.js +var require_common2 = __commonJS({ + "node_modules/debug/src/common.js"(exports2, module2) { + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env).forEach((key) => { + createDebug[key] = env[key]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash = 0; + for (let i = 0; i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + __name(selectColor, "selectColor"); + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug(...args) { + if (!debug.enabled) { + return; + } + const self2 = debug; + const curr = Number(/* @__PURE__ */ new Date()); + const ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self2, val); + args.splice(index, 1); + index--; + } + return match; + }); + createDebug.formatArgs.call(self2, args); + const logFn = self2.log || createDebug.log; + logFn.apply(self2, args); + } + __name(debug, "debug"); + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; + Object.defineProperty(debug, "enabled", { + enumerable: true, + configurable: false, + get: /* @__PURE__ */ __name(() => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, "get"), + set: /* @__PURE__ */ __name((v) => { + enableOverride = v; + }, "set") + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug); + } + return debug; + } + __name(createDebug, "createDebug"); + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + __name(extend, "extend"); + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean); + for (const ns of split) { + if (ns[0] === "-") { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } + } + __name(enable, "enable"); + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) { + if (template[templateIndex] === "*") { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; + } + } + while (templateIndex < template.length && template[templateIndex] === "*") { + templateIndex++; + } + return templateIndex === template.length; + } + __name(matchesTemplate, "matchesTemplate"); + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + __name(disable, "disable"); + function enabled(name) { + for (const skip2 of createDebug.skips) { + if (matchesTemplate(name, skip2)) { + return false; + } + } + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; + } + } + return false; + } + __name(enabled, "enabled"); + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + __name(coerce, "coerce"); + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + __name(destroy, "destroy"); + createDebug.enable(createDebug.load()); + return createDebug; + } + __name(setup, "setup"); + module2.exports = setup; + } +}); + +// node_modules/debug/src/browser.js +var require_browser = __commonJS({ + "node_modules/debug/src/browser.js"(exports2, module2) { + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.storage = localstorage(); + exports2.destroy = /* @__PURE__ */ (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports2.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + let m; + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + __name(useColors, "useColors"); + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index++; + if (match === "%c") { + lastC = index; + } + }); + args.splice(lastC, 0, c); + } + __name(formatArgs, "formatArgs"); + exports2.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports2.storage.setItem("debug", namespaces); + } else { + exports2.storage.removeItem("debug"); + } + } catch (error) { + } + } + __name(save, "save"); + function load() { + let r; + try { + r = exports2.storage.getItem("debug") || exports2.storage.getItem("DEBUG"); + } catch (error) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + __name(load, "load"); + function localstorage() { + try { + return localStorage; + } catch (error) { + } + } + __name(localstorage, "localstorage"); + module2.exports = require_common2()(exports2); + var { formatters } = module2.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + } +}); + +// node_modules/has-flag/index.js +var require_has_flag = __commonJS({ + "node_modules/has-flag/index.js"(exports2, module2) { + "use strict"; + module2.exports = (flag, argv = process.argv) => { + const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf("--"); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); + }; + } +}); + +// node_modules/supports-color/index.js +var require_supports_color = __commonJS({ + "node_modules/supports-color/index.js"(exports2, module2) { + "use strict"; + var os = require("os"); + var tty = require("tty"); + var hasFlag = require_has_flag(); + var { env } = process; + var forceColor; + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { + forceColor = 0; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + forceColor = 1; + } + if ("FORCE_COLOR" in env) { + if (env.FORCE_COLOR === "true") { + forceColor = 1; + } else if (env.FORCE_COLOR === "false") { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } + } + function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; + } + __name(translateLevel, "translateLevel"); + function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { + return 0; + } + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + if (haveStream && !streamIsTTY && forceColor === void 0) { + return 0; + } + const min = forceColor || 0; + if (env.TERM === "dumb") { + return min; + } + if (process.platform === "win32") { + const osRelease = os.release().split("."); + if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + return min; + } + __name(supportsColor, "supportsColor"); + function getSupportLevel(stream) { + const level = supportsColor(stream, stream && stream.isTTY); + return translateLevel(level); + } + __name(getSupportLevel, "getSupportLevel"); + module2.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) + }; + } +}); + +// node_modules/debug/src/node.js +var require_node = __commonJS({ + "node_modules/debug/src/node.js"(exports2, module2) { + var tty = require("tty"); + var util2 = require("util"); + exports2.init = init; + exports2.log = log; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.destroy = util2.deprecate( + () => { + }, + "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." + ); + exports2.colors = [6, 2, 3, 4, 5, 1]; + try { + const supportsColor = require_supports_color(); + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports2.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } + } catch (error) { + } + exports2.inspectOpts = Object.keys(process.env).filter((key) => { + return /^debug_/i.test(key); + }).reduce((obj, key) => { + const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === "null") { + val = null; + } else { + val = Number(val); + } + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd); + } + __name(useColors, "useColors"); + function formatArgs(args) { + const { namespace: name, useColors: useColors2 } = this; + if (useColors2) { + const c = this.color; + const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); + const prefix = ` ${colorCode};1m${name} \x1B[0m`; + args[0] = prefix + args[0].split("\n").join("\n" + prefix); + args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m"); + } else { + args[0] = getDate() + name + " " + args[0]; + } + } + __name(formatArgs, "formatArgs"); + function getDate() { + if (exports2.inspectOpts.hideDate) { + return ""; + } + return (/* @__PURE__ */ new Date()).toISOString() + " "; + } + __name(getDate, "getDate"); + function log(...args) { + return process.stderr.write(util2.formatWithOptions(exports2.inspectOpts, ...args) + "\n"); + } + __name(log, "log"); + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + delete process.env.DEBUG; + } + } + __name(save, "save"); + function load() { + return process.env.DEBUG; + } + __name(load, "load"); + function init(debug) { + debug.inspectOpts = {}; + const keys = Object.keys(exports2.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]]; + } + } + __name(init, "init"); + module2.exports = require_common2()(exports2); + var { formatters } = module2.exports; + formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util2.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); + }; + formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util2.inspect(v, this.inspectOpts); + }; + } +}); + +// node_modules/debug/src/index.js +var require_src = __commonJS({ + "node_modules/debug/src/index.js"(exports2, module2) { + if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { + module2.exports = require_browser(); + } else { + module2.exports = require_node(); + } + } +}); + +// node_modules/depd/index.js +var require_depd = __commonJS({ + "node_modules/depd/index.js"(exports2, module2) { + var relative = require("path").relative; + module2.exports = depd; + var basePath = process.cwd(); + function containsNamespace(str, namespace) { + var vals = str.split(/[ ,]+/); + var ns = String(namespace).toLowerCase(); + for (var i = 0; i < vals.length; i++) { + var val = vals[i]; + if (val && (val === "*" || val.toLowerCase() === ns)) { + return true; + } + } + return false; + } + __name(containsNamespace, "containsNamespace"); + function convertDataDescriptorToAccessor(obj, prop, message) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + var value = descriptor.value; + descriptor.get = /* @__PURE__ */ __name(function getter() { + return value; + }, "getter"); + if (descriptor.writable) { + descriptor.set = /* @__PURE__ */ __name(function setter(val) { + return value = val; + }, "setter"); + } + delete descriptor.value; + delete descriptor.writable; + Object.defineProperty(obj, prop, descriptor); + return descriptor; + } + __name(convertDataDescriptorToAccessor, "convertDataDescriptorToAccessor"); + function createArgumentsString(arity) { + var str = ""; + for (var i = 0; i < arity; i++) { + str += ", arg" + i; + } + return str.substr(2); + } + __name(createArgumentsString, "createArgumentsString"); + function createStackString(stack) { + var str = this.name + ": " + this.namespace; + if (this.message) { + str += " deprecated " + this.message; + } + for (var i = 0; i < stack.length; i++) { + str += "\n at " + stack[i].toString(); + } + return str; + } + __name(createStackString, "createStackString"); + function depd(namespace) { + if (!namespace) { + throw new TypeError("argument namespace is required"); + } + var stack = getStack(); + var site = callSiteLocation(stack[1]); + var file = site[0]; + function deprecate(message) { + log.call(deprecate, message); + } + __name(deprecate, "deprecate"); + deprecate._file = file; + deprecate._ignored = isignored(namespace); + deprecate._namespace = namespace; + deprecate._traced = istraced(namespace); + deprecate._warned = /* @__PURE__ */ Object.create(null); + deprecate.function = wrapfunction; + deprecate.property = wrapproperty; + return deprecate; + } + __name(depd, "depd"); + function eehaslisteners(emitter, type) { + var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type); + return count > 0; + } + __name(eehaslisteners, "eehaslisteners"); + function isignored(namespace) { + if (process.noDeprecation) { + return true; + } + var str = process.env.NO_DEPRECATION || ""; + return containsNamespace(str, namespace); + } + __name(isignored, "isignored"); + function istraced(namespace) { + if (process.traceDeprecation) { + return true; + } + var str = process.env.TRACE_DEPRECATION || ""; + return containsNamespace(str, namespace); + } + __name(istraced, "istraced"); + function log(message, site) { + var haslisteners = eehaslisteners(process, "deprecation"); + if (!haslisteners && this._ignored) { + return; + } + var caller; + var callFile; + var callSite; + var depSite; + var i = 0; + var seen = false; + var stack = getStack(); + var file = this._file; + if (site) { + depSite = site; + callSite = callSiteLocation(stack[1]); + callSite.name = depSite.name; + file = callSite[0]; + } else { + i = 2; + depSite = callSiteLocation(stack[i]); + callSite = depSite; + } + for (; i < stack.length; i++) { + caller = callSiteLocation(stack[i]); + callFile = caller[0]; + if (callFile === file) { + seen = true; + } else if (callFile === this._file) { + file = this._file; + } else if (seen) { + break; + } + } + var key = caller ? depSite.join(":") + "__" + caller.join(":") : void 0; + if (key !== void 0 && key in this._warned) { + return; + } + this._warned[key] = true; + var msg = message; + if (!msg) { + msg = callSite === depSite || !callSite.name ? defaultMessage(depSite) : defaultMessage(callSite); + } + if (haslisteners) { + var err = DeprecationError(this._namespace, msg, stack.slice(i)); + process.emit("deprecation", err); + return; + } + var format = process.stderr.isTTY ? formatColor : formatPlain; + var output = format.call(this, msg, caller, stack.slice(i)); + process.stderr.write(output + "\n", "utf8"); + } + __name(log, "log"); + function callSiteLocation(callSite) { + var file = callSite.getFileName() || ""; + var line = callSite.getLineNumber(); + var colm = callSite.getColumnNumber(); + if (callSite.isEval()) { + file = callSite.getEvalOrigin() + ", " + file; + } + var site = [file, line, colm]; + site.callSite = callSite; + site.name = callSite.getFunctionName(); + return site; + } + __name(callSiteLocation, "callSiteLocation"); + function defaultMessage(site) { + var callSite = site.callSite; + var funcName = site.name; + if (!funcName) { + funcName = ""; + } + var context = callSite.getThis(); + var typeName = context && callSite.getTypeName(); + if (typeName === "Object") { + typeName = void 0; + } + if (typeName === "Function") { + typeName = context.name || typeName; + } + return typeName && callSite.getMethodName() ? typeName + "." + funcName : funcName; + } + __name(defaultMessage, "defaultMessage"); + function formatPlain(msg, caller, stack) { + var timestamp = (/* @__PURE__ */ new Date()).toUTCString(); + var formatted = timestamp + " " + this._namespace + " deprecated " + msg; + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += "\n at " + stack[i].toString(); + } + return formatted; + } + if (caller) { + formatted += " at " + formatLocation(caller); + } + return formatted; + } + __name(formatPlain, "formatPlain"); + function formatColor(msg, caller, stack) { + var formatted = "\x1B[36;1m" + this._namespace + "\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m" + msg + "\x1B[39m"; + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += "\n \x1B[36mat " + stack[i].toString() + "\x1B[39m"; + } + return formatted; + } + if (caller) { + formatted += " \x1B[36m" + formatLocation(caller) + "\x1B[39m"; + } + return formatted; + } + __name(formatColor, "formatColor"); + function formatLocation(callSite) { + return relative(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2]; + } + __name(formatLocation, "formatLocation"); + function getStack() { + var limit = Error.stackTraceLimit; + var obj = {}; + var prep = Error.prepareStackTrace; + Error.prepareStackTrace = prepareObjectStackTrace; + Error.stackTraceLimit = Math.max(10, limit); + Error.captureStackTrace(obj); + var stack = obj.stack.slice(1); + Error.prepareStackTrace = prep; + Error.stackTraceLimit = limit; + return stack; + } + __name(getStack, "getStack"); + function prepareObjectStackTrace(obj, stack) { + return stack; + } + __name(prepareObjectStackTrace, "prepareObjectStackTrace"); + function wrapfunction(fn, message) { + if (typeof fn !== "function") { + throw new TypeError("argument fn must be a function"); + } + var args = createArgumentsString(fn.length); + var stack = getStack(); + var site = callSiteLocation(stack[1]); + site.name = fn.name; + var deprecatedfn = new Function( + "fn", + "log", + "deprecate", + "message", + "site", + '"use strict"\nreturn function (' + args + ") {log.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n}" + )(fn, log, this, message, site); + return deprecatedfn; + } + __name(wrapfunction, "wrapfunction"); + function wrapproperty(obj, prop, message) { + if (!obj || typeof obj !== "object" && typeof obj !== "function") { + throw new TypeError("argument obj must be object"); + } + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + if (!descriptor) { + throw new TypeError("must call property on owner object"); + } + if (!descriptor.configurable) { + throw new TypeError("property must be configurable"); + } + var deprecate = this; + var stack = getStack(); + var site = callSiteLocation(stack[1]); + site.name = prop; + if ("value" in descriptor) { + descriptor = convertDataDescriptorToAccessor(obj, prop, message); + } + var get = descriptor.get; + var set = descriptor.set; + if (typeof get === "function") { + descriptor.get = /* @__PURE__ */ __name(function getter() { + log.call(deprecate, message, site); + return get.apply(this, arguments); + }, "getter"); + } + if (typeof set === "function") { + descriptor.set = /* @__PURE__ */ __name(function setter() { + log.call(deprecate, message, site); + return set.apply(this, arguments); + }, "setter"); + } + Object.defineProperty(obj, prop, descriptor); + } + __name(wrapproperty, "wrapproperty"); + function DeprecationError(namespace, message, stack) { + var error = new Error(); + var stackString; + Object.defineProperty(error, "constructor", { + value: DeprecationError + }); + Object.defineProperty(error, "message", { + configurable: true, + enumerable: false, + value: message, + writable: true + }); + Object.defineProperty(error, "name", { + enumerable: false, + configurable: true, + value: "DeprecationError", + writable: true + }); + Object.defineProperty(error, "namespace", { + configurable: true, + enumerable: false, + value: namespace, + writable: true + }); + Object.defineProperty(error, "stack", { + configurable: true, + enumerable: false, + get: /* @__PURE__ */ __name(function() { + if (stackString !== void 0) { + return stackString; + } + return stackString = createStackString.call(this, stack); + }, "get"), + set: /* @__PURE__ */ __name(function setter(val) { + stackString = val; + }, "setter") + }); + return error; + } + __name(DeprecationError, "DeprecationError"); + } +}); + +// node_modules/setprototypeof/index.js +var require_setprototypeof = __commonJS({ + "node_modules/setprototypeof/index.js"(exports2, module2) { + "use strict"; + module2.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties); + function setProtoOf(obj, proto) { + obj.__proto__ = proto; + return obj; + } + __name(setProtoOf, "setProtoOf"); + function mixinProperties(obj, proto) { + for (var prop in proto) { + if (!Object.prototype.hasOwnProperty.call(obj, prop)) { + obj[prop] = proto[prop]; + } + } + return obj; + } + __name(mixinProperties, "mixinProperties"); + } +}); + +// node_modules/statuses/codes.json +var require_codes = __commonJS({ + "node_modules/statuses/codes.json"(exports2, module2) { + module2.exports = { + "100": "Continue", + "101": "Switching Protocols", + "102": "Processing", + "103": "Early Hints", + "200": "OK", + "201": "Created", + "202": "Accepted", + "203": "Non-Authoritative Information", + "204": "No Content", + "205": "Reset Content", + "206": "Partial Content", + "207": "Multi-Status", + "208": "Already Reported", + "226": "IM Used", + "300": "Multiple Choices", + "301": "Moved Permanently", + "302": "Found", + "303": "See Other", + "304": "Not Modified", + "305": "Use Proxy", + "307": "Temporary Redirect", + "308": "Permanent Redirect", + "400": "Bad Request", + "401": "Unauthorized", + "402": "Payment Required", + "403": "Forbidden", + "404": "Not Found", + "405": "Method Not Allowed", + "406": "Not Acceptable", + "407": "Proxy Authentication Required", + "408": "Request Timeout", + "409": "Conflict", + "410": "Gone", + "411": "Length Required", + "412": "Precondition Failed", + "413": "Payload Too Large", + "414": "URI Too Long", + "415": "Unsupported Media Type", + "416": "Range Not Satisfiable", + "417": "Expectation Failed", + "418": "I'm a Teapot", + "421": "Misdirected Request", + "422": "Unprocessable Entity", + "423": "Locked", + "424": "Failed Dependency", + "425": "Too Early", + "426": "Upgrade Required", + "428": "Precondition Required", + "429": "Too Many Requests", + "431": "Request Header Fields Too Large", + "451": "Unavailable For Legal Reasons", + "500": "Internal Server Error", + "501": "Not Implemented", + "502": "Bad Gateway", + "503": "Service Unavailable", + "504": "Gateway Timeout", + "505": "HTTP Version Not Supported", + "506": "Variant Also Negotiates", + "507": "Insufficient Storage", + "508": "Loop Detected", + "509": "Bandwidth Limit Exceeded", + "510": "Not Extended", + "511": "Network Authentication Required" + }; + } +}); + +// node_modules/statuses/index.js +var require_statuses = __commonJS({ + "node_modules/statuses/index.js"(exports2, module2) { + "use strict"; + var codes = require_codes(); + module2.exports = status; + status.message = codes; + status.code = createMessageToStatusCodeMap(codes); + status.codes = createStatusCodeList(codes); + status.redirect = { + 300: true, + 301: true, + 302: true, + 303: true, + 305: true, + 307: true, + 308: true + }; + status.empty = { + 204: true, + 205: true, + 304: true + }; + status.retry = { + 502: true, + 503: true, + 504: true + }; + function createMessageToStatusCodeMap(codes2) { + var map = {}; + Object.keys(codes2).forEach(/* @__PURE__ */ __name(function forEachCode(code) { + var message = codes2[code]; + var status2 = Number(code); + map[message.toLowerCase()] = status2; + }, "forEachCode")); + return map; + } + __name(createMessageToStatusCodeMap, "createMessageToStatusCodeMap"); + function createStatusCodeList(codes2) { + return Object.keys(codes2).map(/* @__PURE__ */ __name(function mapCode(code) { + return Number(code); + }, "mapCode")); + } + __name(createStatusCodeList, "createStatusCodeList"); + function getStatusCode(message) { + var msg = message.toLowerCase(); + if (!Object.prototype.hasOwnProperty.call(status.code, msg)) { + throw new Error('invalid status message: "' + message + '"'); + } + return status.code[msg]; + } + __name(getStatusCode, "getStatusCode"); + function getStatusMessage(code) { + if (!Object.prototype.hasOwnProperty.call(status.message, code)) { + throw new Error("invalid status code: " + code); + } + return status.message[code]; + } + __name(getStatusMessage, "getStatusMessage"); + function status(code) { + if (typeof code === "number") { + return getStatusMessage(code); + } + if (typeof code !== "string") { + throw new TypeError("code must be a number or string"); + } + var n = parseInt(code, 10); + if (!isNaN(n)) { + return getStatusMessage(n); + } + return getStatusCode(code); + } + __name(status, "status"); + } +}); + +// node_modules/inherits/inherits_browser.js +var require_inherits_browser = __commonJS({ + "node_modules/inherits/inherits_browser.js"(exports2, module2) { + if (typeof Object.create === "function") { + module2.exports = /* @__PURE__ */ __name(function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }, "inherits"); + } else { + module2.exports = /* @__PURE__ */ __name(function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = /* @__PURE__ */ __name(function() { + }, "TempCtor"); + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }, "inherits"); + } + } +}); + +// node_modules/inherits/inherits.js +var require_inherits = __commonJS({ + "node_modules/inherits/inherits.js"(exports2, module2) { + try { + util2 = require("util"); + if (typeof util2.inherits !== "function") throw ""; + module2.exports = util2.inherits; + } catch (e) { + module2.exports = require_inherits_browser(); + } + var util2; + } +}); + +// node_modules/toidentifier/index.js +var require_toidentifier = __commonJS({ + "node_modules/toidentifier/index.js"(exports2, module2) { + "use strict"; + module2.exports = toIdentifier; + function toIdentifier(str) { + return str.split(" ").map(function(token) { + return token.slice(0, 1).toUpperCase() + token.slice(1); + }).join("").replace(/[^ _0-9a-z]/gi, ""); + } + __name(toIdentifier, "toIdentifier"); + } +}); + +// node_modules/http-errors/index.js +var require_http_errors = __commonJS({ + "node_modules/http-errors/index.js"(exports2, module2) { + "use strict"; + var deprecate = require_depd()("http-errors"); + var setPrototypeOf = require_setprototypeof(); + var statuses = require_statuses(); + var inherits = require_inherits(); + var toIdentifier = require_toidentifier(); + module2.exports = createError; + module2.exports.HttpError = createHttpErrorConstructor(); + module2.exports.isHttpError = createIsHttpErrorFunction(module2.exports.HttpError); + populateConstructorExports(module2.exports, statuses.codes, module2.exports.HttpError); + function codeClass(status) { + return Number(String(status).charAt(0) + "00"); + } + __name(codeClass, "codeClass"); + function createError() { + var err; + var msg; + var status = 500; + var props = {}; + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + var type = typeof arg; + if (type === "object" && arg instanceof Error) { + err = arg; + status = err.status || err.statusCode || status; + } else if (type === "number" && i === 0) { + status = arg; + } else if (type === "string") { + msg = arg; + } else if (type === "object") { + props = arg; + } else { + throw new TypeError("argument #" + (i + 1) + " unsupported type " + type); + } + } + if (typeof status === "number" && (status < 400 || status >= 600)) { + deprecate("non-error status code; use only 4xx or 5xx status codes"); + } + if (typeof status !== "number" || !statuses.message[status] && (status < 400 || status >= 600)) { + status = 500; + } + var HttpError = createError[status] || createError[codeClass(status)]; + if (!err) { + err = HttpError ? new HttpError(msg) : new Error(msg || statuses.message[status]); + Error.captureStackTrace(err, createError); + } + if (!HttpError || !(err instanceof HttpError) || err.status !== status) { + err.expose = status < 500; + err.status = err.statusCode = status; + } + for (var key in props) { + if (key !== "status" && key !== "statusCode") { + err[key] = props[key]; + } + } + return err; + } + __name(createError, "createError"); + function createHttpErrorConstructor() { + function HttpError() { + throw new TypeError("cannot construct abstract class"); + } + __name(HttpError, "HttpError"); + inherits(HttpError, Error); + return HttpError; + } + __name(createHttpErrorConstructor, "createHttpErrorConstructor"); + function createClientErrorConstructor(HttpError, name, code) { + var className = toClassName(name); + function ClientError(message) { + var msg = message != null ? message : statuses.message[code]; + var err = new Error(msg); + Error.captureStackTrace(err, ClientError); + setPrototypeOf(err, ClientError.prototype); + Object.defineProperty(err, "message", { + enumerable: true, + configurable: true, + value: msg, + writable: true + }); + Object.defineProperty(err, "name", { + enumerable: false, + configurable: true, + value: className, + writable: true + }); + return err; + } + __name(ClientError, "ClientError"); + inherits(ClientError, HttpError); + nameFunc(ClientError, className); + ClientError.prototype.status = code; + ClientError.prototype.statusCode = code; + ClientError.prototype.expose = true; + return ClientError; + } + __name(createClientErrorConstructor, "createClientErrorConstructor"); + function createIsHttpErrorFunction(HttpError) { + return /* @__PURE__ */ __name(function isHttpError(val) { + if (!val || typeof val !== "object") { + return false; + } + if (val instanceof HttpError) { + return true; + } + return val instanceof Error && typeof val.expose === "boolean" && typeof val.statusCode === "number" && val.status === val.statusCode; + }, "isHttpError"); + } + __name(createIsHttpErrorFunction, "createIsHttpErrorFunction"); + function createServerErrorConstructor(HttpError, name, code) { + var className = toClassName(name); + function ServerError(message) { + var msg = message != null ? message : statuses.message[code]; + var err = new Error(msg); + Error.captureStackTrace(err, ServerError); + setPrototypeOf(err, ServerError.prototype); + Object.defineProperty(err, "message", { + enumerable: true, + configurable: true, + value: msg, + writable: true + }); + Object.defineProperty(err, "name", { + enumerable: false, + configurable: true, + value: className, + writable: true + }); + return err; + } + __name(ServerError, "ServerError"); + inherits(ServerError, HttpError); + nameFunc(ServerError, className); + ServerError.prototype.status = code; + ServerError.prototype.statusCode = code; + ServerError.prototype.expose = false; + return ServerError; + } + __name(createServerErrorConstructor, "createServerErrorConstructor"); + function nameFunc(func, name) { + var desc = Object.getOwnPropertyDescriptor(func, "name"); + if (desc && desc.configurable) { + desc.value = name; + Object.defineProperty(func, "name", desc); + } + } + __name(nameFunc, "nameFunc"); + function populateConstructorExports(exports3, codes, HttpError) { + codes.forEach(/* @__PURE__ */ __name(function forEachCode(code) { + var CodeError; + var name = toIdentifier(statuses.message[code]); + switch (codeClass(code)) { + case 400: + CodeError = createClientErrorConstructor(HttpError, name, code); + break; + case 500: + CodeError = createServerErrorConstructor(HttpError, name, code); + break; + } + if (CodeError) { + exports3[code] = CodeError; + exports3[name] = CodeError; + } + }, "forEachCode")); + } + __name(populateConstructorExports, "populateConstructorExports"); + function toClassName(name) { + return name.slice(-5) === "Error" ? name : name + "Error"; + } + __name(toClassName, "toClassName"); + } +}); + +// node_modules/bytes/index.js +var require_bytes = __commonJS({ + "node_modules/bytes/index.js"(exports2, module2) { + "use strict"; + module2.exports = bytes; + module2.exports.format = format; + module2.exports.parse = parse; + var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + var map = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5) + }; + var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + function bytes(value, options) { + if (typeof value === "string") { + return parse(value); + } + if (typeof value === "number") { + return format(value, options); + } + return null; + } + __name(bytes, "bytes"); + function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + var mag = Math.abs(value); + var thousandsSeparator = options && options.thousandsSeparator || ""; + var unitSeparator = options && options.unitSeparator || ""; + var decimalPlaces = options && options.decimalPlaces !== void 0 ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = options && options.unit || ""; + if (!unit || !map[unit.toLowerCase()]) { + if (mag >= map.pb) { + unit = "PB"; + } else if (mag >= map.tb) { + unit = "TB"; + } else if (mag >= map.gb) { + unit = "GB"; + } else if (mag >= map.mb) { + unit = "MB"; + } else if (mag >= map.kb) { + unit = "KB"; + } else { + unit = "B"; + } + } + var val = value / map[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, "$1"); + } + if (thousandsSeparator) { + str = str.split(".").map(function(s, i) { + return i === 0 ? s.replace(formatThousandsRegExp, thousandsSeparator) : s; + }).join("."); + } + return str + unitSeparator + unit; + } + __name(format, "format"); + function parse(val) { + if (typeof val === "number" && !isNaN(val)) { + return val; + } + if (typeof val !== "string") { + return null; + } + var results = parseRegExp.exec(val); + var floatValue; + var unit = "b"; + if (!results) { + floatValue = parseInt(val, 10); + unit = "b"; + } else { + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + if (isNaN(floatValue)) { + return null; + } + return Math.floor(map[unit] * floatValue); + } + __name(parse, "parse"); + } +}); + +// node_modules/safer-buffer/safer.js +var require_safer = __commonJS({ + "node_modules/safer-buffer/safer.js"(exports2, module2) { + "use strict"; + var buffer = require("buffer"); + var Buffer2 = buffer.Buffer; + var safer = {}; + var key; + for (key in buffer) { + if (!buffer.hasOwnProperty(key)) continue; + if (key === "SlowBuffer" || key === "Buffer") continue; + safer[key] = buffer[key]; + } + var Safer = safer.Buffer = {}; + for (key in Buffer2) { + if (!Buffer2.hasOwnProperty(key)) continue; + if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue; + Safer[key] = Buffer2[key]; + } + safer.Buffer.prototype = Buffer2.prototype; + if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function(value, encodingOrOffset, length) { + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value); + } + if (value && typeof value.length === "undefined") { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + return Buffer2(value, encodingOrOffset, length); + }; + } + if (!Safer.alloc) { + Safer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size); + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + var buf = Buffer2(size); + if (!fill || fill.length === 0) { + buf.fill(0); + } else if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + return buf; + }; + } + if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process.binding("buffer").kStringMaxLength; + } catch (e) { + } + } + if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + }; + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength; + } + } + module2.exports = safer; + } +}); + +// node_modules/iconv-lite/lib/bom-handling.js +var require_bom_handling = __commonJS({ + "node_modules/iconv-lite/lib/bom-handling.js"(exports2) { + "use strict"; + var BOMChar = "\uFEFF"; + exports2.PrependBOM = PrependBOMWrapper; + function PrependBOMWrapper(encoder, options) { + this.encoder = encoder; + this.addBOM = true; + } + __name(PrependBOMWrapper, "PrependBOMWrapper"); + PrependBOMWrapper.prototype.write = function(str) { + if (this.addBOM) { + str = BOMChar + str; + this.addBOM = false; + } + return this.encoder.write(str); + }; + PrependBOMWrapper.prototype.end = function() { + return this.encoder.end(); + }; + exports2.StripBOM = StripBOMWrapper; + function StripBOMWrapper(decoder, options) { + this.decoder = decoder; + this.pass = false; + this.options = options || {}; + } + __name(StripBOMWrapper, "StripBOMWrapper"); + StripBOMWrapper.prototype.write = function(buf) { + var res = this.decoder.write(buf); + if (this.pass || !res) { + return res; + } + if (res[0] === BOMChar) { + res = res.slice(1); + if (typeof this.options.stripBOM === "function") { + this.options.stripBOM(); + } + } + this.pass = true; + return res; + }; + StripBOMWrapper.prototype.end = function() { + return this.decoder.end(); + }; + } +}); + +// node_modules/iconv-lite/lib/helpers/merge-exports.js +var require_merge_exports = __commonJS({ + "node_modules/iconv-lite/lib/helpers/merge-exports.js"(exports2, module2) { + "use strict"; + var hasOwn = typeof Object.hasOwn === "undefined" ? Function.call.bind(Object.prototype.hasOwnProperty) : Object.hasOwn; + function mergeModules(target, module3) { + for (var key in module3) { + if (hasOwn(module3, key)) { + target[key] = module3[key]; + } + } + } + __name(mergeModules, "mergeModules"); + module2.exports = mergeModules; + } +}); + +// node_modules/iconv-lite/encodings/internal.js +var require_internal = __commonJS({ + "node_modules/iconv-lite/encodings/internal.js"(exports2, module2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + module2.exports = { + // Encodings + utf8: { type: "_internal", bomAware: true }, + cesu8: { type: "_internal", bomAware: true }, + unicode11utf8: "utf8", + ucs2: { type: "_internal", bomAware: true }, + utf16le: "ucs2", + binary: { type: "_internal" }, + base64: { type: "_internal" }, + hex: { type: "_internal" }, + // Codec. + _internal: InternalCodec + }; + function InternalCodec(codecOptions, iconv) { + this.enc = codecOptions.encodingName; + this.bomAware = codecOptions.bomAware; + if (this.enc === "base64") { + this.encoder = InternalEncoderBase64; + } else if (this.enc === "utf8") { + this.encoder = InternalEncoderUtf8; + } else if (this.enc === "cesu8") { + this.enc = "utf8"; + this.encoder = InternalEncoderCesu8; + if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") { + this.decoder = InternalDecoderCesu8; + this.defaultCharUnicode = iconv.defaultCharUnicode; + } + } + } + __name(InternalCodec, "InternalCodec"); + InternalCodec.prototype.encoder = InternalEncoder; + InternalCodec.prototype.decoder = InternalDecoder; + var StringDecoder = require("string_decoder").StringDecoder; + function InternalDecoder(options, codec) { + this.decoder = new StringDecoder(codec.enc); + } + __name(InternalDecoder, "InternalDecoder"); + InternalDecoder.prototype.write = function(buf) { + if (!Buffer2.isBuffer(buf)) { + buf = Buffer2.from(buf); + } + return this.decoder.write(buf); + }; + InternalDecoder.prototype.end = function() { + return this.decoder.end(); + }; + function InternalEncoder(options, codec) { + this.enc = codec.enc; + } + __name(InternalEncoder, "InternalEncoder"); + InternalEncoder.prototype.write = function(str) { + return Buffer2.from(str, this.enc); + }; + InternalEncoder.prototype.end = function() { + }; + function InternalEncoderBase64(options, codec) { + this.prevStr = ""; + } + __name(InternalEncoderBase64, "InternalEncoderBase64"); + InternalEncoderBase64.prototype.write = function(str) { + str = this.prevStr + str; + var completeQuads = str.length - str.length % 4; + this.prevStr = str.slice(completeQuads); + str = str.slice(0, completeQuads); + return Buffer2.from(str, "base64"); + }; + InternalEncoderBase64.prototype.end = function() { + return Buffer2.from(this.prevStr, "base64"); + }; + function InternalEncoderCesu8(options, codec) { + } + __name(InternalEncoderCesu8, "InternalEncoderCesu8"); + InternalEncoderCesu8.prototype.write = function(str) { + var buf = Buffer2.alloc(str.length * 3); + var bufIdx = 0; + for (var i = 0; i < str.length; i++) { + var charCode = str.charCodeAt(i); + if (charCode < 128) { + buf[bufIdx++] = charCode; + } else if (charCode < 2048) { + buf[bufIdx++] = 192 + (charCode >>> 6); + buf[bufIdx++] = 128 + (charCode & 63); + } else { + buf[bufIdx++] = 224 + (charCode >>> 12); + buf[bufIdx++] = 128 + (charCode >>> 6 & 63); + buf[bufIdx++] = 128 + (charCode & 63); + } + } + return buf.slice(0, bufIdx); + }; + InternalEncoderCesu8.prototype.end = function() { + }; + function InternalDecoderCesu8(options, codec) { + this.acc = 0; + this.contBytes = 0; + this.accBytes = 0; + this.defaultCharUnicode = codec.defaultCharUnicode; + } + __name(InternalDecoderCesu8, "InternalDecoderCesu8"); + InternalDecoderCesu8.prototype.write = function(buf) { + var acc = this.acc; + var contBytes = this.contBytes; + var accBytes = this.accBytes; + var res = ""; + for (var i = 0; i < buf.length; i++) { + var curByte = buf[i]; + if ((curByte & 192) !== 128) { + if (contBytes > 0) { + res += this.defaultCharUnicode; + contBytes = 0; + } + if (curByte < 128) { + res += String.fromCharCode(curByte); + } else if (curByte < 224) { + acc = curByte & 31; + contBytes = 1; + accBytes = 1; + } else if (curByte < 240) { + acc = curByte & 15; + contBytes = 2; + accBytes = 1; + } else { + res += this.defaultCharUnicode; + } + } else { + if (contBytes > 0) { + acc = acc << 6 | curByte & 63; + contBytes--; + accBytes++; + if (contBytes === 0) { + if (accBytes === 2 && acc < 128 && acc > 0) { + res += this.defaultCharUnicode; + } else if (accBytes === 3 && acc < 2048) { + res += this.defaultCharUnicode; + } else { + res += String.fromCharCode(acc); + } + } + } else { + res += this.defaultCharUnicode; + } + } + } + this.acc = acc; + this.contBytes = contBytes; + this.accBytes = accBytes; + return res; + }; + InternalDecoderCesu8.prototype.end = function() { + var res = 0; + if (this.contBytes > 0) { + res += this.defaultCharUnicode; + } + return res; + }; + function InternalEncoderUtf8(options, codec) { + this.highSurrogate = ""; + } + __name(InternalEncoderUtf8, "InternalEncoderUtf8"); + InternalEncoderUtf8.prototype.write = function(str) { + if (this.highSurrogate) { + str = this.highSurrogate + str; + this.highSurrogate = ""; + } + if (str.length > 0) { + var charCode = str.charCodeAt(str.length - 1); + if (charCode >= 55296 && charCode < 56320) { + this.highSurrogate = str[str.length - 1]; + str = str.slice(0, str.length - 1); + } + } + return Buffer2.from(str, this.enc); + }; + InternalEncoderUtf8.prototype.end = function() { + if (this.highSurrogate) { + var str = this.highSurrogate; + this.highSurrogate = ""; + return Buffer2.from(str, this.enc); + } + }; + } +}); + +// node_modules/iconv-lite/encodings/utf32.js +var require_utf32 = __commonJS({ + "node_modules/iconv-lite/encodings/utf32.js"(exports2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports2._utf32 = Utf32Codec; + function Utf32Codec(codecOptions, iconv) { + this.iconv = iconv; + this.bomAware = true; + this.isLE = codecOptions.isLE; + } + __name(Utf32Codec, "Utf32Codec"); + exports2.utf32le = { type: "_utf32", isLE: true }; + exports2.utf32be = { type: "_utf32", isLE: false }; + exports2.ucs4le = "utf32le"; + exports2.ucs4be = "utf32be"; + Utf32Codec.prototype.encoder = Utf32Encoder; + Utf32Codec.prototype.decoder = Utf32Decoder; + function Utf32Encoder(options, codec) { + this.isLE = codec.isLE; + this.highSurrogate = 0; + } + __name(Utf32Encoder, "Utf32Encoder"); + Utf32Encoder.prototype.write = function(str) { + var src = Buffer2.from(str, "ucs2"); + var dst = Buffer2.alloc(src.length * 2 + 4); + var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE; + var offset = 0; + for (var i = 0; i < src.length; i += 2) { + var code = src.readUInt16LE(i); + var isHighSurrogate = code >= 55296 && code < 56320; + var isLowSurrogate = code >= 56320 && code < 57344; + if (this.highSurrogate) { + if (isHighSurrogate || !isLowSurrogate) { + write32.call(dst, this.highSurrogate, offset); + offset += 4; + } else { + var codepoint = (this.highSurrogate - 55296 << 10 | code - 56320) + 65536; + write32.call(dst, codepoint, offset); + offset += 4; + this.highSurrogate = 0; + continue; + } + } + if (isHighSurrogate) { + this.highSurrogate = code; + } else { + write32.call(dst, code, offset); + offset += 4; + this.highSurrogate = 0; + } + } + if (offset < dst.length) { + dst = dst.slice(0, offset); + } + return dst; + }; + Utf32Encoder.prototype.end = function() { + if (!this.highSurrogate) { + return; + } + var buf = Buffer2.alloc(4); + if (this.isLE) { + buf.writeUInt32LE(this.highSurrogate, 0); + } else { + buf.writeUInt32BE(this.highSurrogate, 0); + } + this.highSurrogate = 0; + return buf; + }; + function Utf32Decoder(options, codec) { + this.isLE = codec.isLE; + this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0); + this.overflow = []; + } + __name(Utf32Decoder, "Utf32Decoder"); + Utf32Decoder.prototype.write = function(src) { + if (src.length === 0) { + return ""; + } + var i = 0; + var codepoint = 0; + var dst = Buffer2.alloc(src.length + 4); + var offset = 0; + var isLE = this.isLE; + var overflow = this.overflow; + var badChar = this.badChar; + if (overflow.length > 0) { + for (; i < src.length && overflow.length < 4; i++) { + overflow.push(src[i]); + } + if (overflow.length === 4) { + if (isLE) { + codepoint = overflow[0] | overflow[1] << 8 | overflow[2] << 16 | overflow[3] << 24; + } else { + codepoint = overflow[3] | overflow[2] << 8 | overflow[1] << 16 | overflow[0] << 24; + } + overflow.length = 0; + offset = _writeCodepoint(dst, offset, codepoint, badChar); + } + } + for (; i < src.length - 3; i += 4) { + if (isLE) { + codepoint = src[i] | src[i + 1] << 8 | src[i + 2] << 16 | src[i + 3] << 24; + } else { + codepoint = src[i + 3] | src[i + 2] << 8 | src[i + 1] << 16 | src[i] << 24; + } + offset = _writeCodepoint(dst, offset, codepoint, badChar); + } + for (; i < src.length; i++) { + overflow.push(src[i]); + } + return dst.slice(0, offset).toString("ucs2"); + }; + function _writeCodepoint(dst, offset, codepoint, badChar) { + if (codepoint < 0 || codepoint > 1114111) { + codepoint = badChar; + } + if (codepoint >= 65536) { + codepoint -= 65536; + var high = 55296 | codepoint >> 10; + dst[offset++] = high & 255; + dst[offset++] = high >> 8; + var codepoint = 56320 | codepoint & 1023; + } + dst[offset++] = codepoint & 255; + dst[offset++] = codepoint >> 8; + return offset; + } + __name(_writeCodepoint, "_writeCodepoint"); + Utf32Decoder.prototype.end = function() { + if (this.overflow.length === 0) { + return; + } + this.overflow.length = 0; + return String.fromCharCode(this.badChar); + }; + exports2.utf32 = Utf32AutoCodec; + exports2.ucs4 = "utf32"; + function Utf32AutoCodec(options, iconv) { + this.iconv = iconv; + } + __name(Utf32AutoCodec, "Utf32AutoCodec"); + Utf32AutoCodec.prototype.encoder = Utf32AutoEncoder; + Utf32AutoCodec.prototype.decoder = Utf32AutoDecoder; + function Utf32AutoEncoder(options, codec) { + options = options || {}; + if (options.addBOM === void 0) { + options.addBOM = true; + } + this.encoder = codec.iconv.getEncoder(options.defaultEncoding || "utf-32le", options); + } + __name(Utf32AutoEncoder, "Utf32AutoEncoder"); + Utf32AutoEncoder.prototype.write = function(str) { + return this.encoder.write(str); + }; + Utf32AutoEncoder.prototype.end = function() { + return this.encoder.end(); + }; + function Utf32AutoDecoder(options, codec) { + this.decoder = null; + this.initialBufs = []; + this.initialBufsLen = 0; + this.options = options || {}; + this.iconv = codec.iconv; + } + __name(Utf32AutoDecoder, "Utf32AutoDecoder"); + Utf32AutoDecoder.prototype.write = function(buf) { + if (!this.decoder) { + this.initialBufs.push(buf); + this.initialBufsLen += buf.length; + if (this.initialBufsLen < 32) { + return ""; + } + var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var resStr = ""; + for (var i = 0; i < this.initialBufs.length; i++) { + resStr += this.decoder.write(this.initialBufs[i]); + } + this.initialBufs.length = this.initialBufsLen = 0; + return resStr; + } + return this.decoder.write(buf); + }; + Utf32AutoDecoder.prototype.end = function() { + if (!this.decoder) { + var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var resStr = ""; + for (var i = 0; i < this.initialBufs.length; i++) { + resStr += this.decoder.write(this.initialBufs[i]); + } + var trail = this.decoder.end(); + if (trail) { + resStr += trail; + } + this.initialBufs.length = this.initialBufsLen = 0; + return resStr; + } + return this.decoder.end(); + }; + function detectEncoding(bufs, defaultEncoding) { + var b = []; + var charsProcessed = 0; + var invalidLE = 0; + var invalidBE = 0; + var bmpCharsLE = 0; + var bmpCharsBE = 0; + outerLoop: + for (var i = 0; i < bufs.length; i++) { + var buf = bufs[i]; + for (var j = 0; j < buf.length; j++) { + b.push(buf[j]); + if (b.length === 4) { + if (charsProcessed === 0) { + if (b[0] === 255 && b[1] === 254 && b[2] === 0 && b[3] === 0) { + return "utf-32le"; + } + if (b[0] === 0 && b[1] === 0 && b[2] === 254 && b[3] === 255) { + return "utf-32be"; + } + } + if (b[0] !== 0 || b[1] > 16) invalidBE++; + if (b[3] !== 0 || b[2] > 16) invalidLE++; + if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++; + if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++; + b.length = 0; + charsProcessed++; + if (charsProcessed >= 100) { + break outerLoop; + } + } + } + } + if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return "utf-32be"; + if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return "utf-32le"; + return defaultEncoding || "utf-32le"; + } + __name(detectEncoding, "detectEncoding"); + } +}); + +// node_modules/iconv-lite/encodings/utf16.js +var require_utf16 = __commonJS({ + "node_modules/iconv-lite/encodings/utf16.js"(exports2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports2.utf16be = Utf16BECodec; + function Utf16BECodec() { + } + __name(Utf16BECodec, "Utf16BECodec"); + Utf16BECodec.prototype.encoder = Utf16BEEncoder; + Utf16BECodec.prototype.decoder = Utf16BEDecoder; + Utf16BECodec.prototype.bomAware = true; + function Utf16BEEncoder() { + } + __name(Utf16BEEncoder, "Utf16BEEncoder"); + Utf16BEEncoder.prototype.write = function(str) { + var buf = Buffer2.from(str, "ucs2"); + for (var i = 0; i < buf.length; i += 2) { + var tmp = buf[i]; + buf[i] = buf[i + 1]; + buf[i + 1] = tmp; + } + return buf; + }; + Utf16BEEncoder.prototype.end = function() { + }; + function Utf16BEDecoder() { + this.overflowByte = -1; + } + __name(Utf16BEDecoder, "Utf16BEDecoder"); + Utf16BEDecoder.prototype.write = function(buf) { + if (buf.length == 0) { + return ""; + } + var buf2 = Buffer2.alloc(buf.length + 1); + var i = 0; + var j = 0; + if (this.overflowByte !== -1) { + buf2[0] = buf[0]; + buf2[1] = this.overflowByte; + i = 1; + j = 2; + } + for (; i < buf.length - 1; i += 2, j += 2) { + buf2[j] = buf[i + 1]; + buf2[j + 1] = buf[i]; + } + this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1; + return buf2.slice(0, j).toString("ucs2"); + }; + Utf16BEDecoder.prototype.end = function() { + this.overflowByte = -1; + }; + exports2.utf16 = Utf16Codec; + function Utf16Codec(codecOptions, iconv) { + this.iconv = iconv; + } + __name(Utf16Codec, "Utf16Codec"); + Utf16Codec.prototype.encoder = Utf16Encoder; + Utf16Codec.prototype.decoder = Utf16Decoder; + function Utf16Encoder(options, codec) { + options = options || {}; + if (options.addBOM === void 0) { + options.addBOM = true; + } + this.encoder = codec.iconv.getEncoder("utf-16le", options); + } + __name(Utf16Encoder, "Utf16Encoder"); + Utf16Encoder.prototype.write = function(str) { + return this.encoder.write(str); + }; + Utf16Encoder.prototype.end = function() { + return this.encoder.end(); + }; + function Utf16Decoder(options, codec) { + this.decoder = null; + this.initialBufs = []; + this.initialBufsLen = 0; + this.options = options || {}; + this.iconv = codec.iconv; + } + __name(Utf16Decoder, "Utf16Decoder"); + Utf16Decoder.prototype.write = function(buf) { + if (!this.decoder) { + this.initialBufs.push(buf); + this.initialBufsLen += buf.length; + if (this.initialBufsLen < 16) { + return ""; + } + var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var resStr = ""; + for (var i = 0; i < this.initialBufs.length; i++) { + resStr += this.decoder.write(this.initialBufs[i]); + } + this.initialBufs.length = this.initialBufsLen = 0; + return resStr; + } + return this.decoder.write(buf); + }; + Utf16Decoder.prototype.end = function() { + if (!this.decoder) { + var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding); + this.decoder = this.iconv.getDecoder(encoding, this.options); + var resStr = ""; + for (var i = 0; i < this.initialBufs.length; i++) { + resStr += this.decoder.write(this.initialBufs[i]); + } + var trail = this.decoder.end(); + if (trail) { + resStr += trail; + } + this.initialBufs.length = this.initialBufsLen = 0; + return resStr; + } + return this.decoder.end(); + }; + function detectEncoding(bufs, defaultEncoding) { + var b = []; + var charsProcessed = 0; + var asciiCharsLE = 0; + var asciiCharsBE = 0; + outerLoop: + for (var i = 0; i < bufs.length; i++) { + var buf = bufs[i]; + for (var j = 0; j < buf.length; j++) { + b.push(buf[j]); + if (b.length === 2) { + if (charsProcessed === 0) { + if (b[0] === 255 && b[1] === 254) return "utf-16le"; + if (b[0] === 254 && b[1] === 255) return "utf-16be"; + } + if (b[0] === 0 && b[1] !== 0) asciiCharsBE++; + if (b[0] !== 0 && b[1] === 0) asciiCharsLE++; + b.length = 0; + charsProcessed++; + if (charsProcessed >= 100) { + break outerLoop; + } + } + } + } + if (asciiCharsBE > asciiCharsLE) return "utf-16be"; + if (asciiCharsBE < asciiCharsLE) return "utf-16le"; + return defaultEncoding || "utf-16le"; + } + __name(detectEncoding, "detectEncoding"); + } +}); + +// node_modules/iconv-lite/encodings/utf7.js +var require_utf7 = __commonJS({ + "node_modules/iconv-lite/encodings/utf7.js"(exports2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports2.utf7 = Utf7Codec; + exports2.unicode11utf7 = "utf7"; + function Utf7Codec(codecOptions, iconv) { + this.iconv = iconv; + } + __name(Utf7Codec, "Utf7Codec"); + Utf7Codec.prototype.encoder = Utf7Encoder; + Utf7Codec.prototype.decoder = Utf7Decoder; + Utf7Codec.prototype.bomAware = true; + var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g; + function Utf7Encoder(options, codec) { + this.iconv = codec.iconv; + } + __name(Utf7Encoder, "Utf7Encoder"); + Utf7Encoder.prototype.write = function(str) { + return Buffer2.from(str.replace(nonDirectChars, function(chunk) { + return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-"; + }.bind(this))); + }; + Utf7Encoder.prototype.end = function() { + }; + function Utf7Decoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ""; + } + __name(Utf7Decoder, "Utf7Decoder"); + var base64Regex = /[A-Za-z0-9\/+]/; + var base64Chars = []; + for (i = 0; i < 256; i++) { + base64Chars[i] = base64Regex.test(String.fromCharCode(i)); + } + var i; + var plusChar = "+".charCodeAt(0); + var minusChar = "-".charCodeAt(0); + var andChar = "&".charCodeAt(0); + Utf7Decoder.prototype.write = function(buf) { + var res = ""; + var lastI = 0; + var inBase64 = this.inBase64; + var base64Accum = this.base64Accum; + for (var i2 = 0; i2 < buf.length; i2++) { + if (!inBase64) { + if (buf[i2] == plusChar) { + res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); + lastI = i2 + 1; + inBase64 = true; + } + } else { + if (!base64Chars[buf[i2]]) { + if (i2 == lastI && buf[i2] == minusChar) { + res += "+"; + } else { + var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii"); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + if (buf[i2] != minusChar) { + i2--; + } + lastI = i2 + 1; + inBase64 = false; + base64Accum = ""; + } + } + } + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); + } else { + var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii"); + var canBeDecoded = b64str.length - b64str.length % 8; + base64Accum = b64str.slice(canBeDecoded); + b64str = b64str.slice(0, canBeDecoded); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + return res; + }; + Utf7Decoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) { + res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); + } + this.inBase64 = false; + this.base64Accum = ""; + return res; + }; + exports2.utf7imap = Utf7IMAPCodec; + function Utf7IMAPCodec(codecOptions, iconv) { + this.iconv = iconv; + } + __name(Utf7IMAPCodec, "Utf7IMAPCodec"); + Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder; + Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder; + Utf7IMAPCodec.prototype.bomAware = true; + function Utf7IMAPEncoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = Buffer2.alloc(6); + this.base64AccumIdx = 0; + } + __name(Utf7IMAPEncoder, "Utf7IMAPEncoder"); + Utf7IMAPEncoder.prototype.write = function(str) { + var inBase64 = this.inBase64; + var base64Accum = this.base64Accum; + var base64AccumIdx = this.base64AccumIdx; + var buf = Buffer2.alloc(str.length * 5 + 10); + var bufIdx = 0; + for (var i2 = 0; i2 < str.length; i2++) { + var uChar = str.charCodeAt(i2); + if (uChar >= 32 && uChar <= 126) { + if (inBase64) { + if (base64AccumIdx > 0) { + bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); + base64AccumIdx = 0; + } + buf[bufIdx++] = minusChar; + inBase64 = false; + } + if (!inBase64) { + buf[bufIdx++] = uChar; + if (uChar === andChar) { + buf[bufIdx++] = minusChar; + } + } + } else { + if (!inBase64) { + buf[bufIdx++] = andChar; + inBase64 = true; + } + if (inBase64) { + base64Accum[base64AccumIdx++] = uChar >> 8; + base64Accum[base64AccumIdx++] = uChar & 255; + if (base64AccumIdx == base64Accum.length) { + bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx); + base64AccumIdx = 0; + } + } + } + } + this.inBase64 = inBase64; + this.base64AccumIdx = base64AccumIdx; + return buf.slice(0, bufIdx); + }; + Utf7IMAPEncoder.prototype.end = function() { + var buf = Buffer2.alloc(10); + var bufIdx = 0; + if (this.inBase64) { + if (this.base64AccumIdx > 0) { + bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx); + this.base64AccumIdx = 0; + } + buf[bufIdx++] = minusChar; + this.inBase64 = false; + } + return buf.slice(0, bufIdx); + }; + function Utf7IMAPDecoder(options, codec) { + this.iconv = codec.iconv; + this.inBase64 = false; + this.base64Accum = ""; + } + __name(Utf7IMAPDecoder, "Utf7IMAPDecoder"); + var base64IMAPChars = base64Chars.slice(); + base64IMAPChars[",".charCodeAt(0)] = true; + Utf7IMAPDecoder.prototype.write = function(buf) { + var res = ""; + var lastI = 0; + var inBase64 = this.inBase64; + var base64Accum = this.base64Accum; + for (var i2 = 0; i2 < buf.length; i2++) { + if (!inBase64) { + if (buf[i2] == andChar) { + res += this.iconv.decode(buf.slice(lastI, i2), "ascii"); + lastI = i2 + 1; + inBase64 = true; + } + } else { + if (!base64IMAPChars[buf[i2]]) { + if (i2 == lastI && buf[i2] == minusChar) { + res += "&"; + } else { + var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii").replace(/,/g, "/"); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + if (buf[i2] != minusChar) { + i2--; + } + lastI = i2 + 1; + inBase64 = false; + base64Accum = ""; + } + } + } + if (!inBase64) { + res += this.iconv.decode(buf.slice(lastI), "ascii"); + } else { + var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii").replace(/,/g, "/"); + var canBeDecoded = b64str.length - b64str.length % 8; + base64Accum = b64str.slice(canBeDecoded); + b64str = b64str.slice(0, canBeDecoded); + res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be"); + } + this.inBase64 = inBase64; + this.base64Accum = base64Accum; + return res; + }; + Utf7IMAPDecoder.prototype.end = function() { + var res = ""; + if (this.inBase64 && this.base64Accum.length > 0) { + res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be"); + } + this.inBase64 = false; + this.base64Accum = ""; + return res; + }; + } +}); + +// node_modules/iconv-lite/encodings/sbcs-codec.js +var require_sbcs_codec = __commonJS({ + "node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports2._sbcs = SBCSCodec; + function SBCSCodec(codecOptions, iconv) { + if (!codecOptions) { + throw new Error("SBCS codec is called without the data."); + } + if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256) { + throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)"); + } + if (codecOptions.chars.length === 128) { + var asciiString = ""; + for (var i = 0; i < 128; i++) { + asciiString += String.fromCharCode(i); + } + codecOptions.chars = asciiString + codecOptions.chars; + } + this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2"); + var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0)); + for (var i = 0; i < codecOptions.chars.length; i++) { + encodeBuf[codecOptions.chars.charCodeAt(i)] = i; + } + this.encodeBuf = encodeBuf; + } + __name(SBCSCodec, "SBCSCodec"); + SBCSCodec.prototype.encoder = SBCSEncoder; + SBCSCodec.prototype.decoder = SBCSDecoder; + function SBCSEncoder(options, codec) { + this.encodeBuf = codec.encodeBuf; + } + __name(SBCSEncoder, "SBCSEncoder"); + SBCSEncoder.prototype.write = function(str) { + var buf = Buffer2.alloc(str.length); + for (var i = 0; i < str.length; i++) { + buf[i] = this.encodeBuf[str.charCodeAt(i)]; + } + return buf; + }; + SBCSEncoder.prototype.end = function() { + }; + function SBCSDecoder(options, codec) { + this.decodeBuf = codec.decodeBuf; + } + __name(SBCSDecoder, "SBCSDecoder"); + SBCSDecoder.prototype.write = function(buf) { + var decodeBuf = this.decodeBuf; + var newBuf = Buffer2.alloc(buf.length * 2); + var idx1 = 0; + var idx2 = 0; + for (var i = 0; i < buf.length; i++) { + idx1 = buf[i] * 2; + idx2 = i * 2; + newBuf[idx2] = decodeBuf[idx1]; + newBuf[idx2 + 1] = decodeBuf[idx1 + 1]; + } + return newBuf.toString("ucs2"); + }; + SBCSDecoder.prototype.end = function() { + }; + } +}); + +// node_modules/iconv-lite/encodings/sbcs-data.js +var require_sbcs_data = __commonJS({ + "node_modules/iconv-lite/encodings/sbcs-data.js"(exports2, module2) { + "use strict"; + module2.exports = { + // Not supported by iconv, not sure why. + 10029: "maccenteuro", + maccenteuro: { + type: "_sbcs", + chars: "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7" + }, + 808: "cp808", + ibm808: "cp808", + cp808: { + type: "_sbcs", + chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0" + }, + mik: { + type: "_sbcs", + chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + cp720: { + type: "_sbcs", + chars: "\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + // Aliases of generated encodings. + ascii8bit: "ascii", + usascii: "ascii", + ansix34: "ascii", + ansix341968: "ascii", + ansix341986: "ascii", + csascii: "ascii", + cp367: "ascii", + ibm367: "ascii", + isoir6: "ascii", + iso646us: "ascii", + iso646irv: "ascii", + us: "ascii", + latin1: "iso88591", + latin2: "iso88592", + latin3: "iso88593", + latin4: "iso88594", + latin5: "iso88599", + latin6: "iso885910", + latin7: "iso885913", + latin8: "iso885914", + latin9: "iso885915", + latin10: "iso885916", + csisolatin1: "iso88591", + csisolatin2: "iso88592", + csisolatin3: "iso88593", + csisolatin4: "iso88594", + csisolatincyrillic: "iso88595", + csisolatinarabic: "iso88596", + csisolatingreek: "iso88597", + csisolatinhebrew: "iso88598", + csisolatin5: "iso88599", + csisolatin6: "iso885910", + l1: "iso88591", + l2: "iso88592", + l3: "iso88593", + l4: "iso88594", + l5: "iso88599", + l6: "iso885910", + l7: "iso885913", + l8: "iso885914", + l9: "iso885915", + l10: "iso885916", + isoir14: "iso646jp", + isoir57: "iso646cn", + isoir100: "iso88591", + isoir101: "iso88592", + isoir109: "iso88593", + isoir110: "iso88594", + isoir144: "iso88595", + isoir127: "iso88596", + isoir126: "iso88597", + isoir138: "iso88598", + isoir148: "iso88599", + isoir157: "iso885910", + isoir166: "tis620", + isoir179: "iso885913", + isoir199: "iso885914", + isoir203: "iso885915", + isoir226: "iso885916", + cp819: "iso88591", + ibm819: "iso88591", + cyrillic: "iso88595", + arabic: "iso88596", + arabic8: "iso88596", + ecma114: "iso88596", + asmo708: "iso88596", + greek: "iso88597", + greek8: "iso88597", + ecma118: "iso88597", + elot928: "iso88597", + hebrew: "iso88598", + hebrew8: "iso88598", + iso88598i: "iso88598", + iso88598e: "iso88598", + turkish: "iso88599", + turkish8: "iso88599", + thai: "iso885911", + thai8: "iso885911", + celtic: "iso885914", + celtic8: "iso885914", + isoceltic: "iso885914", + tis6200: "tis620", + tis62025291: "tis620", + tis62025330: "tis620", + 1e4: "macroman", + 10006: "macgreek", + 10007: "maccyrillic", + 10079: "maciceland", + 10081: "macturkish", + cspc8codepage437: "cp437", + cspc775baltic: "cp775", + cspc850multilingual: "cp850", + cspcp852: "cp852", + cspc862latinhebrew: "cp862", + cpgr: "cp869", + msee: "cp1250", + mscyrl: "cp1251", + msansi: "cp1252", + msgreek: "cp1253", + msturk: "cp1254", + mshebr: "cp1255", + msarab: "cp1256", + winbaltrim: "cp1257", + cp20866: "koi8r", + 20866: "koi8r", + ibm878: "koi8r", + cskoi8r: "koi8r", + cp21866: "koi8u", + 21866: "koi8u", + ibm1168: "koi8u", + strk10482002: "rk1048", + tcvn5712: "tcvn", + tcvn57121: "tcvn", + gb198880: "iso646cn", + cn: "iso646cn", + csiso14jisc6220ro: "iso646jp", + jisc62201969ro: "iso646jp", + jp: "iso646jp", + cshproman8: "hproman8", + r8: "hproman8", + roman8: "hproman8", + xroman8: "hproman8", + ibm1051: "hproman8", + mac: "macintosh", + csmacintosh: "macintosh" + }; + } +}); + +// node_modules/iconv-lite/encodings/sbcs-data-generated.js +var require_sbcs_data_generated = __commonJS({ + "node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports2, module2) { + "use strict"; + module2.exports = { + "437": "cp437", + "737": "cp737", + "775": "cp775", + "850": "cp850", + "852": "cp852", + "855": "cp855", + "856": "cp856", + "857": "cp857", + "858": "cp858", + "860": "cp860", + "861": "cp861", + "862": "cp862", + "863": "cp863", + "864": "cp864", + "865": "cp865", + "866": "cp866", + "869": "cp869", + "874": "windows874", + "922": "cp922", + "1046": "cp1046", + "1124": "cp1124", + "1125": "cp1125", + "1129": "cp1129", + "1133": "cp1133", + "1161": "cp1161", + "1162": "cp1162", + "1163": "cp1163", + "1250": "windows1250", + "1251": "windows1251", + "1252": "windows1252", + "1253": "windows1253", + "1254": "windows1254", + "1255": "windows1255", + "1256": "windows1256", + "1257": "windows1257", + "1258": "windows1258", + "28591": "iso88591", + "28592": "iso88592", + "28593": "iso88593", + "28594": "iso88594", + "28595": "iso88595", + "28596": "iso88596", + "28597": "iso88597", + "28598": "iso88598", + "28599": "iso88599", + "28600": "iso885910", + "28601": "iso885911", + "28603": "iso885913", + "28604": "iso885914", + "28605": "iso885915", + "28606": "iso885916", + "windows874": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "win874": "windows874", + "cp874": "windows874", + "windows1250": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9" + }, + "win1250": "windows1250", + "cp1250": "windows1250", + "windows1251": { + "type": "_sbcs", + "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + }, + "win1251": "windows1251", + "cp1251": "windows1251", + "windows1252": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "win1252": "windows1252", + "cp1252": "windows1252", + "windows1253": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD" + }, + "win1253": "windows1253", + "cp1253": "windows1253", + "windows1254": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF" + }, + "win1254": "windows1254", + "cp1254": "windows1254", + "windows1255": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD" + }, + "win1255": "windows1255", + "cp1255": "windows1255", + "windows1256": { + "type": "_sbcs", + "chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2" + }, + "win1256": "windows1256", + "cp1256": "windows1256", + "windows1257": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9" + }, + "win1257": "windows1257", + "cp1257": "windows1257", + "windows1258": { + "type": "_sbcs", + "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF" + }, + "win1258": "windows1258", + "cp1258": "windows1258", + "iso88591": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "cp28591": "iso88591", + "iso88592": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9" + }, + "cp28592": "iso88592", + "iso88593": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9" + }, + "cp28593": "iso88593", + "iso88594": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9" + }, + "cp28594": "iso88594", + "iso88595": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F" + }, + "cp28595": "iso88595", + "iso88596": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "cp28596": "iso88596", + "iso88597": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD" + }, + "cp28597": "iso88597", + "iso88598": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD" + }, + "cp28598": "iso88598", + "iso88599": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF" + }, + "cp28599": "iso88599", + "iso885910": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138" + }, + "cp28600": "iso885910", + "iso885911": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "cp28601": "iso885911", + "iso885913": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019" + }, + "cp28603": "iso885913", + "iso885914": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF" + }, + "cp28604": "iso885914", + "iso885915": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "cp28605": "iso885915", + "iso885916": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF" + }, + "cp28606": "iso885916", + "cp437": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm437": "cp437", + "csibm437": "cp437", + "cp737": { + "type": "_sbcs", + "chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm737": "cp737", + "csibm737": "cp737", + "cp775": { + "type": "_sbcs", + "chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm775": "cp775", + "csibm775": "cp775", + "cp850": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm850": "cp850", + "csibm850": "cp850", + "cp852": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0" + }, + "ibm852": "cp852", + "csibm852": "cp852", + "cp855": { + "type": "_sbcs", + "chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0" + }, + "ibm855": "cp855", + "csibm855": "cp855", + "cp856": { + "type": "_sbcs", + "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm856": "cp856", + "csibm856": "cp856", + "cp857": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm857": "cp857", + "csibm857": "cp857", + "cp858": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0" + }, + "ibm858": "cp858", + "csibm858": "cp858", + "cp860": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm860": "cp860", + "csibm860": "cp860", + "cp861": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm861": "cp861", + "csibm861": "cp861", + "cp862": { + "type": "_sbcs", + "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm862": "cp862", + "csibm862": "cp862", + "cp863": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm863": "cp863", + "csibm863": "cp863", + "cp864": { + "type": "_sbcs", + "chars": "\0\x07\b \n\v\f\r\x1B !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD" + }, + "ibm864": "cp864", + "csibm864": "cp864", + "cp865": { + "type": "_sbcs", + "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0" + }, + "ibm865": "cp865", + "csibm865": "cp865", + "cp866": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0" + }, + "ibm866": "cp866", + "csibm866": "cp866", + "cp869": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0" + }, + "ibm869": "cp869", + "csibm869": "cp869", + "cp922": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF" + }, + "ibm922": "cp922", + "csibm922": "cp922", + "cp1046": { + "type": "_sbcs", + "chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD" + }, + "ibm1046": "cp1046", + "csibm1046": "cp1046", + "cp1124": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F" + }, + "ibm1124": "cp1124", + "csibm1124": "cp1124", + "cp1125": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0" + }, + "ibm1125": "cp1125", + "csibm1125": "cp1125", + "cp1129": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF" + }, + "ibm1129": "cp1129", + "csibm1129": "cp1129", + "cp1133": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD" + }, + "ibm1133": "cp1133", + "csibm1133": "cp1133", + "cp1161": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0" + }, + "ibm1161": "cp1161", + "csibm1161": "cp1161", + "cp1162": { + "type": "_sbcs", + "chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "ibm1162": "cp1162", + "csibm1162": "cp1162", + "cp1163": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF" + }, + "ibm1163": "cp1163", + "csibm1163": "cp1163", + "maccroatian": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7" + }, + "maccyrillic": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4" + }, + "macgreek": { + "type": "_sbcs", + "chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD" + }, + "maciceland": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macroman": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macromania": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macthai": { + "type": "_sbcs", + "chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "macturkish": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "macukraine": { + "type": "_sbcs", + "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4" + }, + "koi8r": { + "type": "_sbcs", + "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "koi8u": { + "type": "_sbcs", + "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "koi8ru": { + "type": "_sbcs", + "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "koi8t": { + "type": "_sbcs", + "chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + }, + "armscii8": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD" + }, + "rk1048": { + "type": "_sbcs", + "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + }, + "tcvn": { + "type": "_sbcs", + "chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0" + }, + "georgianacademy": { + "type": "_sbcs", + "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "georgianps": { + "type": "_sbcs", + "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF" + }, + "pt154": { + "type": "_sbcs", + "chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + }, + "viscii": { + "type": "_sbcs", + "chars": "\0\u1EB2\u1EB4\u1EAA\x07\b \n\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE" + }, + "iso646cn": { + "type": "_sbcs", + "chars": "\0\x07\b \n\v\f\r\x1B !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "iso646jp": { + "type": "_sbcs", + "chars": "\0\x07\b \n\v\f\r\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "hproman8": { + "type": "_sbcs", + "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD" + }, + "macintosh": { + "type": "_sbcs", + "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7" + }, + "ascii": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + }, + "tis620": { + "type": "_sbcs", + "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + } + }; + } +}); + +// node_modules/iconv-lite/encodings/dbcs-codec.js +var require_dbcs_codec = __commonJS({ + "node_modules/iconv-lite/encodings/dbcs-codec.js"(exports2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + exports2._dbcs = DBCSCodec; + var UNASSIGNED = -1; + var GB18030_CODE = -2; + var SEQ_START = -10; + var NODE_START = -1e3; + var UNASSIGNED_NODE = new Array(256); + var DEF_CHAR = -1; + for (i = 0; i < 256; i++) { + UNASSIGNED_NODE[i] = UNASSIGNED; + } + var i; + function DBCSCodec(codecOptions, iconv) { + this.encodingName = codecOptions.encodingName; + if (!codecOptions) { + throw new Error("DBCS codec is called without the data."); + } + if (!codecOptions.table) { + throw new Error("Encoding '" + this.encodingName + "' has no data."); + } + var mappingTable = codecOptions.table(); + this.decodeTables = []; + this.decodeTables[0] = UNASSIGNED_NODE.slice(0); + this.decodeTableSeq = []; + for (var i2 = 0; i2 < mappingTable.length; i2++) { + this._addDecodeChunk(mappingTable[i2]); + } + if (typeof codecOptions.gb18030 === "function") { + this.gb18030 = codecOptions.gb18030(); + var commonThirdByteNodeIdx = this.decodeTables.length; + this.decodeTables.push(UNASSIGNED_NODE.slice(0)); + var commonFourthByteNodeIdx = this.decodeTables.length; + this.decodeTables.push(UNASSIGNED_NODE.slice(0)); + var firstByteNode = this.decodeTables[0]; + for (var i2 = 129; i2 <= 254; i2++) { + var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i2]]; + for (var j = 48; j <= 57; j++) { + if (secondByteNode[j] === UNASSIGNED) { + secondByteNode[j] = NODE_START - commonThirdByteNodeIdx; + } else if (secondByteNode[j] > NODE_START) { + throw new Error("gb18030 decode tables conflict at byte 2"); + } + var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]]; + for (var k = 129; k <= 254; k++) { + if (thirdByteNode[k] === UNASSIGNED) { + thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx; + } else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) { + continue; + } else if (thirdByteNode[k] > NODE_START) { + throw new Error("gb18030 decode tables conflict at byte 3"); + } + var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]]; + for (var l = 48; l <= 57; l++) { + if (fourthByteNode[l] === UNASSIGNED) { + fourthByteNode[l] = GB18030_CODE; + } + } + } + } + } + } + this.defaultCharUnicode = iconv.defaultCharUnicode; + this.encodeTable = []; + this.encodeTableSeq = []; + var skipEncodeChars = {}; + if (codecOptions.encodeSkipVals) { + for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) { + var val = codecOptions.encodeSkipVals[i2]; + if (typeof val === "number") { + skipEncodeChars[val] = true; + } else { + for (var j = val.from; j <= val.to; j++) { + skipEncodeChars[j] = true; + } + } + } + } + this._fillEncodeTable(0, 0, skipEncodeChars); + if (codecOptions.encodeAdd) { + for (var uChar in codecOptions.encodeAdd) { + if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) { + this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]); + } + } + } + this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]; + if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]["?"]; + if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0); + } + __name(DBCSCodec, "DBCSCodec"); + DBCSCodec.prototype.encoder = DBCSEncoder; + DBCSCodec.prototype.decoder = DBCSDecoder; + DBCSCodec.prototype._getDecodeTrieNode = function(addr) { + var bytes = []; + for (; addr > 0; addr >>>= 8) { + bytes.push(addr & 255); + } + if (bytes.length == 0) { + bytes.push(0); + } + var node = this.decodeTables[0]; + for (var i2 = bytes.length - 1; i2 > 0; i2--) { + var val = node[bytes[i2]]; + if (val == UNASSIGNED) { + node[bytes[i2]] = NODE_START - this.decodeTables.length; + this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); + } else if (val <= NODE_START) { + node = this.decodeTables[NODE_START - val]; + } else { + throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16)); + } + } + return node; + }; + DBCSCodec.prototype._addDecodeChunk = function(chunk) { + var curAddr = parseInt(chunk[0], 16); + var writeTable = this._getDecodeTrieNode(curAddr); + curAddr = curAddr & 255; + for (var k = 1; k < chunk.length; k++) { + var part = chunk[k]; + if (typeof part === "string") { + for (var l = 0; l < part.length; ) { + var code = part.charCodeAt(l++); + if (code >= 55296 && code < 56320) { + var codeTrail = part.charCodeAt(l++); + if (codeTrail >= 56320 && codeTrail < 57344) { + writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320); + } else { + throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]); + } + } else if (code > 4080 && code <= 4095) { + var len = 4095 - code + 2; + var seq = []; + for (var m = 0; m < len; m++) { + seq.push(part.charCodeAt(l++)); + } + writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length; + this.decodeTableSeq.push(seq); + } else { + writeTable[curAddr++] = code; + } + } + } else if (typeof part === "number") { + var charCode = writeTable[curAddr - 1] + 1; + for (var l = 0; l < part; l++) { + writeTable[curAddr++] = charCode++; + } + } else { + throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]); + } + } + if (curAddr > 255) { + throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr); + } + }; + DBCSCodec.prototype._getEncodeBucket = function(uCode) { + var high = uCode >> 8; + if (this.encodeTable[high] === void 0) { + this.encodeTable[high] = UNASSIGNED_NODE.slice(0); + } + return this.encodeTable[high]; + }; + DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) { + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 255; + if (bucket[low] <= SEQ_START) { + this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode; + } else if (bucket[low] == UNASSIGNED) { + bucket[low] = dbcsCode; + } + }; + DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) { + var uCode = seq[0]; + var bucket = this._getEncodeBucket(uCode); + var low = uCode & 255; + var node; + if (bucket[low] <= SEQ_START) { + node = this.encodeTableSeq[SEQ_START - bucket[low]]; + } else { + node = {}; + if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; + bucket[low] = SEQ_START - this.encodeTableSeq.length; + this.encodeTableSeq.push(node); + } + for (var j = 1; j < seq.length - 1; j++) { + var oldVal = node[uCode]; + if (typeof oldVal === "object") { + node = oldVal; + } else { + node = node[uCode] = {}; + if (oldVal !== void 0) { + node[DEF_CHAR] = oldVal; + } + } + } + uCode = seq[seq.length - 1]; + node[uCode] = dbcsCode; + }; + DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) { + var node = this.decodeTables[nodeIdx]; + var hasValues = false; + var subNodeEmpty = {}; + for (var i2 = 0; i2 < 256; i2++) { + var uCode = node[i2]; + var mbCode = prefix + i2; + if (skipEncodeChars[mbCode]) { + continue; + } + if (uCode >= 0) { + this._setEncodeChar(uCode, mbCode); + hasValues = true; + } else if (uCode <= NODE_START) { + var subNodeIdx = NODE_START - uCode; + if (!subNodeEmpty[subNodeIdx]) { + var newPrefix = mbCode << 8 >>> 0; + if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars)) { + hasValues = true; + } else { + subNodeEmpty[subNodeIdx] = true; + } + } + } else if (uCode <= SEQ_START) { + this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode); + hasValues = true; + } + } + return hasValues; + }; + function DBCSEncoder(options, codec) { + this.leadSurrogate = -1; + this.seqObj = void 0; + this.encodeTable = codec.encodeTable; + this.encodeTableSeq = codec.encodeTableSeq; + this.defaultCharSingleByte = codec.defCharSB; + this.gb18030 = codec.gb18030; + } + __name(DBCSEncoder, "DBCSEncoder"); + DBCSEncoder.prototype.write = function(str) { + var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3)); + var leadSurrogate = this.leadSurrogate; + var seqObj = this.seqObj; + var nextChar = -1; + var i2 = 0; + var j = 0; + while (true) { + if (nextChar === -1) { + if (i2 == str.length) break; + var uCode = str.charCodeAt(i2++); + } else { + var uCode = nextChar; + nextChar = -1; + } + if (uCode >= 55296 && uCode < 57344) { + if (uCode < 56320) { + if (leadSurrogate === -1) { + leadSurrogate = uCode; + continue; + } else { + leadSurrogate = uCode; + uCode = UNASSIGNED; + } + } else { + if (leadSurrogate !== -1) { + uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320); + leadSurrogate = -1; + } else { + uCode = UNASSIGNED; + } + } + } else if (leadSurrogate !== -1) { + nextChar = uCode; + uCode = UNASSIGNED; + leadSurrogate = -1; + } + var dbcsCode = UNASSIGNED; + if (seqObj !== void 0 && uCode != UNASSIGNED) { + var resCode = seqObj[uCode]; + if (typeof resCode === "object") { + seqObj = resCode; + continue; + } else if (typeof resCode === "number") { + dbcsCode = resCode; + } else if (resCode == void 0) { + resCode = seqObj[DEF_CHAR]; + if (resCode !== void 0) { + dbcsCode = resCode; + nextChar = uCode; + } else { + } + } + seqObj = void 0; + } else if (uCode >= 0) { + var subtable = this.encodeTable[uCode >> 8]; + if (subtable !== void 0) { + dbcsCode = subtable[uCode & 255]; + } + if (dbcsCode <= SEQ_START) { + seqObj = this.encodeTableSeq[SEQ_START - dbcsCode]; + continue; + } + if (dbcsCode == UNASSIGNED && this.gb18030) { + var idx = findIdx(this.gb18030.uChars, uCode); + if (idx != -1) { + var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]); + newBuf[j++] = 129 + Math.floor(dbcsCode / 12600); + dbcsCode = dbcsCode % 12600; + newBuf[j++] = 48 + Math.floor(dbcsCode / 1260); + dbcsCode = dbcsCode % 1260; + newBuf[j++] = 129 + Math.floor(dbcsCode / 10); + dbcsCode = dbcsCode % 10; + newBuf[j++] = 48 + dbcsCode; + continue; + } + } + } + if (dbcsCode === UNASSIGNED) { + dbcsCode = this.defaultCharSingleByte; + } + if (dbcsCode < 256) { + newBuf[j++] = dbcsCode; + } else if (dbcsCode < 65536) { + newBuf[j++] = dbcsCode >> 8; + newBuf[j++] = dbcsCode & 255; + } else if (dbcsCode < 16777216) { + newBuf[j++] = dbcsCode >> 16; + newBuf[j++] = dbcsCode >> 8 & 255; + newBuf[j++] = dbcsCode & 255; + } else { + newBuf[j++] = dbcsCode >>> 24; + newBuf[j++] = dbcsCode >>> 16 & 255; + newBuf[j++] = dbcsCode >>> 8 & 255; + newBuf[j++] = dbcsCode & 255; + } + } + this.seqObj = seqObj; + this.leadSurrogate = leadSurrogate; + return newBuf.slice(0, j); + }; + DBCSEncoder.prototype.end = function() { + if (this.leadSurrogate === -1 && this.seqObj === void 0) { + return; + } + var newBuf = Buffer2.alloc(10); + var j = 0; + if (this.seqObj) { + var dbcsCode = this.seqObj[DEF_CHAR]; + if (dbcsCode !== void 0) { + if (dbcsCode < 256) { + newBuf[j++] = dbcsCode; + } else { + newBuf[j++] = dbcsCode >> 8; + newBuf[j++] = dbcsCode & 255; + } + } else { + } + this.seqObj = void 0; + } + if (this.leadSurrogate !== -1) { + newBuf[j++] = this.defaultCharSingleByte; + this.leadSurrogate = -1; + } + return newBuf.slice(0, j); + }; + DBCSEncoder.prototype.findIdx = findIdx; + function DBCSDecoder(options, codec) { + this.nodeIdx = 0; + this.prevBytes = []; + this.decodeTables = codec.decodeTables; + this.decodeTableSeq = codec.decodeTableSeq; + this.defaultCharUnicode = codec.defaultCharUnicode; + this.gb18030 = codec.gb18030; + } + __name(DBCSDecoder, "DBCSDecoder"); + DBCSDecoder.prototype.write = function(buf) { + var newBuf = Buffer2.alloc(buf.length * 2); + var nodeIdx = this.nodeIdx; + var prevBytes = this.prevBytes; + var prevOffset = this.prevBytes.length; + var seqStart = -this.prevBytes.length; + var uCode; + for (var i2 = 0, j = 0; i2 < buf.length; i2++) { + var curByte = i2 >= 0 ? buf[i2] : prevBytes[i2 + prevOffset]; + var uCode = this.decodeTables[nodeIdx][curByte]; + if (uCode >= 0) { + } else if (uCode === UNASSIGNED) { + uCode = this.defaultCharUnicode.charCodeAt(0); + i2 = seqStart; + } else if (uCode === GB18030_CODE) { + if (i2 >= 3) { + var ptr = (buf[i2 - 3] - 129) * 12600 + (buf[i2 - 2] - 48) * 1260 + (buf[i2 - 1] - 129) * 10 + (curByte - 48); + } else { + var ptr = (prevBytes[i2 - 3 + prevOffset] - 129) * 12600 + ((i2 - 2 >= 0 ? buf[i2 - 2] : prevBytes[i2 - 2 + prevOffset]) - 48) * 1260 + ((i2 - 1 >= 0 ? buf[i2 - 1] : prevBytes[i2 - 1 + prevOffset]) - 129) * 10 + (curByte - 48); + } + var idx = findIdx(this.gb18030.gbChars, ptr); + uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]; + } else if (uCode <= NODE_START) { + nodeIdx = NODE_START - uCode; + continue; + } else if (uCode <= SEQ_START) { + var seq = this.decodeTableSeq[SEQ_START - uCode]; + for (var k = 0; k < seq.length - 1; k++) { + uCode = seq[k]; + newBuf[j++] = uCode & 255; + newBuf[j++] = uCode >> 8; + } + uCode = seq[seq.length - 1]; + } else { + throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte); + } + if (uCode >= 65536) { + uCode -= 65536; + var uCodeLead = 55296 | uCode >> 10; + newBuf[j++] = uCodeLead & 255; + newBuf[j++] = uCodeLead >> 8; + uCode = 56320 | uCode & 1023; + } + newBuf[j++] = uCode & 255; + newBuf[j++] = uCode >> 8; + nodeIdx = 0; + seqStart = i2 + 1; + } + this.nodeIdx = nodeIdx; + this.prevBytes = seqStart >= 0 ? Array.prototype.slice.call(buf, seqStart) : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf)); + return newBuf.slice(0, j).toString("ucs2"); + }; + DBCSDecoder.prototype.end = function() { + var ret = ""; + while (this.prevBytes.length > 0) { + ret += this.defaultCharUnicode; + var bytesArr = this.prevBytes.slice(1); + this.prevBytes = []; + this.nodeIdx = 0; + if (bytesArr.length > 0) { + ret += this.write(bytesArr); + } + } + this.prevBytes = []; + this.nodeIdx = 0; + return ret; + }; + function findIdx(table, val) { + if (table[0] > val) { + return -1; + } + var l = 0; + var r = table.length; + while (l < r - 1) { + var mid = l + (r - l + 1 >> 1); + if (table[mid] <= val) { + l = mid; + } else { + r = mid; + } + } + return l; + } + __name(findIdx, "findIdx"); + } +}); + +// node_modules/iconv-lite/encodings/tables/shiftjis.json +var require_shiftjis = __commonJS({ + "node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 128], + ["a1", "\uFF61", 62], + ["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"], + ["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"], + ["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"], + ["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"], + ["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"], + ["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"], + ["81fc", "\u25EF"], + ["824f", "\uFF10", 9], + ["8260", "\uFF21", 25], + ["8281", "\uFF41", 25], + ["829f", "\u3041", 82], + ["8340", "\u30A1", 62], + ["8380", "\u30E0", 22], + ["839f", "\u0391", 16, "\u03A3", 6], + ["83bf", "\u03B1", 16, "\u03C3", 6], + ["8440", "\u0410", 5, "\u0401\u0416", 25], + ["8470", "\u0430", 5, "\u0451\u0436", 7], + ["8480", "\u043E", 17], + ["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"], + ["8740", "\u2460", 19, "\u2160", 9], + ["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"], + ["877e", "\u337B"], + ["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"], + ["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"], + ["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"], + ["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"], + ["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"], + ["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"], + ["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"], + ["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"], + ["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"], + ["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"], + ["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"], + ["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"], + ["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"], + ["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"], + ["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"], + ["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"], + ["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"], + ["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"], + ["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"], + ["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"], + ["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"], + ["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"], + ["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"], + ["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"], + ["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"], + ["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"], + ["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"], + ["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"], + ["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"], + ["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"], + ["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"], + ["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"], + ["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"], + ["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"], + ["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"], + ["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"], + ["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"], + ["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"], + ["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"], + ["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"], + ["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"], + ["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"], + ["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"], + ["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"], + ["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"], + ["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"], + ["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"], + ["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"], + ["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"], + ["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"], + ["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"], + ["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"], + ["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"], + ["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"], + ["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"], + ["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"], + ["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"], + ["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"], + ["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"], + ["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"], + ["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"], + ["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"], + ["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"], + ["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"], + ["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"], + ["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"], + ["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"], + ["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"], + ["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"], + ["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"], + ["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"], + ["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"], + ["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"], + ["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"], + ["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"], + ["f040", "\uE000", 62], + ["f080", "\uE03F", 124], + ["f140", "\uE0BC", 62], + ["f180", "\uE0FB", 124], + ["f240", "\uE178", 62], + ["f280", "\uE1B7", 124], + ["f340", "\uE234", 62], + ["f380", "\uE273", 124], + ["f440", "\uE2F0", 62], + ["f480", "\uE32F", 124], + ["f540", "\uE3AC", 62], + ["f580", "\uE3EB", 124], + ["f640", "\uE468", 62], + ["f680", "\uE4A7", 124], + ["f740", "\uE524", 62], + ["f780", "\uE563", 124], + ["f840", "\uE5E0", 62], + ["f880", "\uE61F", 124], + ["f940", "\uE69C"], + ["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"], + ["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"], + ["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"], + ["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"], + ["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/eucjp.json +var require_eucjp = __commonJS({ + "node_modules/iconv-lite/encodings/tables/eucjp.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 127], + ["8ea1", "\uFF61", 62], + ["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"], + ["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"], + ["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"], + ["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"], + ["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"], + ["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"], + ["a2fe", "\u25EF"], + ["a3b0", "\uFF10", 9], + ["a3c1", "\uFF21", 25], + ["a3e1", "\uFF41", 25], + ["a4a1", "\u3041", 82], + ["a5a1", "\u30A1", 85], + ["a6a1", "\u0391", 16, "\u03A3", 6], + ["a6c1", "\u03B1", 16, "\u03C3", 6], + ["a7a1", "\u0410", 5, "\u0401\u0416", 25], + ["a7d1", "\u0430", 5, "\u0451\u0436", 25], + ["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"], + ["ada1", "\u2460", 19, "\u2160", 9], + ["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"], + ["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"], + ["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"], + ["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"], + ["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"], + ["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"], + ["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"], + ["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"], + ["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"], + ["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"], + ["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"], + ["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"], + ["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"], + ["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"], + ["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"], + ["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"], + ["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"], + ["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"], + ["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"], + ["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"], + ["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"], + ["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"], + ["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"], + ["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"], + ["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"], + ["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"], + ["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"], + ["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"], + ["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"], + ["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"], + ["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"], + ["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"], + ["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"], + ["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"], + ["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"], + ["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"], + ["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"], + ["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"], + ["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"], + ["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"], + ["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"], + ["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"], + ["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"], + ["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"], + ["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"], + ["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"], + ["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"], + ["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"], + ["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"], + ["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"], + ["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"], + ["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"], + ["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"], + ["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"], + ["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"], + ["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"], + ["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"], + ["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"], + ["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"], + ["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"], + ["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"], + ["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"], + ["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"], + ["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"], + ["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"], + ["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"], + ["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"], + ["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"], + ["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"], + ["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"], + ["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"], + ["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"], + ["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"], + ["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"], + ["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"], + ["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"], + ["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"], + ["8fa2c2", "\xA1\xA6\xBF"], + ["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"], + ["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"], + ["8fa6e7", "\u038C"], + ["8fa6e9", "\u038E\u03AB"], + ["8fa6ec", "\u038F"], + ["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"], + ["8fa7c2", "\u0402", 10, "\u040E\u040F"], + ["8fa7f2", "\u0452", 10, "\u045E\u045F"], + ["8fa9a1", "\xC6\u0110"], + ["8fa9a4", "\u0126"], + ["8fa9a6", "\u0132"], + ["8fa9a8", "\u0141\u013F"], + ["8fa9ab", "\u014A\xD8\u0152"], + ["8fa9af", "\u0166\xDE"], + ["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"], + ["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"], + ["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"], + ["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"], + ["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"], + ["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"], + ["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"], + ["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"], + ["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"], + ["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"], + ["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"], + ["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"], + ["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"], + ["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"], + ["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"], + ["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"], + ["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"], + ["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"], + ["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"], + ["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"], + ["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"], + ["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"], + ["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"], + ["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"], + ["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"], + ["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"], + ["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"], + ["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"], + ["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"], + ["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"], + ["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"], + ["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"], + ["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"], + ["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"], + ["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"], + ["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"], + ["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"], + ["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"], + ["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"], + ["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"], + ["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5], + ["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"], + ["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"], + ["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"], + ["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"], + ["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"], + ["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"], + ["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"], + ["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"], + ["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"], + ["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"], + ["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"], + ["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"], + ["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"], + ["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"], + ["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"], + ["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"], + ["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"], + ["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"], + ["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"], + ["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"], + ["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"], + ["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"], + ["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4], + ["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"], + ["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"], + ["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"], + ["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/cp936.json +var require_cp936 = __commonJS({ + "node_modules/iconv-lite/encodings/tables/cp936.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 127, "\u20AC"], + ["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"], + ["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"], + ["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11], + ["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"], + ["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"], + ["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5], + ["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"], + ["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"], + ["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"], + ["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"], + ["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"], + ["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"], + ["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4], + ["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6], + ["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"], + ["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7], + ["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"], + ["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"], + ["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"], + ["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5], + ["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"], + ["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6], + ["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"], + ["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4], + ["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4], + ["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"], + ["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"], + ["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6], + ["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"], + ["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"], + ["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"], + ["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6], + ["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"], + ["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"], + ["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"], + ["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"], + ["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"], + ["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"], + ["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8], + ["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"], + ["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"], + ["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"], + ["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"], + ["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5], + ["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"], + ["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"], + ["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"], + ["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"], + ["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5], + ["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6], + ["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"], + ["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"], + ["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"], + ["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"], + ["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"], + ["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5], + ["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"], + ["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"], + ["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6], + ["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"], + ["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"], + ["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4], + ["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19], + ["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"], + ["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"], + ["a2a1", "\u2170", 9], + ["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9], + ["a2e5", "\u3220", 9], + ["a2f1", "\u2160", 11], + ["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"], + ["a4a1", "\u3041", 82], + ["a5a1", "\u30A1", 85], + ["a6a1", "\u0391", 16, "\u03A3", 6], + ["a6c1", "\u03B1", 16, "\u03C3", 6], + ["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"], + ["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"], + ["a6f4", "\uFE33\uFE34"], + ["a7a1", "\u0410", 5, "\u0401\u0416", 25], + ["a7d1", "\u0430", 5, "\u0451\u0436", 25], + ["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6], + ["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"], + ["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"], + ["a8bd", "\u0144\u0148"], + ["a8c0", "\u0261"], + ["a8c5", "\u3105", 36], + ["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"], + ["a959", "\u2121\u3231"], + ["a95c", "\u2010"], + ["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8], + ["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"], + ["a996", "\u3007"], + ["a9a4", "\u2500", 75], + ["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8], + ["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"], + ["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4], + ["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4], + ["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11], + ["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"], + ["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12], + ["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"], + ["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"], + ["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"], + ["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"], + ["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"], + ["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"], + ["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"], + ["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"], + ["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"], + ["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4], + ["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"], + ["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"], + ["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"], + ["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9], + ["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"], + ["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"], + ["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"], + ["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"], + ["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"], + ["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16], + ["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"], + ["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"], + ["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"], + ["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"], + ["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"], + ["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"], + ["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"], + ["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9], + ["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"], + ["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5], + ["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"], + ["bd40", "\u7D37", 54, "\u7D6F", 7], + ["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"], + ["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42], + ["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"], + ["bf40", "\u7DFB", 62], + ["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"], + ["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"], + ["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"], + ["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"], + ["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"], + ["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"], + ["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"], + ["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"], + ["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"], + ["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"], + ["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"], + ["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"], + ["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"], + ["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"], + ["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"], + ["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"], + ["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"], + ["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"], + ["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"], + ["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"], + ["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"], + ["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10], + ["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"], + ["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"], + ["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"], + ["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"], + ["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"], + ["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"], + ["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"], + ["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"], + ["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"], + ["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9], + ["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"], + ["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"], + ["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"], + ["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5], + ["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"], + ["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"], + ["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"], + ["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6], + ["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"], + ["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21], + ["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"], + ["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46], + ["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"], + ["d640", "\u8AE4", 34, "\u8B08", 27], + ["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"], + ["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25], + ["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"], + ["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"], + ["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"], + ["d940", "\u8CAE", 62], + ["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"], + ["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"], + ["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"], + ["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"], + ["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"], + ["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7], + ["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"], + ["dd40", "\u8EE5", 62], + ["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"], + ["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"], + ["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"], + ["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"], + ["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"], + ["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"], + ["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"], + ["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"], + ["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"], + ["e240", "\u91E6", 62], + ["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"], + ["e340", "\u9246", 45, "\u9275", 16], + ["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"], + ["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31], + ["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"], + ["e540", "\u930A", 51, "\u933F", 10], + ["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"], + ["e640", "\u936C", 34, "\u9390", 27], + ["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"], + ["e740", "\u93CE", 7, "\u93D7", 54], + ["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"], + ["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"], + ["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"], + ["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42], + ["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"], + ["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"], + ["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"], + ["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"], + ["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"], + ["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7], + ["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"], + ["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46], + ["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"], + ["ee40", "\u980F", 62], + ["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"], + ["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4], + ["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"], + ["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26], + ["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"], + ["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47], + ["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"], + ["f240", "\u99FA", 62], + ["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"], + ["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"], + ["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"], + ["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5], + ["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"], + ["f540", "\u9B7C", 62], + ["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"], + ["f640", "\u9BDC", 62], + ["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"], + ["f740", "\u9C3C", 62], + ["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"], + ["f840", "\u9CE3", 62], + ["f880", "\u9D22", 32], + ["f940", "\u9D43", 62], + ["f980", "\u9D82", 32], + ["fa40", "\u9DA3", 62], + ["fa80", "\u9DE2", 32], + ["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"], + ["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"], + ["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6], + ["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"], + ["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38], + ["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"], + ["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/gbk-added.json +var require_gbk_added = __commonJS({ + "node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports2, module2) { + module2.exports = [ + ["a140", "\uE4C6", 62], + ["a180", "\uE505", 32], + ["a240", "\uE526", 62], + ["a280", "\uE565", 32], + ["a2ab", "\uE766", 5], + ["a2e3", "\u20AC\uE76D"], + ["a2ef", "\uE76E\uE76F"], + ["a2fd", "\uE770\uE771"], + ["a340", "\uE586", 62], + ["a380", "\uE5C5", 31, "\u3000"], + ["a440", "\uE5E6", 62], + ["a480", "\uE625", 32], + ["a4f4", "\uE772", 10], + ["a540", "\uE646", 62], + ["a580", "\uE685", 32], + ["a5f7", "\uE77D", 7], + ["a640", "\uE6A6", 62], + ["a680", "\uE6E5", 32], + ["a6b9", "\uE785", 7], + ["a6d9", "\uE78D", 6], + ["a6ec", "\uE794\uE795"], + ["a6f3", "\uE796"], + ["a6f6", "\uE797", 8], + ["a740", "\uE706", 62], + ["a780", "\uE745", 32], + ["a7c2", "\uE7A0", 14], + ["a7f2", "\uE7AF", 12], + ["a896", "\uE7BC", 10], + ["a8bc", "\u1E3F"], + ["a8bf", "\u01F9"], + ["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"], + ["a8ea", "\uE7CD", 20], + ["a958", "\uE7E2"], + ["a95b", "\uE7E3"], + ["a95d", "\uE7E4\uE7E5\uE7E6"], + ["a989", "\u303E\u2FF0", 11], + ["a997", "\uE7F4", 12], + ["a9f0", "\uE801", 14], + ["aaa1", "\uE000", 93], + ["aba1", "\uE05E", 93], + ["aca1", "\uE0BC", 93], + ["ada1", "\uE11A", 93], + ["aea1", "\uE178", 93], + ["afa1", "\uE1D6", 93], + ["d7fa", "\uE810", 4], + ["f8a1", "\uE234", 93], + ["f9a1", "\uE292", 93], + ["faa1", "\uE2F0", 93], + ["fba1", "\uE34E", 93], + ["fca1", "\uE3AC", 93], + ["fda1", "\uE40A", 93], + ["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"], + ["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93], + ["8135f437", "\uE7C7"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +var require_gb18030_ranges = __commonJS({ + "node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports2, module2) { + module2.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] }; + } +}); + +// node_modules/iconv-lite/encodings/tables/cp949.json +var require_cp949 = __commonJS({ + "node_modules/iconv-lite/encodings/tables/cp949.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 127], + ["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"], + ["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"], + ["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"], + ["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5], + ["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"], + ["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18], + ["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7], + ["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"], + ["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8], + ["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8], + ["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18], + ["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"], + ["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4], + ["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"], + ["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"], + ["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"], + ["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10], + ["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"], + ["8741", "\uB19E", 9, "\uB1A9", 15], + ["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"], + ["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4], + ["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4], + ["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"], + ["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"], + ["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"], + ["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"], + ["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15], + ["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"], + ["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"], + ["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"], + ["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"], + ["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8], + ["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18], + ["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4], + ["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5], + ["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16], + ["8d41", "\uB6C3", 16, "\uB6D5", 8], + ["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"], + ["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"], + ["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8], + ["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19], + ["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7], + ["8f41", "\uB885", 7, "\uB88E", 17], + ["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4], + ["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5], + ["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"], + ["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15], + ["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"], + ["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5], + ["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5], + ["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6], + ["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"], + ["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4], + ["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"], + ["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"], + ["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8], + ["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"], + ["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8], + ["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12], + ["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24], + ["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"], + ["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"], + ["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14], + ["9641", "\uBEB8", 23, "\uBED2\uBED3"], + ["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8], + ["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44], + ["9741", "\uBF83", 16, "\uBF95", 8], + ["9761", "\uBF9E", 17, "\uBFB1", 7], + ["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"], + ["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"], + ["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15], + ["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"], + ["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"], + ["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"], + ["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"], + ["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16], + ["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"], + ["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"], + ["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8], + ["9b61", "\uC333", 17, "\uC346", 7], + ["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"], + ["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5], + ["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9], + ["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12], + ["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8], + ["9d61", "\uC4C6", 25], + ["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"], + ["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"], + ["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"], + ["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"], + ["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"], + ["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"], + ["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"], + ["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"], + ["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13], + ["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"], + ["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"], + ["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"], + ["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"], + ["a241", "\uC910\uC912", 5, "\uC919", 18], + ["a261", "\uC92D", 6, "\uC935", 18], + ["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"], + ["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"], + ["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16], + ["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"], + ["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"], + ["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12], + ["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93], + ["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"], + ["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"], + ["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9], + ["a5b0", "\u2160", 9], + ["a5c1", "\u0391", 16, "\u03A3", 6], + ["a5e1", "\u03B1", 16, "\u03C3", 6], + ["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"], + ["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6], + ["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7], + ["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7], + ["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"], + ["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"], + ["a841", "\uCB6D", 10, "\uCB7A", 14], + ["a861", "\uCB89", 18, "\uCB9D", 6], + ["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"], + ["a8a6", "\u0132"], + ["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"], + ["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"], + ["a941", "\uCBC5", 14, "\uCBD5", 10], + ["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18], + ["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"], + ["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"], + ["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"], + ["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82], + ["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"], + ["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5], + ["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85], + ["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"], + ["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4], + ["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25], + ["acd1", "\u0430", 5, "\u0451\u0436", 25], + ["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7], + ["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"], + ["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"], + ["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16], + ["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4], + ["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"], + ["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19], + ["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"], + ["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"], + ["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12], + ["b061", "\uCEBB", 5, "\uCEC2", 19], + ["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"], + ["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"], + ["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11], + ["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"], + ["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"], + ["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"], + ["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"], + ["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"], + ["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5], + ["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"], + ["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5], + ["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"], + ["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"], + ["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5], + ["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4], + ["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"], + ["b641", "\uD105", 7, "\uD10E", 17], + ["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"], + ["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"], + ["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"], + ["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"], + ["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"], + ["b841", "\uD1D0", 7, "\uD1D9", 17], + ["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13], + ["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"], + ["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"], + ["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"], + ["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"], + ["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"], + ["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5], + ["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"], + ["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"], + ["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"], + ["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"], + ["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"], + ["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"], + ["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"], + ["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"], + ["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13], + ["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"], + ["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14], + ["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"], + ["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"], + ["bf41", "\uD49E", 10, "\uD4AA", 14], + ["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"], + ["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"], + ["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5], + ["c061", "\uD51E", 25], + ["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"], + ["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"], + ["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"], + ["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"], + ["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"], + ["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"], + ["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"], + ["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4], + ["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11], + ["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"], + ["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"], + ["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4], + ["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"], + ["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"], + ["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4], + ["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"], + ["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5], + ["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"], + ["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"], + ["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"], + ["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"], + ["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"], + ["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"], + ["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"], + ["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"], + ["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"], + ["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"], + ["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"], + ["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"], + ["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"], + ["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"], + ["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"], + ["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"], + ["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"], + ["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"], + ["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"], + ["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"], + ["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"], + ["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"], + ["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"], + ["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"], + ["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"], + ["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"], + ["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"], + ["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"], + ["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"], + ["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"], + ["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"], + ["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"], + ["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"], + ["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"], + ["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"], + ["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"], + ["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"], + ["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"], + ["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"], + ["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"], + ["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"], + ["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"], + ["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"], + ["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"], + ["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"], + ["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"], + ["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"], + ["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"], + ["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"], + ["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"], + ["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"], + ["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"], + ["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"], + ["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"], + ["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/cp950.json +var require_cp950 = __commonJS({ + "node_modules/iconv-lite/encodings/tables/cp950.json"(exports2, module2) { + module2.exports = [ + ["0", "\0", 127], + ["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"], + ["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"], + ["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"], + ["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21], + ["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10], + ["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"], + ["a3e1", "\u20AC"], + ["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"], + ["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"], + ["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"], + ["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"], + ["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"], + ["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"], + ["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"], + ["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"], + ["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"], + ["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"], + ["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"], + ["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"], + ["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"], + ["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"], + ["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"], + ["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"], + ["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"], + ["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"], + ["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"], + ["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"], + ["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"], + ["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"], + ["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"], + ["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"], + ["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"], + ["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"], + ["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"], + ["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"], + ["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"], + ["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"], + ["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"], + ["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"], + ["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"], + ["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"], + ["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"], + ["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"], + ["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"], + ["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"], + ["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"], + ["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"], + ["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"], + ["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"], + ["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"], + ["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"], + ["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"], + ["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"], + ["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"], + ["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"], + ["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"], + ["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"], + ["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"], + ["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"], + ["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"], + ["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"], + ["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"], + ["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"], + ["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"], + ["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"], + ["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"], + ["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"], + ["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"], + ["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"], + ["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"], + ["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"], + ["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"], + ["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"], + ["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"], + ["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"], + ["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"], + ["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"], + ["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"], + ["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"], + ["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"], + ["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"], + ["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"], + ["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"], + ["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"], + ["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"], + ["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"], + ["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"], + ["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"], + ["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"], + ["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"], + ["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"], + ["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"], + ["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"], + ["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"], + ["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"], + ["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"], + ["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"], + ["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"], + ["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"], + ["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"], + ["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"], + ["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"], + ["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"], + ["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"], + ["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"], + ["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"], + ["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"], + ["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"], + ["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"], + ["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"], + ["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"], + ["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"], + ["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"], + ["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"], + ["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"], + ["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"], + ["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"], + ["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"], + ["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"], + ["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"], + ["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"], + ["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"], + ["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"], + ["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"], + ["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"], + ["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"], + ["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"], + ["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"], + ["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"], + ["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"], + ["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"], + ["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"], + ["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"], + ["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"], + ["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"], + ["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"], + ["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"], + ["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"], + ["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"], + ["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"], + ["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"], + ["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"], + ["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"], + ["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"], + ["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"], + ["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"], + ["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"], + ["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"], + ["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"], + ["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"], + ["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"], + ["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"], + ["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"], + ["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"], + ["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"], + ["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"], + ["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"], + ["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"], + ["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"], + ["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"], + ["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"], + ["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"], + ["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"], + ["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"], + ["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"], + ["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"], + ["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"], + ["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"], + ["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"], + ["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"], + ["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"], + ["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"], + ["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"], + ["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/tables/big5-added.json +var require_big5_added = __commonJS({ + "node_modules/iconv-lite/encodings/tables/big5-added.json"(exports2, module2) { + module2.exports = [ + ["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"], + ["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"], + ["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"], + ["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"], + ["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"], + ["8940", "\u{2A3A9}\u{21145}"], + ["8943", "\u650A"], + ["8946", "\u4E3D\u6EDD\u9D4E\u91DF"], + ["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"], + ["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"], + ["89ab", "\u918C\u78B8\u915E\u80BC"], + ["89b0", "\u8D0B\u80F6\u{209E7}"], + ["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"], + ["89c1", "\u6E9A\u823E\u7519"], + ["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"], + ["8a40", "\u{27D84}\u5525"], + ["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"], + ["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"], + ["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"], + ["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"], + ["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"], + ["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"], + ["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"], + ["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"], + ["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"], + ["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"], + ["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"], + ["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"], + ["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"], + ["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"], + ["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"], + ["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"], + ["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"], + ["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"], + ["8cc9", "\u9868\u676B\u4276\u573D"], + ["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"], + ["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"], + ["8d40", "\u{20B9F}"], + ["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"], + ["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"], + ["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"], + ["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"], + ["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"], + ["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"], + ["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"], + ["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"], + ["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"], + ["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"], + ["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"], + ["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"], + ["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"], + ["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"], + ["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"], + ["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"], + ["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"], + ["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"], + ["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"], + ["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"], + ["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"], + ["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"], + ["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"], + ["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"], + ["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"], + ["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"], + ["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"], + ["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"], + ["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"], + ["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"], + ["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"], + ["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"], + ["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"], + ["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"], + ["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"], + ["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"], + ["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"], + ["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"], + ["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"], + ["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"], + ["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"], + ["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"], + ["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"], + ["9fae", "\u9159\u9681\u915C"], + ["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"], + ["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"], + ["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"], + ["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"], + ["9fe7", "\u6BFA\u8818\u7F78"], + ["9feb", "\u5620\u{2A64A}\u8E77\u9F53"], + ["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"], + ["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"], + ["a055", "\u{2183B}\u{26E05}"], + ["a058", "\u8A7E\u{2251B}"], + ["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"], + ["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"], + ["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"], + ["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"], + ["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"], + ["a0ae", "\u77FE"], + ["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"], + ["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"], + ["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"], + ["a3c0", "\u2400", 31, "\u2421"], + ["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23], + ["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"], + ["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4], + ["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"], + ["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"], + ["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"], + ["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"], + ["f9fe", "\uFFED"], + ["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"], + ["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"], + ["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"], + ["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"], + ["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"], + ["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"], + ["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"], + ["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"], + ["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"], + ["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"] + ]; + } +}); + +// node_modules/iconv-lite/encodings/dbcs-data.js +var require_dbcs_data = __commonJS({ + "node_modules/iconv-lite/encodings/dbcs-data.js"(exports2, module2) { + "use strict"; + module2.exports = { + // == Japanese/ShiftJIS ==================================================== + // All japanese encodings are based on JIS X set of standards: + // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF. + // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. + // Has several variations in 1978, 1983, 1990 and 1997. + // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead. + // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233. + // 2 planes, first is superset of 0208, second - revised 0212. + // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx) + // Byte encodings are: + // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte + // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC. + // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI. + // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes. + // 0x00-0x7F - lower part of 0201 + // 0x8E, 0xA1-0xDF - upper part of 0201 + // (0xA1-0xFE)x2 - 0208 plane (94x94). + // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94). + // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon. + // Used as-is in ISO2022 family. + // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, + // 0201-1976 Roman, 0208-1978, 0208-1983. + // * ISO2022-JP-1: Adds esc seq for 0212-1990. + // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7. + // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2. + // * ISO2022-JP-2004: Adds 0213-2004 Plane 1. + // + // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes. + // + // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html + shiftjis: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_shiftjis(); + }, "table"), + encodeAdd: { "\xA5": 92, "\u203E": 126 }, + encodeSkipVals: [{ from: 60736, to: 63808 }] + }, + csshiftjis: "shiftjis", + mskanji: "shiftjis", + sjis: "shiftjis", + windows31j: "shiftjis", + ms31j: "shiftjis", + xsjis: "shiftjis", + windows932: "shiftjis", + ms932: "shiftjis", + 932: "shiftjis", + cp932: "shiftjis", + eucjp: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_eucjp(); + }, "table"), + encodeAdd: { "\xA5": 92, "\u203E": 126 } + }, + // TODO: KDDI extension to Shift_JIS + // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes. + // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars. + // == Chinese/GBK ========================================================== + // http://en.wikipedia.org/wiki/GBK + // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder + // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936 + gb2312: "cp936", + gb231280: "cp936", + gb23121980: "cp936", + csgb2312: "cp936", + csiso58gb231280: "cp936", + euccn: "cp936", + // Microsoft's CP936 is a subset and approximation of GBK. + windows936: "cp936", + ms936: "cp936", + 936: "cp936", + cp936: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp936(); + }, "table") + }, + // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other. + gbk: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp936().concat(require_gbk_added()); + }, "table") + }, + xgbk: "gbk", + isoir58: "gbk", + // GB18030 is an algorithmic extension of GBK. + // Main source: https://www.w3.org/TR/encoding/#gbk-encoder + // http://icu-project.org/docs/papers/gb18030.html + // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml + // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0 + gb18030: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp936().concat(require_gbk_added()); + }, "table"), + gb18030: /* @__PURE__ */ __name(function() { + return require_gb18030_ranges(); + }, "gb18030"), + encodeSkipVals: [128], + encodeAdd: { "\u20AC": 41699 } + }, + chinese: "gb18030", + // == Korean =============================================================== + // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same. + windows949: "cp949", + ms949: "cp949", + 949: "cp949", + cp949: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp949(); + }, "table") + }, + cseuckr: "cp949", + csksc56011987: "cp949", + euckr: "cp949", + isoir149: "cp949", + korean: "cp949", + ksc56011987: "cp949", + ksc56011989: "cp949", + ksc5601: "cp949", + // == Big5/Taiwan/Hong Kong ================================================ + // There are lots of tables for Big5 and cp950. Please see the following links for history: + // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html + // Variations, in roughly number of defined chars: + // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT + // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/ + // * Big5-2003 (Taiwan standard) almost superset of cp950. + // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers. + // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. + // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years. + // Plus, it has 4 combining sequences. + // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299 + // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way. + // Implementations are not consistent within browsers; sometimes labeled as just big5. + // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied. + // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31 + // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s. + // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt + // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt + // + // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder + // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong. + windows950: "cp950", + ms950: "cp950", + 950: "cp950", + cp950: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp950(); + }, "table") + }, + // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus. + big5: "big5hkscs", + big5hkscs: { + type: "_dbcs", + table: /* @__PURE__ */ __name(function() { + return require_cp950().concat(require_big5_added()); + }, "table"), + encodeSkipVals: [ + // Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of + // https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU. + // But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter. + 36457, + 36463, + 36478, + 36523, + 36532, + 36557, + 36560, + 36695, + 36713, + 36718, + 36811, + 36862, + 36973, + 36986, + 37060, + 37084, + 37105, + 37311, + 37551, + 37552, + 37553, + 37554, + 37585, + 37959, + 38090, + 38361, + 38652, + 39285, + 39798, + 39800, + 39803, + 39878, + 39902, + 39916, + 39926, + 40002, + 40019, + 40034, + 40040, + 40043, + 40055, + 40124, + 40125, + 40144, + 40279, + 40282, + 40388, + 40431, + 40443, + 40617, + 40687, + 40701, + 40800, + 40907, + 41079, + 41180, + 41183, + 36812, + 37576, + 38468, + 38637, + // Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345 + 41636, + 41637, + 41639, + 41638, + 41676, + 41678 + ] + }, + cnbig5: "big5hkscs", + csbig5: "big5hkscs", + xxbig5: "big5hkscs" + }; + } +}); + +// node_modules/iconv-lite/encodings/index.js +var require_encodings = __commonJS({ + "node_modules/iconv-lite/encodings/index.js"(exports2, module2) { + "use strict"; + var mergeModules = require_merge_exports(); + var modules = [ + require_internal(), + require_utf32(), + require_utf16(), + require_utf7(), + require_sbcs_codec(), + require_sbcs_data(), + require_sbcs_data_generated(), + require_dbcs_codec(), + require_dbcs_data() + ]; + for (i = 0; i < modules.length; i++) { + module2 = modules[i]; + mergeModules(exports2, module2); + } + var module2; + var i; + } +}); + +// node_modules/iconv-lite/lib/streams.js +var require_streams = __commonJS({ + "node_modules/iconv-lite/lib/streams.js"(exports2, module2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + module2.exports = function(streamModule) { + var Transform = streamModule.Transform; + function IconvLiteEncoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.decodeStrings = false; + Transform.call(this, options); + } + __name(IconvLiteEncoderStream, "IconvLiteEncoderStream"); + IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteEncoderStream } + }); + IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) { + if (typeof chunk !== "string") { + return done(new Error("Iconv encoding stream needs strings as its input.")); + } + try { + var res = this.conv.write(chunk); + if (res && res.length) this.push(res); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteEncoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) this.push(res); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteEncoderStream.prototype.collect = function(cb) { + var chunks = []; + this.on("error", cb); + this.on("data", function(chunk) { + chunks.push(chunk); + }); + this.on("end", function() { + cb(null, Buffer2.concat(chunks)); + }); + return this; + }; + function IconvLiteDecoderStream(conv, options) { + this.conv = conv; + options = options || {}; + options.encoding = this.encoding = "utf8"; + Transform.call(this, options); + } + __name(IconvLiteDecoderStream, "IconvLiteDecoderStream"); + IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, { + constructor: { value: IconvLiteDecoderStream } + }); + IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) { + if (!Buffer2.isBuffer(chunk) && !(chunk instanceof Uint8Array)) { + return done(new Error("Iconv decoding stream needs buffers as its input.")); + } + try { + var res = this.conv.write(chunk); + if (res && res.length) this.push(res, this.encoding); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteDecoderStream.prototype._flush = function(done) { + try { + var res = this.conv.end(); + if (res && res.length) this.push(res, this.encoding); + done(); + } catch (e) { + done(e); + } + }; + IconvLiteDecoderStream.prototype.collect = function(cb) { + var res = ""; + this.on("error", cb); + this.on("data", function(chunk) { + res += chunk; + }); + this.on("end", function() { + cb(null, res); + }); + return this; + }; + return { + IconvLiteEncoderStream, + IconvLiteDecoderStream + }; + }; + } +}); + +// node_modules/iconv-lite/lib/index.js +var require_lib3 = __commonJS({ + "node_modules/iconv-lite/lib/index.js"(exports2, module2) { + "use strict"; + var Buffer2 = require_safer().Buffer; + var bomHandling = require_bom_handling(); + var mergeModules = require_merge_exports(); + module2.exports.encodings = null; + module2.exports.defaultCharUnicode = "\uFFFD"; + module2.exports.defaultCharSingleByte = "?"; + module2.exports.encode = /* @__PURE__ */ __name(function encode(str, encoding, options) { + str = "" + (str || ""); + var encoder = module2.exports.getEncoder(encoding, options); + var res = encoder.write(str); + var trail = encoder.end(); + return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res; + }, "encode"); + module2.exports.decode = /* @__PURE__ */ __name(function decode(buf, encoding, options) { + if (typeof buf === "string") { + if (!module2.exports.skipDecodeWarning) { + console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"); + module2.exports.skipDecodeWarning = true; + } + buf = Buffer2.from("" + (buf || ""), "binary"); + } + var decoder = module2.exports.getDecoder(encoding, options); + var res = decoder.write(buf); + var trail = decoder.end(); + return trail ? res + trail : res; + }, "decode"); + module2.exports.encodingExists = /* @__PURE__ */ __name(function encodingExists(enc) { + try { + module2.exports.getCodec(enc); + return true; + } catch (e) { + return false; + } + }, "encodingExists"); + module2.exports.toEncoding = module2.exports.encode; + module2.exports.fromEncoding = module2.exports.decode; + module2.exports._codecDataCache = { __proto__: null }; + module2.exports.getCodec = /* @__PURE__ */ __name(function getCodec(encoding) { + if (!module2.exports.encodings) { + var raw2 = require_encodings(); + module2.exports.encodings = { __proto__: null }; + mergeModules(module2.exports.encodings, raw2); + } + var enc = module2.exports._canonicalizeEncoding(encoding); + var codecOptions = {}; + while (true) { + var codec = module2.exports._codecDataCache[enc]; + if (codec) { + return codec; + } + var codecDef = module2.exports.encodings[enc]; + switch (typeof codecDef) { + case "string": + enc = codecDef; + break; + case "object": + for (var key in codecDef) { + codecOptions[key] = codecDef[key]; + } + if (!codecOptions.encodingName) { + codecOptions.encodingName = enc; + } + enc = codecDef.type; + break; + case "function": + if (!codecOptions.encodingName) { + codecOptions.encodingName = enc; + } + codec = new codecDef(codecOptions, module2.exports); + module2.exports._codecDataCache[codecOptions.encodingName] = codec; + return codec; + default: + throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); + } + } + }, "getCodec"); + module2.exports._canonicalizeEncoding = function(encoding) { + return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); + }; + module2.exports.getEncoder = /* @__PURE__ */ __name(function getEncoder(encoding, options) { + var codec = module2.exports.getCodec(encoding); + var encoder = new codec.encoder(options, codec); + if (codec.bomAware && options && options.addBOM) { + encoder = new bomHandling.PrependBOM(encoder, options); + } + return encoder; + }, "getEncoder"); + module2.exports.getDecoder = /* @__PURE__ */ __name(function getDecoder(encoding, options) { + var codec = module2.exports.getCodec(encoding); + var decoder = new codec.decoder(options, codec); + if (codec.bomAware && !(options && options.stripBOM === false)) { + decoder = new bomHandling.StripBOM(decoder, options); + } + return decoder; + }, "getDecoder"); + module2.exports.enableStreamingAPI = /* @__PURE__ */ __name(function enableStreamingAPI(streamModule2) { + if (module2.exports.supportsStreams) { + return; + } + var streams = require_streams()(streamModule2); + module2.exports.IconvLiteEncoderStream = streams.IconvLiteEncoderStream; + module2.exports.IconvLiteDecoderStream = streams.IconvLiteDecoderStream; + module2.exports.encodeStream = /* @__PURE__ */ __name(function encodeStream(encoding, options) { + return new module2.exports.IconvLiteEncoderStream(module2.exports.getEncoder(encoding, options), options); + }, "encodeStream"); + module2.exports.decodeStream = /* @__PURE__ */ __name(function decodeStream(encoding, options) { + return new module2.exports.IconvLiteDecoderStream(module2.exports.getDecoder(encoding, options), options); + }, "decodeStream"); + module2.exports.supportsStreams = true; + }, "enableStreamingAPI"); + var streamModule; + try { + streamModule = require("stream"); + } catch (e) { + } + if (streamModule && streamModule.Transform) { + module2.exports.enableStreamingAPI(streamModule); + } else { + module2.exports.encodeStream = module2.exports.decodeStream = function() { + throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it."); + }; + } + if (false) { + console.error("iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info."); + } + } +}); + +// node_modules/unpipe/index.js +var require_unpipe = __commonJS({ + "node_modules/unpipe/index.js"(exports2, module2) { + "use strict"; + module2.exports = unpipe; + function hasPipeDataListeners(stream) { + var listeners = stream.listeners("data"); + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].name === "ondata") { + return true; + } + } + return false; + } + __name(hasPipeDataListeners, "hasPipeDataListeners"); + function unpipe(stream) { + if (!stream) { + throw new TypeError("argument stream is required"); + } + if (typeof stream.unpipe === "function") { + stream.unpipe(); + return; + } + if (!hasPipeDataListeners(stream)) { + return; + } + var listener; + var listeners = stream.listeners("close"); + for (var i = 0; i < listeners.length; i++) { + listener = listeners[i]; + if (listener.name !== "cleanup" && listener.name !== "onclose") { + continue; + } + listener.call(stream); + } + } + __name(unpipe, "unpipe"); + } +}); + +// node_modules/raw-body/index.js +var require_raw_body = __commonJS({ + "node_modules/raw-body/index.js"(exports2, module2) { + "use strict"; + var asyncHooks = tryRequireAsyncHooks(); + var bytes = require_bytes(); + var createError = require_http_errors(); + var iconv = require_lib3(); + var unpipe = require_unpipe(); + module2.exports = getRawBody; + var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /; + function getDecoder(encoding) { + if (!encoding) return null; + try { + return iconv.getDecoder(encoding); + } catch (e) { + if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e; + throw createError(415, "specified encoding unsupported", { + encoding, + type: "encoding.unsupported" + }); + } + } + __name(getDecoder, "getDecoder"); + function getRawBody(stream, options, callback) { + var done = callback; + var opts = options || {}; + if (stream === void 0) { + throw new TypeError("argument stream is required"); + } else if (typeof stream !== "object" || stream === null || typeof stream.on !== "function") { + throw new TypeError("argument stream must be a stream"); + } + if (options === true || typeof options === "string") { + opts = { + encoding: options + }; + } + if (typeof options === "function") { + done = options; + opts = {}; + } + if (done !== void 0 && typeof done !== "function") { + throw new TypeError("argument callback must be a function"); + } + if (!done && !global.Promise) { + throw new TypeError("argument callback is required"); + } + var encoding = opts.encoding !== true ? opts.encoding : "utf-8"; + var limit = bytes.parse(opts.limit); + var length = opts.length != null && !isNaN(opts.length) ? parseInt(opts.length, 10) : null; + if (done) { + return readStream(stream, encoding, length, limit, wrap(done)); + } + return new Promise(/* @__PURE__ */ __name(function executor(resolve, reject) { + readStream(stream, encoding, length, limit, /* @__PURE__ */ __name(function onRead(err, buf) { + if (err) return reject(err); + resolve(buf); + }, "onRead")); + }, "executor")); + } + __name(getRawBody, "getRawBody"); + function halt(stream) { + unpipe(stream); + if (typeof stream.pause === "function") { + stream.pause(); + } + } + __name(halt, "halt"); + function readStream(stream, encoding, length, limit, callback) { + var complete = false; + var sync = true; + if (limit !== null && length !== null && length > limit) { + return done(createError(413, "request entity too large", { + expected: length, + length, + limit, + type: "entity.too.large" + })); + } + var state = stream._readableState; + if (stream._decoder || state && (state.encoding || state.decoder)) { + return done(createError(500, "stream encoding should not be set", { + type: "stream.encoding.set" + })); + } + if (typeof stream.readable !== "undefined" && !stream.readable) { + return done(createError(500, "stream is not readable", { + type: "stream.not.readable" + })); + } + var received = 0; + var decoder; + try { + decoder = getDecoder(encoding); + } catch (err) { + return done(err); + } + var buffer = decoder ? "" : []; + stream.on("aborted", onAborted); + stream.on("close", cleanup); + stream.on("data", onData); + stream.on("end", onEnd); + stream.on("error", onEnd); + sync = false; + function done() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + complete = true; + if (sync) { + process.nextTick(invokeCallback); + } else { + invokeCallback(); + } + function invokeCallback() { + cleanup(); + if (args[0]) { + halt(stream); + } + callback.apply(null, args); + } + __name(invokeCallback, "invokeCallback"); + } + __name(done, "done"); + function onAborted() { + if (complete) return; + done(createError(400, "request aborted", { + code: "ECONNABORTED", + expected: length, + length, + received, + type: "request.aborted" + })); + } + __name(onAborted, "onAborted"); + function onData(chunk) { + if (complete) return; + received += chunk.length; + if (limit !== null && received > limit) { + done(createError(413, "request entity too large", { + limit, + received, + type: "entity.too.large" + })); + } else if (decoder) { + buffer += decoder.write(chunk); + } else { + buffer.push(chunk); + } + } + __name(onData, "onData"); + function onEnd(err) { + if (complete) return; + if (err) return done(err); + if (length !== null && received !== length) { + done(createError(400, "request size did not match content length", { + expected: length, + length, + received, + type: "request.size.invalid" + })); + } else { + var string = decoder ? buffer + (decoder.end() || "") : Buffer.concat(buffer); + done(null, string); + } + } + __name(onEnd, "onEnd"); + function cleanup() { + buffer = null; + stream.removeListener("aborted", onAborted); + stream.removeListener("data", onData); + stream.removeListener("end", onEnd); + stream.removeListener("error", onEnd); + stream.removeListener("close", cleanup); + } + __name(cleanup, "cleanup"); + } + __name(readStream, "readStream"); + function tryRequireAsyncHooks() { + try { + return require("async_hooks"); + } catch (e) { + return {}; + } + } + __name(tryRequireAsyncHooks, "tryRequireAsyncHooks"); + function wrap(fn) { + var res; + if (asyncHooks.AsyncResource) { + res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn"); + } + if (!res || !res.runInAsyncScope) { + return fn; + } + return res.runInAsyncScope.bind(res, fn, null); + } + __name(wrap, "wrap"); + } +}); + +// node_modules/ee-first/index.js +var require_ee_first = __commonJS({ + "node_modules/ee-first/index.js"(exports2, module2) { + "use strict"; + module2.exports = first; + function first(stuff, done) { + if (!Array.isArray(stuff)) + throw new TypeError("arg must be an array of [ee, events...] arrays"); + var cleanups = []; + for (var i = 0; i < stuff.length; i++) { + var arr = stuff[i]; + if (!Array.isArray(arr) || arr.length < 2) + throw new TypeError("each array member must be [ee, events...]"); + var ee = arr[0]; + for (var j = 1; j < arr.length; j++) { + var event = arr[j]; + var fn = listener(event, callback); + ee.on(event, fn); + cleanups.push({ + ee, + event, + fn + }); + } + } + function callback() { + cleanup(); + done.apply(null, arguments); + } + __name(callback, "callback"); + function cleanup() { + var x; + for (var i2 = 0; i2 < cleanups.length; i2++) { + x = cleanups[i2]; + x.ee.removeListener(x.event, x.fn); + } + } + __name(cleanup, "cleanup"); + function thunk(fn2) { + done = fn2; + } + __name(thunk, "thunk"); + thunk.cancel = cleanup; + return thunk; + } + __name(first, "first"); + function listener(event, done) { + return /* @__PURE__ */ __name(function onevent(arg1) { + var args = new Array(arguments.length); + var ee = this; + var err = event === "error" ? arg1 : null; + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + done(err, ee, event, args); + }, "onevent"); + } + __name(listener, "listener"); + } +}); + +// node_modules/on-finished/index.js +var require_on_finished = __commonJS({ + "node_modules/on-finished/index.js"(exports2, module2) { + "use strict"; + module2.exports = onFinished; + module2.exports.isFinished = isFinished; + var asyncHooks = tryRequireAsyncHooks(); + var first = require_ee_first(); + var defer = typeof setImmediate === "function" ? setImmediate : function(fn) { + process.nextTick(fn.bind.apply(fn, arguments)); + }; + function onFinished(msg, listener) { + if (isFinished(msg) !== false) { + defer(listener, null, msg); + return msg; + } + attachListener(msg, wrap(listener)); + return msg; + } + __name(onFinished, "onFinished"); + function isFinished(msg) { + var socket = msg.socket; + if (typeof msg.finished === "boolean") { + return Boolean(msg.finished || socket && !socket.writable); + } + if (typeof msg.complete === "boolean") { + return Boolean(msg.upgrade || !socket || !socket.readable || msg.complete && !msg.readable); + } + return void 0; + } + __name(isFinished, "isFinished"); + function attachFinishedListener(msg, callback) { + var eeMsg; + var eeSocket; + var finished = false; + function onFinish(error) { + eeMsg.cancel(); + eeSocket.cancel(); + finished = true; + callback(error); + } + __name(onFinish, "onFinish"); + eeMsg = eeSocket = first([[msg, "end", "finish"]], onFinish); + function onSocket(socket) { + msg.removeListener("socket", onSocket); + if (finished) return; + if (eeMsg !== eeSocket) return; + eeSocket = first([[socket, "error", "close"]], onFinish); + } + __name(onSocket, "onSocket"); + if (msg.socket) { + onSocket(msg.socket); + return; + } + msg.on("socket", onSocket); + if (msg.socket === void 0) { + patchAssignSocket(msg, onSocket); + } + } + __name(attachFinishedListener, "attachFinishedListener"); + function attachListener(msg, listener) { + var attached = msg.__onFinished; + if (!attached || !attached.queue) { + attached = msg.__onFinished = createListener(msg); + attachFinishedListener(msg, attached); + } + attached.queue.push(listener); + } + __name(attachListener, "attachListener"); + function createListener(msg) { + function listener(err) { + if (msg.__onFinished === listener) msg.__onFinished = null; + if (!listener.queue) return; + var queue = listener.queue; + listener.queue = null; + for (var i = 0; i < queue.length; i++) { + queue[i](err, msg); + } + } + __name(listener, "listener"); + listener.queue = []; + return listener; + } + __name(createListener, "createListener"); + function patchAssignSocket(res, callback) { + var assignSocket = res.assignSocket; + if (typeof assignSocket !== "function") return; + res.assignSocket = /* @__PURE__ */ __name(function _assignSocket(socket) { + assignSocket.call(this, socket); + callback(socket); + }, "_assignSocket"); + } + __name(patchAssignSocket, "patchAssignSocket"); + function tryRequireAsyncHooks() { + try { + return require("async_hooks"); + } catch (e) { + return {}; + } + } + __name(tryRequireAsyncHooks, "tryRequireAsyncHooks"); + function wrap(fn) { + var res; + if (asyncHooks.AsyncResource) { + res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn"); + } + if (!res || !res.runInAsyncScope) { + return fn; + } + return res.runInAsyncScope.bind(res, fn, null); + } + __name(wrap, "wrap"); + } +}); + +// node_modules/type-is/node_modules/content-type/dist/index.js +var require_dist3 = __commonJS({ + "node_modules/type-is/node_modules/content-type/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.format = format; + exports2.parse = parse; + var TEXT_REGEXP = /^[\u0009\u0020-\u007e\u0080-\u00ff]*$/; + var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + var QUOTE_REGEXP = /[\\"]/g; + var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + var NullObject = /* @__PURE__ */ (() => { + const C = /* @__PURE__ */ __name(function() { + }, "C"); + C.prototype = /* @__PURE__ */ Object.create(null); + return C; + })(); + function format(obj) { + const { type, parameters } = obj; + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError(`Invalid type: ${type}`); + } + let result = type; + if (parameters) { + for (const param of Object.keys(parameters)) { + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError(`Invalid parameter name: ${param}`); + } + result += `; ${param}=${qstring(parameters[param])}`; + } + } + return result; + } + __name(format, "format"); + function parse(header, options) { + const len = header.length; + let index = skipOWS(header, 0, len); + const valueStart = index; + index = skipValue(header, index, len); + const valueEnd = trailingOWS(header, valueStart, index); + const type = header.slice(valueStart, valueEnd).toLowerCase(); + const parameters = options?.parameters === false ? new NullObject() : parseParameters(header, index, len); + return { type, parameters }; + } + __name(parse, "parse"); + var SP = 32; + var HTAB = 9; + var SEMI = 59; + var EQ = 61; + var DQUOTE = 34; + var BSLASH = 92; + function parseParameters(header, index, len) { + const parameters = new NullObject(); + parameter: while (index < len) { + index = skipOWS(header, index + 1, len); + const keyStart = index; + while (index < len) { + const code = header.charCodeAt(index); + if (code === SEMI) + continue parameter; + if (code === EQ) { + const keyEnd = trailingOWS(header, keyStart, index); + const key = header.slice(keyStart, keyEnd).toLowerCase(); + index = skipOWS(header, index + 1, len); + if (index < len && header.charCodeAt(index) === DQUOTE) { + index++; + let value = ""; + while (index < len) { + const code2 = header.charCodeAt(index++); + if (code2 === DQUOTE) { + index = skipValue(header, index, len); + if (parameters[key] === void 0) + parameters[key] = value; + break; + } + if (code2 === BSLASH && index < len) { + value += header[index++]; + continue; + } + value += String.fromCharCode(code2); + } + continue parameter; + } + const valueStart = index; + index = skipValue(header, index, len); + if (parameters[key] === void 0) { + const valueEnd = trailingOWS(header, valueStart, index); + parameters[key] = header.slice(valueStart, valueEnd); + } + continue parameter; + } + index++; + } + } + return parameters; + } + __name(parseParameters, "parseParameters"); + function skipValue(str, index, len) { + while (index < len) { + const char = str.charCodeAt(index); + if (char === SEMI) + break; + index++; + } + return index; + } + __name(skipValue, "skipValue"); + function skipOWS(header, index, len) { + while (index < len) { + const char = header.charCodeAt(index); + if (char !== SP && char !== HTAB) + break; + index++; + } + return index; + } + __name(skipOWS, "skipOWS"); + function trailingOWS(header, start, end) { + while (end > start) { + const char = header.charCodeAt(end - 1); + if (char !== SP && char !== HTAB) + break; + end--; + } + return end; + } + __name(trailingOWS, "trailingOWS"); + function qstring(str) { + if (TOKEN_REGEXP.test(str)) + return str; + if (TEXT_REGEXP.test(str)) + return `"${str.replace(QUOTE_REGEXP, "\\$&")}"`; + throw new TypeError(`Invalid parameter value: ${str}`); + } + __name(qstring, "qstring"); + } +}); + +// node_modules/mime-db/db.json +var require_db = __commonJS({ + "node_modules/mime-db/db.json"(exports2, module2) { + module2.exports = { + "application/1d-interleaved-parityfec": { + source: "iana" + }, + "application/3gpdash-qoe-report+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/3gpp-ims+xml": { + source: "iana", + compressible: true + }, + "application/3gpphal+json": { + source: "iana", + compressible: true + }, + "application/3gpphalforms+json": { + source: "iana", + compressible: true + }, + "application/a2l": { + source: "iana" + }, + "application/ace+cbor": { + source: "iana" + }, + "application/ace+json": { + source: "iana", + compressible: true + }, + "application/ace-groupcomm+cbor": { + source: "iana" + }, + "application/ace-trl+cbor": { + source: "iana" + }, + "application/activemessage": { + source: "iana" + }, + "application/activity+json": { + source: "iana", + compressible: true + }, + "application/aif+cbor": { + source: "iana" + }, + "application/aif+json": { + source: "iana", + compressible: true + }, + "application/alto-cdni+json": { + source: "iana", + compressible: true + }, + "application/alto-cdnifilter+json": { + source: "iana", + compressible: true + }, + "application/alto-costmap+json": { + source: "iana", + compressible: true + }, + "application/alto-costmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-directory+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcost+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcostparams+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointprop+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointpropparams+json": { + source: "iana", + compressible: true + }, + "application/alto-error+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmap+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-propmap+json": { + source: "iana", + compressible: true + }, + "application/alto-propmapparams+json": { + source: "iana", + compressible: true + }, + "application/alto-tips+json": { + source: "iana", + compressible: true + }, + "application/alto-tipsparams+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamcontrol+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamparams+json": { + source: "iana", + compressible: true + }, + "application/aml": { + source: "iana" + }, + "application/andrew-inset": { + source: "iana", + extensions: ["ez"] + }, + "application/appinstaller": { + compressible: false, + extensions: ["appinstaller"] + }, + "application/applefile": { + source: "iana" + }, + "application/applixware": { + source: "apache", + extensions: ["aw"] + }, + "application/appx": { + compressible: false, + extensions: ["appx"] + }, + "application/appxbundle": { + compressible: false, + extensions: ["appxbundle"] + }, + "application/at+jwt": { + source: "iana" + }, + "application/atf": { + source: "iana" + }, + "application/atfx": { + source: "iana" + }, + "application/atom+xml": { + source: "iana", + compressible: true, + extensions: ["atom"] + }, + "application/atomcat+xml": { + source: "iana", + compressible: true, + extensions: ["atomcat"] + }, + "application/atomdeleted+xml": { + source: "iana", + compressible: true, + extensions: ["atomdeleted"] + }, + "application/atomicmail": { + source: "iana" + }, + "application/atomsvc+xml": { + source: "iana", + compressible: true, + extensions: ["atomsvc"] + }, + "application/atsc-dwd+xml": { + source: "iana", + compressible: true, + extensions: ["dwd"] + }, + "application/atsc-dynamic-event-message": { + source: "iana" + }, + "application/atsc-held+xml": { + source: "iana", + compressible: true, + extensions: ["held"] + }, + "application/atsc-rdt+json": { + source: "iana", + compressible: true + }, + "application/atsc-rsat+xml": { + source: "iana", + compressible: true, + extensions: ["rsat"] + }, + "application/atxml": { + source: "iana" + }, + "application/auth-policy+xml": { + source: "iana", + compressible: true + }, + "application/automationml-aml+xml": { + source: "iana", + compressible: true, + extensions: ["aml"] + }, + "application/automationml-amlx+zip": { + source: "iana", + compressible: false, + extensions: ["amlx"] + }, + "application/bacnet-xdd+zip": { + source: "iana", + compressible: false + }, + "application/batch-smtp": { + source: "iana" + }, + "application/bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/beep+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/bufr": { + source: "iana" + }, + "application/c2pa": { + source: "iana" + }, + "application/calendar+json": { + source: "iana", + compressible: true + }, + "application/calendar+xml": { + source: "iana", + compressible: true, + extensions: ["xcs"] + }, + "application/call-completion": { + source: "iana" + }, + "application/cals-1840": { + source: "iana" + }, + "application/captive+json": { + source: "iana", + compressible: true + }, + "application/cbor": { + source: "iana" + }, + "application/cbor-seq": { + source: "iana" + }, + "application/cccex": { + source: "iana" + }, + "application/ccmp+xml": { + source: "iana", + compressible: true + }, + "application/ccxml+xml": { + source: "iana", + compressible: true, + extensions: ["ccxml"] + }, + "application/cda+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/cdfx+xml": { + source: "iana", + compressible: true, + extensions: ["cdfx"] + }, + "application/cdmi-capability": { + source: "iana", + extensions: ["cdmia"] + }, + "application/cdmi-container": { + source: "iana", + extensions: ["cdmic"] + }, + "application/cdmi-domain": { + source: "iana", + extensions: ["cdmid"] + }, + "application/cdmi-object": { + source: "iana", + extensions: ["cdmio"] + }, + "application/cdmi-queue": { + source: "iana", + extensions: ["cdmiq"] + }, + "application/cdni": { + source: "iana" + }, + "application/ce+cbor": { + source: "iana" + }, + "application/cea": { + source: "iana" + }, + "application/cea-2018+xml": { + source: "iana", + compressible: true + }, + "application/cellml+xml": { + source: "iana", + compressible: true + }, + "application/cfw": { + source: "iana" + }, + "application/cid-edhoc+cbor-seq": { + source: "iana" + }, + "application/city+json": { + source: "iana", + compressible: true + }, + "application/city+json-seq": { + source: "iana" + }, + "application/clr": { + source: "iana" + }, + "application/clue+xml": { + source: "iana", + compressible: true + }, + "application/clue_info+xml": { + source: "iana", + compressible: true + }, + "application/cms": { + source: "iana" + }, + "application/cnrp+xml": { + source: "iana", + compressible: true + }, + "application/coap-eap": { + source: "iana" + }, + "application/coap-group+json": { + source: "iana", + compressible: true + }, + "application/coap-payload": { + source: "iana" + }, + "application/commonground": { + source: "iana" + }, + "application/concise-problem-details+cbor": { + source: "iana" + }, + "application/conference-info+xml": { + source: "iana", + compressible: true + }, + "application/cose": { + source: "iana" + }, + "application/cose-key": { + source: "iana" + }, + "application/cose-key-set": { + source: "iana" + }, + "application/cose-x509": { + source: "iana" + }, + "application/cpl+xml": { + source: "iana", + compressible: true, + extensions: ["cpl"] + }, + "application/csrattrs": { + source: "iana" + }, + "application/csta+xml": { + source: "iana", + compressible: true + }, + "application/cstadata+xml": { + source: "iana", + compressible: true + }, + "application/csvm+json": { + source: "iana", + compressible: true + }, + "application/cu-seeme": { + source: "apache", + extensions: ["cu"] + }, + "application/cwl": { + source: "iana", + extensions: ["cwl"] + }, + "application/cwl+json": { + source: "iana", + compressible: true + }, + "application/cwl+yaml": { + source: "iana" + }, + "application/cwt": { + source: "iana" + }, + "application/cybercash": { + source: "iana" + }, + "application/dart": { + compressible: true + }, + "application/dash+xml": { + source: "iana", + compressible: true, + extensions: ["mpd"] + }, + "application/dash-patch+xml": { + source: "iana", + compressible: true, + extensions: ["mpp"] + }, + "application/dashdelta": { + source: "iana" + }, + "application/davmount+xml": { + source: "iana", + compressible: true, + extensions: ["davmount"] + }, + "application/dca-rft": { + source: "iana" + }, + "application/dcd": { + source: "iana" + }, + "application/dec-dx": { + source: "iana" + }, + "application/dialog-info+xml": { + source: "iana", + compressible: true + }, + "application/dicom": { + source: "iana", + extensions: ["dcm"] + }, + "application/dicom+json": { + source: "iana", + compressible: true + }, + "application/dicom+xml": { + source: "iana", + compressible: true + }, + "application/dii": { + source: "iana" + }, + "application/dit": { + source: "iana" + }, + "application/dns": { + source: "iana" + }, + "application/dns+json": { + source: "iana", + compressible: true + }, + "application/dns-message": { + source: "iana" + }, + "application/docbook+xml": { + source: "apache", + compressible: true, + extensions: ["dbk"] + }, + "application/dots+cbor": { + source: "iana" + }, + "application/dpop+jwt": { + source: "iana" + }, + "application/dskpp+xml": { + source: "iana", + compressible: true + }, + "application/dssc+der": { + source: "iana", + extensions: ["dssc"] + }, + "application/dssc+xml": { + source: "iana", + compressible: true, + extensions: ["xdssc"] + }, + "application/dvcs": { + source: "iana" + }, + "application/eat+cwt": { + source: "iana" + }, + "application/eat+jwt": { + source: "iana" + }, + "application/eat-bun+cbor": { + source: "iana" + }, + "application/eat-bun+json": { + source: "iana", + compressible: true + }, + "application/eat-ucs+cbor": { + source: "iana" + }, + "application/eat-ucs+json": { + source: "iana", + compressible: true + }, + "application/ecmascript": { + source: "apache", + compressible: true, + extensions: ["ecma"] + }, + "application/edhoc+cbor-seq": { + source: "iana" + }, + "application/edi-consent": { + source: "iana" + }, + "application/edi-x12": { + source: "iana", + compressible: false + }, + "application/edifact": { + source: "iana", + compressible: false + }, + "application/efi": { + source: "iana" + }, + "application/elm+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/elm+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.cap+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/emergencycalldata.comment+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.control+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.deviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.ecall.msd": { + source: "iana" + }, + "application/emergencycalldata.legacyesn+json": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.providerinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.serviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.subscriberinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.veds+xml": { + source: "iana", + compressible: true + }, + "application/emma+xml": { + source: "iana", + compressible: true, + extensions: ["emma"] + }, + "application/emotionml+xml": { + source: "iana", + compressible: true, + extensions: ["emotionml"] + }, + "application/encaprtp": { + source: "iana" + }, + "application/entity-statement+jwt": { + source: "iana" + }, + "application/epp+xml": { + source: "iana", + compressible: true + }, + "application/epub+zip": { + source: "iana", + compressible: false, + extensions: ["epub"] + }, + "application/eshop": { + source: "iana" + }, + "application/exi": { + source: "iana", + extensions: ["exi"] + }, + "application/expect-ct-report+json": { + source: "iana", + compressible: true + }, + "application/express": { + source: "iana", + extensions: ["exp"] + }, + "application/fastinfoset": { + source: "iana" + }, + "application/fastsoap": { + source: "iana" + }, + "application/fdf": { + source: "iana", + extensions: ["fdf"] + }, + "application/fdt+xml": { + source: "iana", + compressible: true, + extensions: ["fdt"] + }, + "application/fhir+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fhir+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fido.trusted-apps+json": { + compressible: true + }, + "application/fits": { + source: "iana" + }, + "application/flexfec": { + source: "iana" + }, + "application/font-sfnt": { + source: "iana" + }, + "application/font-tdpfr": { + source: "iana", + extensions: ["pfr"] + }, + "application/font-woff": { + source: "iana", + compressible: false + }, + "application/framework-attributes+xml": { + source: "iana", + compressible: true + }, + "application/geo+json": { + source: "iana", + compressible: true, + extensions: ["geojson"] + }, + "application/geo+json-seq": { + source: "iana" + }, + "application/geopackage+sqlite3": { + source: "iana" + }, + "application/geopose+json": { + source: "iana", + compressible: true + }, + "application/geoxacml+json": { + source: "iana", + compressible: true + }, + "application/geoxacml+xml": { + source: "iana", + compressible: true + }, + "application/gltf-buffer": { + source: "iana" + }, + "application/gml+xml": { + source: "iana", + compressible: true, + extensions: ["gml"] + }, + "application/gnap-binding-jws": { + source: "iana" + }, + "application/gnap-binding-jwsd": { + source: "iana" + }, + "application/gnap-binding-rotation-jws": { + source: "iana" + }, + "application/gnap-binding-rotation-jwsd": { + source: "iana" + }, + "application/gpx+xml": { + source: "apache", + compressible: true, + extensions: ["gpx"] + }, + "application/grib": { + source: "iana" + }, + "application/gxf": { + source: "apache", + extensions: ["gxf"] + }, + "application/gzip": { + source: "iana", + compressible: false, + extensions: ["gz"] + }, + "application/h224": { + source: "iana" + }, + "application/held+xml": { + source: "iana", + compressible: true + }, + "application/hjson": { + extensions: ["hjson"] + }, + "application/hl7v2+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/http": { + source: "iana" + }, + "application/hyperstudio": { + source: "iana", + extensions: ["stk"] + }, + "application/ibe-key-request+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pkg-reply+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pp-data": { + source: "iana" + }, + "application/iges": { + source: "iana" + }, + "application/im-iscomposing+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/index": { + source: "iana" + }, + "application/index.cmd": { + source: "iana" + }, + "application/index.obj": { + source: "iana" + }, + "application/index.response": { + source: "iana" + }, + "application/index.vnd": { + source: "iana" + }, + "application/inkml+xml": { + source: "iana", + compressible: true, + extensions: ["ink", "inkml"] + }, + "application/iotp": { + source: "iana" + }, + "application/ipfix": { + source: "iana", + extensions: ["ipfix"] + }, + "application/ipp": { + source: "iana" + }, + "application/isup": { + source: "iana" + }, + "application/its+xml": { + source: "iana", + compressible: true, + extensions: ["its"] + }, + "application/java-archive": { + source: "iana", + compressible: false, + extensions: ["jar", "war", "ear"] + }, + "application/java-serialized-object": { + source: "apache", + compressible: false, + extensions: ["ser"] + }, + "application/java-vm": { + source: "apache", + compressible: false, + extensions: ["class"] + }, + "application/javascript": { + source: "apache", + charset: "UTF-8", + compressible: true, + extensions: ["js"] + }, + "application/jf2feed+json": { + source: "iana", + compressible: true + }, + "application/jose": { + source: "iana" + }, + "application/jose+json": { + source: "iana", + compressible: true + }, + "application/jrd+json": { + source: "iana", + compressible: true + }, + "application/jscalendar+json": { + source: "iana", + compressible: true + }, + "application/jscontact+json": { + source: "iana", + compressible: true + }, + "application/json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["json", "map"] + }, + "application/json-patch+json": { + source: "iana", + compressible: true + }, + "application/json-seq": { + source: "iana" + }, + "application/json5": { + extensions: ["json5"] + }, + "application/jsonml+json": { + source: "apache", + compressible: true, + extensions: ["jsonml"] + }, + "application/jsonpath": { + source: "iana" + }, + "application/jwk+json": { + source: "iana", + compressible: true + }, + "application/jwk-set+json": { + source: "iana", + compressible: true + }, + "application/jwk-set+jwt": { + source: "iana" + }, + "application/jwt": { + source: "iana" + }, + "application/kpml-request+xml": { + source: "iana", + compressible: true + }, + "application/kpml-response+xml": { + source: "iana", + compressible: true + }, + "application/ld+json": { + source: "iana", + compressible: true, + extensions: ["jsonld"] + }, + "application/lgr+xml": { + source: "iana", + compressible: true, + extensions: ["lgr"] + }, + "application/link-format": { + source: "iana" + }, + "application/linkset": { + source: "iana" + }, + "application/linkset+json": { + source: "iana", + compressible: true + }, + "application/load-control+xml": { + source: "iana", + compressible: true + }, + "application/logout+jwt": { + source: "iana" + }, + "application/lost+xml": { + source: "iana", + compressible: true, + extensions: ["lostxml"] + }, + "application/lostsync+xml": { + source: "iana", + compressible: true + }, + "application/lpf+zip": { + source: "iana", + compressible: false + }, + "application/lxf": { + source: "iana" + }, + "application/mac-binhex40": { + source: "iana", + extensions: ["hqx"] + }, + "application/mac-compactpro": { + source: "apache", + extensions: ["cpt"] + }, + "application/macwriteii": { + source: "iana" + }, + "application/mads+xml": { + source: "iana", + compressible: true, + extensions: ["mads"] + }, + "application/manifest+json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["webmanifest"] + }, + "application/marc": { + source: "iana", + extensions: ["mrc"] + }, + "application/marcxml+xml": { + source: "iana", + compressible: true, + extensions: ["mrcx"] + }, + "application/mathematica": { + source: "iana", + extensions: ["ma", "nb", "mb"] + }, + "application/mathml+xml": { + source: "iana", + compressible: true, + extensions: ["mathml"] + }, + "application/mathml-content+xml": { + source: "iana", + compressible: true + }, + "application/mathml-presentation+xml": { + source: "iana", + compressible: true + }, + "application/mbms-associated-procedure-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-deregister+xml": { + source: "iana", + compressible: true + }, + "application/mbms-envelope+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-protection-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-reception-report+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-schedule+xml": { + source: "iana", + compressible: true + }, + "application/mbms-user-service-description+xml": { + source: "iana", + compressible: true + }, + "application/mbox": { + source: "iana", + extensions: ["mbox"] + }, + "application/media-policy-dataset+xml": { + source: "iana", + compressible: true, + extensions: ["mpf"] + }, + "application/media_control+xml": { + source: "iana", + compressible: true + }, + "application/mediaservercontrol+xml": { + source: "iana", + compressible: true, + extensions: ["mscml"] + }, + "application/merge-patch+json": { + source: "iana", + compressible: true + }, + "application/metalink+xml": { + source: "apache", + compressible: true, + extensions: ["metalink"] + }, + "application/metalink4+xml": { + source: "iana", + compressible: true, + extensions: ["meta4"] + }, + "application/mets+xml": { + source: "iana", + compressible: true, + extensions: ["mets"] + }, + "application/mf4": { + source: "iana" + }, + "application/mikey": { + source: "iana" + }, + "application/mipc": { + source: "iana" + }, + "application/missing-blocks+cbor-seq": { + source: "iana" + }, + "application/mmt-aei+xml": { + source: "iana", + compressible: true, + extensions: ["maei"] + }, + "application/mmt-usd+xml": { + source: "iana", + compressible: true, + extensions: ["musd"] + }, + "application/mods+xml": { + source: "iana", + compressible: true, + extensions: ["mods"] + }, + "application/moss-keys": { + source: "iana" + }, + "application/moss-signature": { + source: "iana" + }, + "application/mosskey-data": { + source: "iana" + }, + "application/mosskey-request": { + source: "iana" + }, + "application/mp21": { + source: "iana", + extensions: ["m21", "mp21"] + }, + "application/mp4": { + source: "iana", + extensions: ["mp4", "mpg4", "mp4s", "m4p"] + }, + "application/mpeg4-generic": { + source: "iana" + }, + "application/mpeg4-iod": { + source: "iana" + }, + "application/mpeg4-iod-xmt": { + source: "iana" + }, + "application/mrb-consumer+xml": { + source: "iana", + compressible: true + }, + "application/mrb-publish+xml": { + source: "iana", + compressible: true + }, + "application/msc-ivr+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msc-mixer+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msix": { + compressible: false, + extensions: ["msix"] + }, + "application/msixbundle": { + compressible: false, + extensions: ["msixbundle"] + }, + "application/msword": { + source: "iana", + compressible: false, + extensions: ["doc", "dot"] + }, + "application/mud+json": { + source: "iana", + compressible: true + }, + "application/multipart-core": { + source: "iana" + }, + "application/mxf": { + source: "iana", + extensions: ["mxf"] + }, + "application/n-quads": { + source: "iana", + extensions: ["nq"] + }, + "application/n-triples": { + source: "iana", + extensions: ["nt"] + }, + "application/nasdata": { + source: "iana" + }, + "application/news-checkgroups": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-groupinfo": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-transmission": { + source: "iana" + }, + "application/nlsml+xml": { + source: "iana", + compressible: true + }, + "application/node": { + source: "iana", + extensions: ["cjs"] + }, + "application/nss": { + source: "iana" + }, + "application/oauth-authz-req+jwt": { + source: "iana" + }, + "application/oblivious-dns-message": { + source: "iana" + }, + "application/ocsp-request": { + source: "iana" + }, + "application/ocsp-response": { + source: "iana" + }, + "application/octet-stream": { + source: "iana", + compressible: true, + extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"] + }, + "application/oda": { + source: "iana", + extensions: ["oda"] + }, + "application/odm+xml": { + source: "iana", + compressible: true + }, + "application/odx": { + source: "iana" + }, + "application/oebps-package+xml": { + source: "iana", + compressible: true, + extensions: ["opf"] + }, + "application/ogg": { + source: "iana", + compressible: false, + extensions: ["ogx"] + }, + "application/ohttp-keys": { + source: "iana" + }, + "application/omdoc+xml": { + source: "apache", + compressible: true, + extensions: ["omdoc"] + }, + "application/onenote": { + source: "apache", + extensions: ["onetoc", "onetoc2", "onetmp", "onepkg", "one", "onea"] + }, + "application/opc-nodeset+xml": { + source: "iana", + compressible: true + }, + "application/oscore": { + source: "iana" + }, + "application/oxps": { + source: "iana", + extensions: ["oxps"] + }, + "application/p21": { + source: "iana" + }, + "application/p21+zip": { + source: "iana", + compressible: false + }, + "application/p2p-overlay+xml": { + source: "iana", + compressible: true, + extensions: ["relo"] + }, + "application/parityfec": { + source: "iana" + }, + "application/passport": { + source: "iana" + }, + "application/patch-ops-error+xml": { + source: "iana", + compressible: true, + extensions: ["xer"] + }, + "application/pdf": { + source: "iana", + compressible: false, + extensions: ["pdf"] + }, + "application/pdx": { + source: "iana" + }, + "application/pem-certificate-chain": { + source: "iana" + }, + "application/pgp-encrypted": { + source: "iana", + compressible: false, + extensions: ["pgp"] + }, + "application/pgp-keys": { + source: "iana", + extensions: ["asc"] + }, + "application/pgp-signature": { + source: "iana", + extensions: ["sig", "asc"] + }, + "application/pics-rules": { + source: "apache", + extensions: ["prf"] + }, + "application/pidf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pidf-diff+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pkcs10": { + source: "iana", + extensions: ["p10"] + }, + "application/pkcs12": { + source: "iana" + }, + "application/pkcs7-mime": { + source: "iana", + extensions: ["p7m", "p7c"] + }, + "application/pkcs7-signature": { + source: "iana", + extensions: ["p7s"] + }, + "application/pkcs8": { + source: "iana", + extensions: ["p8"] + }, + "application/pkcs8-encrypted": { + source: "iana" + }, + "application/pkix-attr-cert": { + source: "iana", + extensions: ["ac"] + }, + "application/pkix-cert": { + source: "iana", + extensions: ["cer"] + }, + "application/pkix-crl": { + source: "iana", + extensions: ["crl"] + }, + "application/pkix-pkipath": { + source: "iana", + extensions: ["pkipath"] + }, + "application/pkixcmp": { + source: "iana", + extensions: ["pki"] + }, + "application/pls+xml": { + source: "iana", + compressible: true, + extensions: ["pls"] + }, + "application/poc-settings+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/postscript": { + source: "iana", + compressible: true, + extensions: ["ai", "eps", "ps"] + }, + "application/ppsp-tracker+json": { + source: "iana", + compressible: true + }, + "application/private-token-issuer-directory": { + source: "iana" + }, + "application/private-token-request": { + source: "iana" + }, + "application/private-token-response": { + source: "iana" + }, + "application/problem+json": { + source: "iana", + compressible: true + }, + "application/problem+xml": { + source: "iana", + compressible: true + }, + "application/provenance+xml": { + source: "iana", + compressible: true, + extensions: ["provx"] + }, + "application/provided-claims+jwt": { + source: "iana" + }, + "application/prs.alvestrand.titrax-sheet": { + source: "iana" + }, + "application/prs.cww": { + source: "iana", + extensions: ["cww"] + }, + "application/prs.cyn": { + source: "iana", + charset: "7-BIT" + }, + "application/prs.hpub+zip": { + source: "iana", + compressible: false + }, + "application/prs.implied-document+xml": { + source: "iana", + compressible: true + }, + "application/prs.implied-executable": { + source: "iana" + }, + "application/prs.implied-object+json": { + source: "iana", + compressible: true + }, + "application/prs.implied-object+json-seq": { + source: "iana" + }, + "application/prs.implied-object+yaml": { + source: "iana" + }, + "application/prs.implied-structure": { + source: "iana" + }, + "application/prs.mayfile": { + source: "iana" + }, + "application/prs.nprend": { + source: "iana" + }, + "application/prs.plucker": { + source: "iana" + }, + "application/prs.rdf-xml-crypt": { + source: "iana" + }, + "application/prs.vcfbzip2": { + source: "iana" + }, + "application/prs.xsf+xml": { + source: "iana", + compressible: true, + extensions: ["xsf"] + }, + "application/pskc+xml": { + source: "iana", + compressible: true, + extensions: ["pskcxml"] + }, + "application/pvd+json": { + source: "iana", + compressible: true + }, + "application/qsig": { + source: "iana" + }, + "application/raml+yaml": { + compressible: true, + extensions: ["raml"] + }, + "application/raptorfec": { + source: "iana" + }, + "application/rdap+json": { + source: "iana", + compressible: true + }, + "application/rdf+xml": { + source: "iana", + compressible: true, + extensions: ["rdf", "owl"] + }, + "application/reginfo+xml": { + source: "iana", + compressible: true, + extensions: ["rif"] + }, + "application/relax-ng-compact-syntax": { + source: "iana", + extensions: ["rnc"] + }, + "application/remote-printing": { + source: "apache" + }, + "application/reputon+json": { + source: "iana", + compressible: true + }, + "application/resolve-response+jwt": { + source: "iana" + }, + "application/resource-lists+xml": { + source: "iana", + compressible: true, + extensions: ["rl"] + }, + "application/resource-lists-diff+xml": { + source: "iana", + compressible: true, + extensions: ["rld"] + }, + "application/rfc+xml": { + source: "iana", + compressible: true + }, + "application/riscos": { + source: "iana" + }, + "application/rlmi+xml": { + source: "iana", + compressible: true + }, + "application/rls-services+xml": { + source: "iana", + compressible: true, + extensions: ["rs"] + }, + "application/route-apd+xml": { + source: "iana", + compressible: true, + extensions: ["rapd"] + }, + "application/route-s-tsid+xml": { + source: "iana", + compressible: true, + extensions: ["sls"] + }, + "application/route-usd+xml": { + source: "iana", + compressible: true, + extensions: ["rusd"] + }, + "application/rpki-checklist": { + source: "iana" + }, + "application/rpki-ghostbusters": { + source: "iana", + extensions: ["gbr"] + }, + "application/rpki-manifest": { + source: "iana", + extensions: ["mft"] + }, + "application/rpki-publication": { + source: "iana" + }, + "application/rpki-roa": { + source: "iana", + extensions: ["roa"] + }, + "application/rpki-signed-tal": { + source: "iana" + }, + "application/rpki-updown": { + source: "iana" + }, + "application/rsd+xml": { + source: "apache", + compressible: true, + extensions: ["rsd"] + }, + "application/rss+xml": { + source: "apache", + compressible: true, + extensions: ["rss"] + }, + "application/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "application/rtploopback": { + source: "iana" + }, + "application/rtx": { + source: "iana" + }, + "application/samlassertion+xml": { + source: "iana", + compressible: true + }, + "application/samlmetadata+xml": { + source: "iana", + compressible: true + }, + "application/sarif+json": { + source: "iana", + compressible: true + }, + "application/sarif-external-properties+json": { + source: "iana", + compressible: true + }, + "application/sbe": { + source: "iana" + }, + "application/sbml+xml": { + source: "iana", + compressible: true, + extensions: ["sbml"] + }, + "application/scaip+xml": { + source: "iana", + compressible: true + }, + "application/scim+json": { + source: "iana", + compressible: true + }, + "application/scvp-cv-request": { + source: "iana", + extensions: ["scq"] + }, + "application/scvp-cv-response": { + source: "iana", + extensions: ["scs"] + }, + "application/scvp-vp-request": { + source: "iana", + extensions: ["spq"] + }, + "application/scvp-vp-response": { + source: "iana", + extensions: ["spp"] + }, + "application/sdp": { + source: "iana", + extensions: ["sdp"] + }, + "application/secevent+jwt": { + source: "iana" + }, + "application/senml+cbor": { + source: "iana" + }, + "application/senml+json": { + source: "iana", + compressible: true + }, + "application/senml+xml": { + source: "iana", + compressible: true, + extensions: ["senmlx"] + }, + "application/senml-etch+cbor": { + source: "iana" + }, + "application/senml-etch+json": { + source: "iana", + compressible: true + }, + "application/senml-exi": { + source: "iana" + }, + "application/sensml+cbor": { + source: "iana" + }, + "application/sensml+json": { + source: "iana", + compressible: true + }, + "application/sensml+xml": { + source: "iana", + compressible: true, + extensions: ["sensmlx"] + }, + "application/sensml-exi": { + source: "iana" + }, + "application/sep+xml": { + source: "iana", + compressible: true + }, + "application/sep-exi": { + source: "iana" + }, + "application/session-info": { + source: "iana" + }, + "application/set-payment": { + source: "iana" + }, + "application/set-payment-initiation": { + source: "iana", + extensions: ["setpay"] + }, + "application/set-registration": { + source: "iana" + }, + "application/set-registration-initiation": { + source: "iana", + extensions: ["setreg"] + }, + "application/sgml": { + source: "iana" + }, + "application/sgml-open-catalog": { + source: "iana" + }, + "application/shf+xml": { + source: "iana", + compressible: true, + extensions: ["shf"] + }, + "application/sieve": { + source: "iana", + extensions: ["siv", "sieve"] + }, + "application/simple-filter+xml": { + source: "iana", + compressible: true + }, + "application/simple-message-summary": { + source: "iana" + }, + "application/simplesymbolcontainer": { + source: "iana" + }, + "application/sipc": { + source: "iana" + }, + "application/slate": { + source: "iana" + }, + "application/smil": { + source: "apache" + }, + "application/smil+xml": { + source: "iana", + compressible: true, + extensions: ["smi", "smil"] + }, + "application/smpte336m": { + source: "iana" + }, + "application/soap+fastinfoset": { + source: "iana" + }, + "application/soap+xml": { + source: "iana", + compressible: true + }, + "application/sparql-query": { + source: "iana", + extensions: ["rq"] + }, + "application/sparql-results+xml": { + source: "iana", + compressible: true, + extensions: ["srx"] + }, + "application/spdx+json": { + source: "iana", + compressible: true + }, + "application/spirits-event+xml": { + source: "iana", + compressible: true + }, + "application/sql": { + source: "iana", + extensions: ["sql"] + }, + "application/srgs": { + source: "iana", + extensions: ["gram"] + }, + "application/srgs+xml": { + source: "iana", + compressible: true, + extensions: ["grxml"] + }, + "application/sru+xml": { + source: "iana", + compressible: true, + extensions: ["sru"] + }, + "application/ssdl+xml": { + source: "apache", + compressible: true, + extensions: ["ssdl"] + }, + "application/sslkeylogfile": { + source: "iana" + }, + "application/ssml+xml": { + source: "iana", + compressible: true, + extensions: ["ssml"] + }, + "application/st2110-41": { + source: "iana" + }, + "application/stix+json": { + source: "iana", + compressible: true + }, + "application/stratum": { + source: "iana" + }, + "application/swid+cbor": { + source: "iana" + }, + "application/swid+xml": { + source: "iana", + compressible: true, + extensions: ["swidtag"] + }, + "application/tamp-apex-update": { + source: "iana" + }, + "application/tamp-apex-update-confirm": { + source: "iana" + }, + "application/tamp-community-update": { + source: "iana" + }, + "application/tamp-community-update-confirm": { + source: "iana" + }, + "application/tamp-error": { + source: "iana" + }, + "application/tamp-sequence-adjust": { + source: "iana" + }, + "application/tamp-sequence-adjust-confirm": { + source: "iana" + }, + "application/tamp-status-query": { + source: "iana" + }, + "application/tamp-status-response": { + source: "iana" + }, + "application/tamp-update": { + source: "iana" + }, + "application/tamp-update-confirm": { + source: "iana" + }, + "application/tar": { + compressible: true + }, + "application/taxii+json": { + source: "iana", + compressible: true + }, + "application/td+json": { + source: "iana", + compressible: true + }, + "application/tei+xml": { + source: "iana", + compressible: true, + extensions: ["tei", "teicorpus"] + }, + "application/tetra_isi": { + source: "iana" + }, + "application/thraud+xml": { + source: "iana", + compressible: true, + extensions: ["tfi"] + }, + "application/timestamp-query": { + source: "iana" + }, + "application/timestamp-reply": { + source: "iana" + }, + "application/timestamped-data": { + source: "iana", + extensions: ["tsd"] + }, + "application/tlsrpt+gzip": { + source: "iana" + }, + "application/tlsrpt+json": { + source: "iana", + compressible: true + }, + "application/tm+json": { + source: "iana", + compressible: true + }, + "application/tnauthlist": { + source: "iana" + }, + "application/toc+cbor": { + source: "iana" + }, + "application/token-introspection+jwt": { + source: "iana" + }, + "application/toml": { + source: "iana", + compressible: true, + extensions: ["toml"] + }, + "application/trickle-ice-sdpfrag": { + source: "iana" + }, + "application/trig": { + source: "iana", + extensions: ["trig"] + }, + "application/trust-chain+json": { + source: "iana", + compressible: true + }, + "application/trust-mark+jwt": { + source: "iana" + }, + "application/trust-mark-delegation+jwt": { + source: "iana" + }, + "application/ttml+xml": { + source: "iana", + compressible: true, + extensions: ["ttml"] + }, + "application/tve-trigger": { + source: "iana" + }, + "application/tzif": { + source: "iana" + }, + "application/tzif-leap": { + source: "iana" + }, + "application/ubjson": { + compressible: false, + extensions: ["ubj"] + }, + "application/uccs+cbor": { + source: "iana" + }, + "application/ujcs+json": { + source: "iana", + compressible: true + }, + "application/ulpfec": { + source: "iana" + }, + "application/urc-grpsheet+xml": { + source: "iana", + compressible: true + }, + "application/urc-ressheet+xml": { + source: "iana", + compressible: true, + extensions: ["rsheet"] + }, + "application/urc-targetdesc+xml": { + source: "iana", + compressible: true, + extensions: ["td"] + }, + "application/urc-uisocketdesc+xml": { + source: "iana", + compressible: true + }, + "application/vc": { + source: "iana" + }, + "application/vc+cose": { + source: "iana" + }, + "application/vc+jwt": { + source: "iana" + }, + "application/vcard+json": { + source: "iana", + compressible: true + }, + "application/vcard+xml": { + source: "iana", + compressible: true + }, + "application/vemmi": { + source: "iana" + }, + "application/vividence.scriptfile": { + source: "apache" + }, + "application/vnd.1000minds.decision-model+xml": { + source: "iana", + compressible: true, + extensions: ["1km"] + }, + "application/vnd.1ob": { + source: "iana" + }, + "application/vnd.3gpp-prose+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc3a+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc3ach+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc3ch+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc8+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-v2x-local-service-information": { + source: "iana" + }, + "application/vnd.3gpp.5gnas": { + source: "iana" + }, + "application/vnd.3gpp.5gsa2x": { + source: "iana" + }, + "application/vnd.3gpp.5gsa2x-local-service-information": { + source: "iana" + }, + "application/vnd.3gpp.5gsv2x": { + source: "iana" + }, + "application/vnd.3gpp.5gsv2x-local-service-information": { + source: "iana" + }, + "application/vnd.3gpp.access-transfer-events+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.bsf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.crs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.current-location-discovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gmop+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gtpc": { + source: "iana" + }, + "application/vnd.3gpp.interworking-data": { + source: "iana" + }, + "application/vnd.3gpp.lpp": { + source: "iana" + }, + "application/vnd.3gpp.mc-signalling-ear": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-payload": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-regroup+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-signalling": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-floor-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-regroup+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-signed+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-init-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-regroup+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-transmission-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mid-call+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ngap": { + source: "iana" + }, + "application/vnd.3gpp.pfcp": { + source: "iana" + }, + "application/vnd.3gpp.pic-bw-large": { + source: "iana", + extensions: ["plb"] + }, + "application/vnd.3gpp.pic-bw-small": { + source: "iana", + extensions: ["psb"] + }, + "application/vnd.3gpp.pic-bw-var": { + source: "iana", + extensions: ["pvb"] + }, + "application/vnd.3gpp.pinapp-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.s1ap": { + source: "iana" + }, + "application/vnd.3gpp.seal-group-doc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-network-qos-management-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-ue-config-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-unicast-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.seal-user-profile-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.sms": { + source: "iana" + }, + "application/vnd.3gpp.sms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-ext+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.state-and-event-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ussd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.v2x": { + source: "iana" + }, + "application/vnd.3gpp.vae-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.bcmcsinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.sms": { + source: "iana" + }, + "application/vnd.3gpp2.tcap": { + source: "iana", + extensions: ["tcap"] + }, + "application/vnd.3lightssoftware.imagescal": { + source: "iana" + }, + "application/vnd.3m.post-it-notes": { + source: "iana", + extensions: ["pwn"] + }, + "application/vnd.accpac.simply.aso": { + source: "iana", + extensions: ["aso"] + }, + "application/vnd.accpac.simply.imp": { + source: "iana", + extensions: ["imp"] + }, + "application/vnd.acm.addressxfer+json": { + source: "iana", + compressible: true + }, + "application/vnd.acm.chatbot+json": { + source: "iana", + compressible: true + }, + "application/vnd.acucobol": { + source: "iana", + extensions: ["acu"] + }, + "application/vnd.acucorp": { + source: "iana", + extensions: ["atc", "acutc"] + }, + "application/vnd.adobe.air-application-installer-package+zip": { + source: "apache", + compressible: false, + extensions: ["air"] + }, + "application/vnd.adobe.flash.movie": { + source: "iana" + }, + "application/vnd.adobe.formscentral.fcdt": { + source: "iana", + extensions: ["fcdt"] + }, + "application/vnd.adobe.fxp": { + source: "iana", + extensions: ["fxp", "fxpl"] + }, + "application/vnd.adobe.partial-upload": { + source: "iana" + }, + "application/vnd.adobe.xdp+xml": { + source: "iana", + compressible: true, + extensions: ["xdp"] + }, + "application/vnd.adobe.xfdf": { + source: "apache", + extensions: ["xfdf"] + }, + "application/vnd.aether.imp": { + source: "iana" + }, + "application/vnd.afpc.afplinedata": { + source: "iana" + }, + "application/vnd.afpc.afplinedata-pagedef": { + source: "iana" + }, + "application/vnd.afpc.cmoca-cmresource": { + source: "iana" + }, + "application/vnd.afpc.foca-charset": { + source: "iana" + }, + "application/vnd.afpc.foca-codedfont": { + source: "iana" + }, + "application/vnd.afpc.foca-codepage": { + source: "iana" + }, + "application/vnd.afpc.modca": { + source: "iana" + }, + "application/vnd.afpc.modca-cmtable": { + source: "iana" + }, + "application/vnd.afpc.modca-formdef": { + source: "iana" + }, + "application/vnd.afpc.modca-mediummap": { + source: "iana" + }, + "application/vnd.afpc.modca-objectcontainer": { + source: "iana" + }, + "application/vnd.afpc.modca-overlay": { + source: "iana" + }, + "application/vnd.afpc.modca-pagesegment": { + source: "iana" + }, + "application/vnd.age": { + source: "iana", + extensions: ["age"] + }, + "application/vnd.ah-barcode": { + source: "apache" + }, + "application/vnd.ahead.space": { + source: "iana", + extensions: ["ahead"] + }, + "application/vnd.airzip.filesecure.azf": { + source: "iana", + extensions: ["azf"] + }, + "application/vnd.airzip.filesecure.azs": { + source: "iana", + extensions: ["azs"] + }, + "application/vnd.amadeus+json": { + source: "iana", + compressible: true + }, + "application/vnd.amazon.ebook": { + source: "apache", + extensions: ["azw"] + }, + "application/vnd.amazon.mobi8-ebook": { + source: "iana" + }, + "application/vnd.americandynamics.acc": { + source: "iana", + extensions: ["acc"] + }, + "application/vnd.amiga.ami": { + source: "iana", + extensions: ["ami"] + }, + "application/vnd.amundsen.maze+xml": { + source: "iana", + compressible: true + }, + "application/vnd.android.ota": { + source: "iana" + }, + "application/vnd.android.package-archive": { + source: "apache", + compressible: false, + extensions: ["apk"] + }, + "application/vnd.anki": { + source: "iana" + }, + "application/vnd.anser-web-certificate-issue-initiation": { + source: "iana", + extensions: ["cii"] + }, + "application/vnd.anser-web-funds-transfer-initiation": { + source: "apache", + extensions: ["fti"] + }, + "application/vnd.antix.game-component": { + source: "iana", + extensions: ["atx"] + }, + "application/vnd.apache.arrow.file": { + source: "iana" + }, + "application/vnd.apache.arrow.stream": { + source: "iana" + }, + "application/vnd.apache.parquet": { + source: "iana" + }, + "application/vnd.apache.thrift.binary": { + source: "iana" + }, + "application/vnd.apache.thrift.compact": { + source: "iana" + }, + "application/vnd.apache.thrift.json": { + source: "iana" + }, + "application/vnd.apexlang": { + source: "iana" + }, + "application/vnd.api+json": { + source: "iana", + compressible: true + }, + "application/vnd.aplextor.warrp+json": { + source: "iana", + compressible: true + }, + "application/vnd.apothekende.reservation+json": { + source: "iana", + compressible: true + }, + "application/vnd.apple.installer+xml": { + source: "iana", + compressible: true, + extensions: ["mpkg"] + }, + "application/vnd.apple.keynote": { + source: "iana", + extensions: ["key"] + }, + "application/vnd.apple.mpegurl": { + source: "iana", + extensions: ["m3u8"] + }, + "application/vnd.apple.numbers": { + source: "iana", + extensions: ["numbers"] + }, + "application/vnd.apple.pages": { + source: "iana", + extensions: ["pages"] + }, + "application/vnd.apple.pkpass": { + compressible: false, + extensions: ["pkpass"] + }, + "application/vnd.arastra.swi": { + source: "apache" + }, + "application/vnd.aristanetworks.swi": { + source: "iana", + extensions: ["swi"] + }, + "application/vnd.artisan+json": { + source: "iana", + compressible: true + }, + "application/vnd.artsquare": { + source: "iana" + }, + "application/vnd.astraea-software.iota": { + source: "iana", + extensions: ["iota"] + }, + "application/vnd.audiograph": { + source: "iana", + extensions: ["aep"] + }, + "application/vnd.autodesk.fbx": { + extensions: ["fbx"] + }, + "application/vnd.autopackage": { + source: "iana" + }, + "application/vnd.avalon+json": { + source: "iana", + compressible: true + }, + "application/vnd.avistar+xml": { + source: "iana", + compressible: true + }, + "application/vnd.balsamiq.bmml+xml": { + source: "iana", + compressible: true, + extensions: ["bmml"] + }, + "application/vnd.balsamiq.bmpr": { + source: "iana" + }, + "application/vnd.banana-accounting": { + source: "iana" + }, + "application/vnd.bbf.usp.error": { + source: "iana" + }, + "application/vnd.bbf.usp.msg": { + source: "iana" + }, + "application/vnd.bbf.usp.msg+json": { + source: "iana", + compressible: true + }, + "application/vnd.bekitzur-stech+json": { + source: "iana", + compressible: true + }, + "application/vnd.belightsoft.lhzd+zip": { + source: "iana", + compressible: false + }, + "application/vnd.belightsoft.lhzl+zip": { + source: "iana", + compressible: false + }, + "application/vnd.bint.med-content": { + source: "iana" + }, + "application/vnd.biopax.rdf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.blink-idb-value-wrapper": { + source: "iana" + }, + "application/vnd.blueice.multipass": { + source: "iana", + extensions: ["mpm"] + }, + "application/vnd.bluetooth.ep.oob": { + source: "iana" + }, + "application/vnd.bluetooth.le.oob": { + source: "iana" + }, + "application/vnd.bmi": { + source: "iana", + extensions: ["bmi"] + }, + "application/vnd.bpf": { + source: "iana" + }, + "application/vnd.bpf3": { + source: "iana" + }, + "application/vnd.businessobjects": { + source: "iana", + extensions: ["rep"] + }, + "application/vnd.byu.uapi+json": { + source: "iana", + compressible: true + }, + "application/vnd.bzip3": { + source: "iana" + }, + "application/vnd.c3voc.schedule+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cab-jscript": { + source: "iana" + }, + "application/vnd.canon-cpdl": { + source: "iana" + }, + "application/vnd.canon-lips": { + source: "iana" + }, + "application/vnd.capasystems-pg+json": { + source: "iana", + compressible: true + }, + "application/vnd.cendio.thinlinc.clientconf": { + source: "iana" + }, + "application/vnd.century-systems.tcp_stream": { + source: "iana" + }, + "application/vnd.chemdraw+xml": { + source: "iana", + compressible: true, + extensions: ["cdxml"] + }, + "application/vnd.chess-pgn": { + source: "iana" + }, + "application/vnd.chipnuts.karaoke-mmd": { + source: "iana", + extensions: ["mmd"] + }, + "application/vnd.ciedi": { + source: "iana" + }, + "application/vnd.cinderella": { + source: "iana", + extensions: ["cdy"] + }, + "application/vnd.cirpack.isdn-ext": { + source: "iana" + }, + "application/vnd.citationstyles.style+xml": { + source: "iana", + compressible: true, + extensions: ["csl"] + }, + "application/vnd.claymore": { + source: "iana", + extensions: ["cla"] + }, + "application/vnd.cloanto.rp9": { + source: "iana", + extensions: ["rp9"] + }, + "application/vnd.clonk.c4group": { + source: "iana", + extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"] + }, + "application/vnd.cluetrust.cartomobile-config": { + source: "iana", + extensions: ["c11amc"] + }, + "application/vnd.cluetrust.cartomobile-config-pkg": { + source: "iana", + extensions: ["c11amz"] + }, + "application/vnd.cncf.helm.chart.content.v1.tar+gzip": { + source: "iana" + }, + "application/vnd.cncf.helm.chart.provenance.v1.prov": { + source: "iana" + }, + "application/vnd.cncf.helm.config.v1+json": { + source: "iana", + compressible: true + }, + "application/vnd.coffeescript": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet-template": { + source: "iana" + }, + "application/vnd.collection+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.doc+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.next+json": { + source: "iana", + compressible: true + }, + "application/vnd.comicbook+zip": { + source: "iana", + compressible: false + }, + "application/vnd.comicbook-rar": { + source: "iana" + }, + "application/vnd.commerce-battelle": { + source: "iana" + }, + "application/vnd.commonspace": { + source: "iana", + extensions: ["csp"] + }, + "application/vnd.contact.cmsg": { + source: "iana", + extensions: ["cdbcmsg"] + }, + "application/vnd.coreos.ignition+json": { + source: "iana", + compressible: true + }, + "application/vnd.cosmocaller": { + source: "iana", + extensions: ["cmc"] + }, + "application/vnd.crick.clicker": { + source: "iana", + extensions: ["clkx"] + }, + "application/vnd.crick.clicker.keyboard": { + source: "iana", + extensions: ["clkk"] + }, + "application/vnd.crick.clicker.palette": { + source: "iana", + extensions: ["clkp"] + }, + "application/vnd.crick.clicker.template": { + source: "iana", + extensions: ["clkt"] + }, + "application/vnd.crick.clicker.wordbank": { + source: "iana", + extensions: ["clkw"] + }, + "application/vnd.criticaltools.wbs+xml": { + source: "iana", + compressible: true, + extensions: ["wbs"] + }, + "application/vnd.cryptii.pipe+json": { + source: "iana", + compressible: true + }, + "application/vnd.crypto-shade-file": { + source: "iana" + }, + "application/vnd.cryptomator.encrypted": { + source: "iana" + }, + "application/vnd.cryptomator.vault": { + source: "iana" + }, + "application/vnd.ctc-posml": { + source: "iana", + extensions: ["pml"] + }, + "application/vnd.ctct.ws+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cups-pdf": { + source: "iana" + }, + "application/vnd.cups-postscript": { + source: "iana" + }, + "application/vnd.cups-ppd": { + source: "iana", + extensions: ["ppd"] + }, + "application/vnd.cups-raster": { + source: "iana" + }, + "application/vnd.cups-raw": { + source: "iana" + }, + "application/vnd.curl": { + source: "iana" + }, + "application/vnd.curl.car": { + source: "apache", + extensions: ["car"] + }, + "application/vnd.curl.pcurl": { + source: "apache", + extensions: ["pcurl"] + }, + "application/vnd.cyan.dean.root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cybank": { + source: "iana" + }, + "application/vnd.cyclonedx+json": { + source: "iana", + compressible: true + }, + "application/vnd.cyclonedx+xml": { + source: "iana", + compressible: true + }, + "application/vnd.d2l.coursepackage1p0+zip": { + source: "iana", + compressible: false + }, + "application/vnd.d3m-dataset": { + source: "iana" + }, + "application/vnd.d3m-problem": { + source: "iana" + }, + "application/vnd.dart": { + source: "iana", + compressible: true, + extensions: ["dart"] + }, + "application/vnd.data-vision.rdz": { + source: "iana", + extensions: ["rdz"] + }, + "application/vnd.datalog": { + source: "iana" + }, + "application/vnd.datapackage+json": { + source: "iana", + compressible: true + }, + "application/vnd.dataresource+json": { + source: "iana", + compressible: true + }, + "application/vnd.dbf": { + source: "iana", + extensions: ["dbf"] + }, + "application/vnd.dcmp+xml": { + source: "iana", + compressible: true, + extensions: ["dcmp"] + }, + "application/vnd.debian.binary-package": { + source: "iana" + }, + "application/vnd.dece.data": { + source: "iana", + extensions: ["uvf", "uvvf", "uvd", "uvvd"] + }, + "application/vnd.dece.ttml+xml": { + source: "iana", + compressible: true, + extensions: ["uvt", "uvvt"] + }, + "application/vnd.dece.unspecified": { + source: "iana", + extensions: ["uvx", "uvvx"] + }, + "application/vnd.dece.zip": { + source: "iana", + extensions: ["uvz", "uvvz"] + }, + "application/vnd.denovo.fcselayout-link": { + source: "iana", + extensions: ["fe_launch"] + }, + "application/vnd.desmume.movie": { + source: "iana" + }, + "application/vnd.dir-bi.plate-dl-nosuffix": { + source: "iana" + }, + "application/vnd.dm.delegation+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dna": { + source: "iana", + extensions: ["dna"] + }, + "application/vnd.document+json": { + source: "iana", + compressible: true + }, + "application/vnd.dolby.mlp": { + source: "apache", + extensions: ["mlp"] + }, + "application/vnd.dolby.mobile.1": { + source: "iana" + }, + "application/vnd.dolby.mobile.2": { + source: "iana" + }, + "application/vnd.doremir.scorecloud-binary-document": { + source: "iana" + }, + "application/vnd.dpgraph": { + source: "iana", + extensions: ["dpg"] + }, + "application/vnd.dreamfactory": { + source: "iana", + extensions: ["dfac"] + }, + "application/vnd.drive+json": { + source: "iana", + compressible: true + }, + "application/vnd.ds-keypoint": { + source: "apache", + extensions: ["kpxx"] + }, + "application/vnd.dtg.local": { + source: "iana" + }, + "application/vnd.dtg.local.flash": { + source: "iana" + }, + "application/vnd.dtg.local.html": { + source: "iana" + }, + "application/vnd.dvb.ait": { + source: "iana", + extensions: ["ait"] + }, + "application/vnd.dvb.dvbisl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.dvbj": { + source: "iana" + }, + "application/vnd.dvb.esgcontainer": { + source: "iana" + }, + "application/vnd.dvb.ipdcdftnotifaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess2": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgpdd": { + source: "iana" + }, + "application/vnd.dvb.ipdcroaming": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-base": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-enhancement": { + source: "iana" + }, + "application/vnd.dvb.notif-aggregate-root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-container+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-generic+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-msglist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-response+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-init+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.pfr": { + source: "iana" + }, + "application/vnd.dvb.service": { + source: "iana", + extensions: ["svc"] + }, + "application/vnd.dxr": { + source: "iana" + }, + "application/vnd.dynageo": { + source: "iana", + extensions: ["geo"] + }, + "application/vnd.dzr": { + source: "iana" + }, + "application/vnd.easykaraoke.cdgdownload": { + source: "iana" + }, + "application/vnd.ecdis-update": { + source: "iana" + }, + "application/vnd.ecip.rlp": { + source: "iana" + }, + "application/vnd.eclipse.ditto+json": { + source: "iana", + compressible: true + }, + "application/vnd.ecowin.chart": { + source: "iana", + extensions: ["mag"] + }, + "application/vnd.ecowin.filerequest": { + source: "iana" + }, + "application/vnd.ecowin.fileupdate": { + source: "iana" + }, + "application/vnd.ecowin.series": { + source: "iana" + }, + "application/vnd.ecowin.seriesrequest": { + source: "iana" + }, + "application/vnd.ecowin.seriesupdate": { + source: "iana" + }, + "application/vnd.efi.img": { + source: "iana" + }, + "application/vnd.efi.iso": { + source: "iana" + }, + "application/vnd.eln+zip": { + source: "iana", + compressible: false + }, + "application/vnd.emclient.accessrequest+xml": { + source: "iana", + compressible: true + }, + "application/vnd.enliven": { + source: "iana", + extensions: ["nml"] + }, + "application/vnd.enphase.envoy": { + source: "iana" + }, + "application/vnd.eprints.data+xml": { + source: "iana", + compressible: true + }, + "application/vnd.epson.esf": { + source: "iana", + extensions: ["esf"] + }, + "application/vnd.epson.msf": { + source: "iana", + extensions: ["msf"] + }, + "application/vnd.epson.quickanime": { + source: "iana", + extensions: ["qam"] + }, + "application/vnd.epson.salt": { + source: "iana", + extensions: ["slt"] + }, + "application/vnd.epson.ssf": { + source: "iana", + extensions: ["ssf"] + }, + "application/vnd.ericsson.quickcall": { + source: "iana" + }, + "application/vnd.erofs": { + source: "iana" + }, + "application/vnd.espass-espass+zip": { + source: "iana", + compressible: false + }, + "application/vnd.eszigno3+xml": { + source: "iana", + compressible: true, + extensions: ["es3", "et3"] + }, + "application/vnd.etsi.aoc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.asic-e+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.asic-s+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.cug+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvcommand+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-bc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-cod+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-npvr+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvservice+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsync+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mcid+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mheg5": { + source: "iana" + }, + "application/vnd.etsi.overload-control-policy-dataset+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.pstn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.sci+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.simservs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.timestamp-token": { + source: "iana" + }, + "application/vnd.etsi.tsl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.tsl.der": { + source: "iana" + }, + "application/vnd.eu.kasparian.car+json": { + source: "iana", + compressible: true + }, + "application/vnd.eudora.data": { + source: "iana" + }, + "application/vnd.evolv.ecig.profile": { + source: "iana" + }, + "application/vnd.evolv.ecig.settings": { + source: "iana" + }, + "application/vnd.evolv.ecig.theme": { + source: "iana" + }, + "application/vnd.exstream-empower+zip": { + source: "iana", + compressible: false + }, + "application/vnd.exstream-package": { + source: "iana" + }, + "application/vnd.ezpix-album": { + source: "iana", + extensions: ["ez2"] + }, + "application/vnd.ezpix-package": { + source: "iana", + extensions: ["ez3"] + }, + "application/vnd.f-secure.mobile": { + source: "iana" + }, + "application/vnd.familysearch.gedcom+zip": { + source: "iana", + compressible: false + }, + "application/vnd.fastcopy-disk-image": { + source: "iana" + }, + "application/vnd.fdf": { + source: "apache", + extensions: ["fdf"] + }, + "application/vnd.fdsn.mseed": { + source: "iana", + extensions: ["mseed"] + }, + "application/vnd.fdsn.seed": { + source: "iana", + extensions: ["seed", "dataless"] + }, + "application/vnd.fdsn.stationxml+xml": { + source: "iana", + charset: "XML-BASED", + compressible: true + }, + "application/vnd.ffsns": { + source: "iana" + }, + "application/vnd.ficlab.flb+zip": { + source: "iana", + compressible: false + }, + "application/vnd.filmit.zfc": { + source: "iana" + }, + "application/vnd.fints": { + source: "iana" + }, + "application/vnd.firemonkeys.cloudcell": { + source: "iana" + }, + "application/vnd.flographit": { + source: "iana", + extensions: ["gph"] + }, + "application/vnd.fluxtime.clip": { + source: "iana", + extensions: ["ftc"] + }, + "application/vnd.font-fontforge-sfd": { + source: "iana" + }, + "application/vnd.framemaker": { + source: "iana", + extensions: ["fm", "frame", "maker", "book"] + }, + "application/vnd.freelog.comic": { + source: "iana" + }, + "application/vnd.frogans.fnc": { + source: "apache", + extensions: ["fnc"] + }, + "application/vnd.frogans.ltf": { + source: "apache", + extensions: ["ltf"] + }, + "application/vnd.fsc.weblaunch": { + source: "iana", + extensions: ["fsc"] + }, + "application/vnd.fujifilm.fb.docuworks": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.binder": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.container": { + source: "iana" + }, + "application/vnd.fujifilm.fb.jfi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.fujitsu.oasys": { + source: "iana", + extensions: ["oas"] + }, + "application/vnd.fujitsu.oasys2": { + source: "iana", + extensions: ["oa2"] + }, + "application/vnd.fujitsu.oasys3": { + source: "iana", + extensions: ["oa3"] + }, + "application/vnd.fujitsu.oasysgp": { + source: "iana", + extensions: ["fg5"] + }, + "application/vnd.fujitsu.oasysprs": { + source: "iana", + extensions: ["bh2"] + }, + "application/vnd.fujixerox.art-ex": { + source: "iana" + }, + "application/vnd.fujixerox.art4": { + source: "iana" + }, + "application/vnd.fujixerox.ddd": { + source: "iana", + extensions: ["ddd"] + }, + "application/vnd.fujixerox.docuworks": { + source: "iana", + extensions: ["xdw"] + }, + "application/vnd.fujixerox.docuworks.binder": { + source: "iana", + extensions: ["xbd"] + }, + "application/vnd.fujixerox.docuworks.container": { + source: "iana" + }, + "application/vnd.fujixerox.hbpl": { + source: "iana" + }, + "application/vnd.fut-misnet": { + source: "iana" + }, + "application/vnd.futoin+cbor": { + source: "iana" + }, + "application/vnd.futoin+json": { + source: "iana", + compressible: true + }, + "application/vnd.fuzzysheet": { + source: "iana", + extensions: ["fzs"] + }, + "application/vnd.ga4gh.passport+jwt": { + source: "iana" + }, + "application/vnd.genomatix.tuxedo": { + source: "iana", + extensions: ["txd"] + }, + "application/vnd.genozip": { + source: "iana" + }, + "application/vnd.gentics.grd+json": { + source: "iana", + compressible: true + }, + "application/vnd.gentoo.catmetadata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.gentoo.ebuild": { + source: "iana" + }, + "application/vnd.gentoo.eclass": { + source: "iana" + }, + "application/vnd.gentoo.gpkg": { + source: "iana" + }, + "application/vnd.gentoo.manifest": { + source: "iana" + }, + "application/vnd.gentoo.pkgmetadata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.gentoo.xpak": { + source: "iana" + }, + "application/vnd.geo+json": { + source: "apache", + compressible: true + }, + "application/vnd.geocube+xml": { + source: "apache", + compressible: true + }, + "application/vnd.geogebra.file": { + source: "iana", + extensions: ["ggb"] + }, + "application/vnd.geogebra.pinboard": { + source: "iana" + }, + "application/vnd.geogebra.slides": { + source: "iana", + extensions: ["ggs"] + }, + "application/vnd.geogebra.tool": { + source: "iana", + extensions: ["ggt"] + }, + "application/vnd.geometry-explorer": { + source: "iana", + extensions: ["gex", "gre"] + }, + "application/vnd.geonext": { + source: "iana", + extensions: ["gxt"] + }, + "application/vnd.geoplan": { + source: "iana", + extensions: ["g2w"] + }, + "application/vnd.geospace": { + source: "iana", + extensions: ["g3w"] + }, + "application/vnd.gerber": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt-response": { + source: "iana" + }, + "application/vnd.gmx": { + source: "iana", + extensions: ["gmx"] + }, + "application/vnd.gnu.taler.exchange+json": { + source: "iana", + compressible: true + }, + "application/vnd.gnu.taler.merchant+json": { + source: "iana", + compressible: true + }, + "application/vnd.google-apps.audio": {}, + "application/vnd.google-apps.document": { + compressible: false, + extensions: ["gdoc"] + }, + "application/vnd.google-apps.drawing": { + compressible: false, + extensions: ["gdraw"] + }, + "application/vnd.google-apps.drive-sdk": { + compressible: false + }, + "application/vnd.google-apps.file": {}, + "application/vnd.google-apps.folder": { + compressible: false + }, + "application/vnd.google-apps.form": { + compressible: false, + extensions: ["gform"] + }, + "application/vnd.google-apps.fusiontable": {}, + "application/vnd.google-apps.jam": { + compressible: false, + extensions: ["gjam"] + }, + "application/vnd.google-apps.mail-layout": {}, + "application/vnd.google-apps.map": { + compressible: false, + extensions: ["gmap"] + }, + "application/vnd.google-apps.photo": {}, + "application/vnd.google-apps.presentation": { + compressible: false, + extensions: ["gslides"] + }, + "application/vnd.google-apps.script": { + compressible: false, + extensions: ["gscript"] + }, + "application/vnd.google-apps.shortcut": {}, + "application/vnd.google-apps.site": { + compressible: false, + extensions: ["gsite"] + }, + "application/vnd.google-apps.spreadsheet": { + compressible: false, + extensions: ["gsheet"] + }, + "application/vnd.google-apps.unknown": {}, + "application/vnd.google-apps.video": {}, + "application/vnd.google-earth.kml+xml": { + source: "iana", + compressible: true, + extensions: ["kml"] + }, + "application/vnd.google-earth.kmz": { + source: "iana", + compressible: false, + extensions: ["kmz"] + }, + "application/vnd.gov.sk.e-form+xml": { + source: "apache", + compressible: true + }, + "application/vnd.gov.sk.e-form+zip": { + source: "iana", + compressible: false + }, + "application/vnd.gov.sk.xmldatacontainer+xml": { + source: "iana", + compressible: true, + extensions: ["xdcf"] + }, + "application/vnd.gpxsee.map+xml": { + source: "iana", + compressible: true + }, + "application/vnd.grafeq": { + source: "iana", + extensions: ["gqf", "gqs"] + }, + "application/vnd.gridmp": { + source: "iana" + }, + "application/vnd.groove-account": { + source: "iana", + extensions: ["gac"] + }, + "application/vnd.groove-help": { + source: "iana", + extensions: ["ghf"] + }, + "application/vnd.groove-identity-message": { + source: "iana", + extensions: ["gim"] + }, + "application/vnd.groove-injector": { + source: "iana", + extensions: ["grv"] + }, + "application/vnd.groove-tool-message": { + source: "iana", + extensions: ["gtm"] + }, + "application/vnd.groove-tool-template": { + source: "iana", + extensions: ["tpl"] + }, + "application/vnd.groove-vcard": { + source: "iana", + extensions: ["vcg"] + }, + "application/vnd.hal+json": { + source: "iana", + compressible: true + }, + "application/vnd.hal+xml": { + source: "iana", + compressible: true, + extensions: ["hal"] + }, + "application/vnd.handheld-entertainment+xml": { + source: "iana", + compressible: true, + extensions: ["zmm"] + }, + "application/vnd.hbci": { + source: "iana", + extensions: ["hbci"] + }, + "application/vnd.hc+json": { + source: "iana", + compressible: true + }, + "application/vnd.hcl-bireports": { + source: "iana" + }, + "application/vnd.hdt": { + source: "iana" + }, + "application/vnd.heroku+json": { + source: "iana", + compressible: true + }, + "application/vnd.hhe.lesson-player": { + source: "iana", + extensions: ["les"] + }, + "application/vnd.hp-hpgl": { + source: "iana", + extensions: ["hpgl"] + }, + "application/vnd.hp-hpid": { + source: "iana", + extensions: ["hpid"] + }, + "application/vnd.hp-hps": { + source: "iana", + extensions: ["hps"] + }, + "application/vnd.hp-jlyt": { + source: "iana", + extensions: ["jlt"] + }, + "application/vnd.hp-pcl": { + source: "iana", + extensions: ["pcl"] + }, + "application/vnd.hp-pclxl": { + source: "iana", + extensions: ["pclxl"] + }, + "application/vnd.hsl": { + source: "iana" + }, + "application/vnd.httphone": { + source: "iana" + }, + "application/vnd.hydrostatix.sof-data": { + source: "iana", + extensions: ["sfd-hdstx"] + }, + "application/vnd.hyper+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyper-item+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyperdrive+json": { + source: "iana", + compressible: true + }, + "application/vnd.hzn-3d-crossword": { + source: "iana" + }, + "application/vnd.ibm.afplinedata": { + source: "apache" + }, + "application/vnd.ibm.electronic-media": { + source: "iana" + }, + "application/vnd.ibm.minipay": { + source: "iana", + extensions: ["mpy"] + }, + "application/vnd.ibm.modcap": { + source: "apache", + extensions: ["afp", "listafp", "list3820"] + }, + "application/vnd.ibm.rights-management": { + source: "iana", + extensions: ["irm"] + }, + "application/vnd.ibm.secure-container": { + source: "iana", + extensions: ["sc"] + }, + "application/vnd.iccprofile": { + source: "iana", + extensions: ["icc", "icm"] + }, + "application/vnd.ieee.1905": { + source: "iana" + }, + "application/vnd.igloader": { + source: "iana", + extensions: ["igl"] + }, + "application/vnd.imagemeter.folder+zip": { + source: "iana", + compressible: false + }, + "application/vnd.imagemeter.image+zip": { + source: "iana", + compressible: false + }, + "application/vnd.immervision-ivp": { + source: "iana", + extensions: ["ivp"] + }, + "application/vnd.immervision-ivu": { + source: "iana", + extensions: ["ivu"] + }, + "application/vnd.ims.imsccv1p1": { + source: "iana" + }, + "application/vnd.ims.imsccv1p2": { + source: "iana" + }, + "application/vnd.ims.imsccv1p3": { + source: "iana" + }, + "application/vnd.ims.lis.v2.result+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolconsumerprofile+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy.id+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings.simple+json": { + source: "iana", + compressible: true + }, + "application/vnd.informedcontrol.rms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.informix-visionary": { + source: "apache" + }, + "application/vnd.infotech.project": { + source: "iana" + }, + "application/vnd.infotech.project+xml": { + source: "iana", + compressible: true + }, + "application/vnd.innopath.wamp.notification": { + source: "iana" + }, + "application/vnd.insors.igm": { + source: "iana", + extensions: ["igm"] + }, + "application/vnd.intercon.formnet": { + source: "iana", + extensions: ["xpw", "xpx"] + }, + "application/vnd.intergeo": { + source: "iana", + extensions: ["i2g"] + }, + "application/vnd.intertrust.digibox": { + source: "iana" + }, + "application/vnd.intertrust.nncp": { + source: "iana" + }, + "application/vnd.intu.qbo": { + source: "iana", + extensions: ["qbo"] + }, + "application/vnd.intu.qfx": { + source: "iana", + extensions: ["qfx"] + }, + "application/vnd.ipfs.ipns-record": { + source: "iana" + }, + "application/vnd.ipld.car": { + source: "iana" + }, + "application/vnd.ipld.dag-cbor": { + source: "iana" + }, + "application/vnd.ipld.dag-json": { + source: "iana" + }, + "application/vnd.ipld.raw": { + source: "iana" + }, + "application/vnd.iptc.g2.catalogitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.conceptitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.knowledgeitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.packageitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.planningitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ipunplugged.rcprofile": { + source: "iana", + extensions: ["rcprofile"] + }, + "application/vnd.irepository.package+xml": { + source: "iana", + compressible: true, + extensions: ["irp"] + }, + "application/vnd.is-xpr": { + source: "iana", + extensions: ["xpr"] + }, + "application/vnd.isac.fcs": { + source: "iana", + extensions: ["fcs"] + }, + "application/vnd.iso11783-10+zip": { + source: "iana", + compressible: false + }, + "application/vnd.jam": { + source: "iana", + extensions: ["jam"] + }, + "application/vnd.japannet-directory-service": { + source: "iana" + }, + "application/vnd.japannet-jpnstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-payment-wakeup": { + source: "iana" + }, + "application/vnd.japannet-registration": { + source: "iana" + }, + "application/vnd.japannet-registration-wakeup": { + source: "iana" + }, + "application/vnd.japannet-setstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-verification": { + source: "iana" + }, + "application/vnd.japannet-verification-wakeup": { + source: "iana" + }, + "application/vnd.jcp.javame.midlet-rms": { + source: "iana", + extensions: ["rms"] + }, + "application/vnd.jisp": { + source: "iana", + extensions: ["jisp"] + }, + "application/vnd.joost.joda-archive": { + source: "iana", + extensions: ["joda"] + }, + "application/vnd.jsk.isdn-ngn": { + source: "iana" + }, + "application/vnd.kahootz": { + source: "iana", + extensions: ["ktz", "ktr"] + }, + "application/vnd.kde.karbon": { + source: "iana", + extensions: ["karbon"] + }, + "application/vnd.kde.kchart": { + source: "iana", + extensions: ["chrt"] + }, + "application/vnd.kde.kformula": { + source: "iana", + extensions: ["kfo"] + }, + "application/vnd.kde.kivio": { + source: "iana", + extensions: ["flw"] + }, + "application/vnd.kde.kontour": { + source: "iana", + extensions: ["kon"] + }, + "application/vnd.kde.kpresenter": { + source: "iana", + extensions: ["kpr", "kpt"] + }, + "application/vnd.kde.kspread": { + source: "iana", + extensions: ["ksp"] + }, + "application/vnd.kde.kword": { + source: "iana", + extensions: ["kwd", "kwt"] + }, + "application/vnd.kdl": { + source: "iana" + }, + "application/vnd.kenameaapp": { + source: "iana", + extensions: ["htke"] + }, + "application/vnd.keyman.kmp+zip": { + source: "iana", + compressible: false + }, + "application/vnd.keyman.kmx": { + source: "iana" + }, + "application/vnd.kidspiration": { + source: "iana", + extensions: ["kia"] + }, + "application/vnd.kinar": { + source: "iana", + extensions: ["kne", "knp"] + }, + "application/vnd.koan": { + source: "iana", + extensions: ["skp", "skd", "skt", "skm"] + }, + "application/vnd.kodak-descriptor": { + source: "iana", + extensions: ["sse"] + }, + "application/vnd.las": { + source: "iana" + }, + "application/vnd.las.las+json": { + source: "iana", + compressible: true + }, + "application/vnd.las.las+xml": { + source: "iana", + compressible: true, + extensions: ["lasxml"] + }, + "application/vnd.laszip": { + source: "iana" + }, + "application/vnd.ldev.productlicensing": { + source: "iana" + }, + "application/vnd.leap+json": { + source: "iana", + compressible: true + }, + "application/vnd.liberty-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.llamagraphics.life-balance.desktop": { + source: "iana", + extensions: ["lbd"] + }, + "application/vnd.llamagraphics.life-balance.exchange+xml": { + source: "iana", + compressible: true, + extensions: ["lbe"] + }, + "application/vnd.logipipe.circuit+zip": { + source: "iana", + compressible: false + }, + "application/vnd.loom": { + source: "iana" + }, + "application/vnd.lotus-1-2-3": { + source: "iana", + extensions: ["123"] + }, + "application/vnd.lotus-approach": { + source: "iana", + extensions: ["apr"] + }, + "application/vnd.lotus-freelance": { + source: "iana", + extensions: ["pre"] + }, + "application/vnd.lotus-notes": { + source: "iana", + extensions: ["nsf"] + }, + "application/vnd.lotus-organizer": { + source: "iana", + extensions: ["org"] + }, + "application/vnd.lotus-screencam": { + source: "iana", + extensions: ["scm"] + }, + "application/vnd.lotus-wordpro": { + source: "iana", + extensions: ["lwp"] + }, + "application/vnd.macports.portpkg": { + source: "iana", + extensions: ["portpkg"] + }, + "application/vnd.mapbox-vector-tile": { + source: "iana", + extensions: ["mvt"] + }, + "application/vnd.marlin.drm.actiontoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.conftoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.license+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.mdcf": { + source: "iana" + }, + "application/vnd.mason+json": { + source: "iana", + compressible: true + }, + "application/vnd.maxar.archive.3tz+zip": { + source: "iana", + compressible: false + }, + "application/vnd.maxmind.maxmind-db": { + source: "iana" + }, + "application/vnd.mcd": { + source: "iana", + extensions: ["mcd"] + }, + "application/vnd.mdl": { + source: "iana" + }, + "application/vnd.mdl-mbsdf": { + source: "iana" + }, + "application/vnd.medcalcdata": { + source: "iana", + extensions: ["mc1"] + }, + "application/vnd.mediastation.cdkey": { + source: "iana", + extensions: ["cdkey"] + }, + "application/vnd.medicalholodeck.recordxr": { + source: "iana" + }, + "application/vnd.meridian-slingshot": { + source: "iana" + }, + "application/vnd.mermaid": { + source: "iana" + }, + "application/vnd.mfer": { + source: "iana", + extensions: ["mwf"] + }, + "application/vnd.mfmp": { + source: "iana", + extensions: ["mfm"] + }, + "application/vnd.micro+json": { + source: "iana", + compressible: true + }, + "application/vnd.micrografx.flo": { + source: "iana", + extensions: ["flo"] + }, + "application/vnd.micrografx.igx": { + source: "iana", + extensions: ["igx"] + }, + "application/vnd.microsoft.portable-executable": { + source: "iana" + }, + "application/vnd.microsoft.windows.thumbnail-cache": { + source: "iana" + }, + "application/vnd.miele+json": { + source: "iana", + compressible: true + }, + "application/vnd.mif": { + source: "iana", + extensions: ["mif"] + }, + "application/vnd.minisoft-hp3000-save": { + source: "iana" + }, + "application/vnd.mitsubishi.misty-guard.trustweb": { + source: "iana" + }, + "application/vnd.mobius.daf": { + source: "iana", + extensions: ["daf"] + }, + "application/vnd.mobius.dis": { + source: "iana", + extensions: ["dis"] + }, + "application/vnd.mobius.mbk": { + source: "iana", + extensions: ["mbk"] + }, + "application/vnd.mobius.mqy": { + source: "iana", + extensions: ["mqy"] + }, + "application/vnd.mobius.msl": { + source: "iana", + extensions: ["msl"] + }, + "application/vnd.mobius.plc": { + source: "iana", + extensions: ["plc"] + }, + "application/vnd.mobius.txf": { + source: "iana", + extensions: ["txf"] + }, + "application/vnd.modl": { + source: "iana" + }, + "application/vnd.mophun.application": { + source: "iana", + extensions: ["mpn"] + }, + "application/vnd.mophun.certificate": { + source: "iana", + extensions: ["mpc"] + }, + "application/vnd.motorola.flexsuite": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.adsi": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.fis": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.gotap": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.kmr": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.ttc": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.wem": { + source: "iana" + }, + "application/vnd.motorola.iprm": { + source: "iana" + }, + "application/vnd.mozilla.xul+xml": { + source: "iana", + compressible: true, + extensions: ["xul"] + }, + "application/vnd.ms-3mfdocument": { + source: "iana" + }, + "application/vnd.ms-artgalry": { + source: "iana", + extensions: ["cil"] + }, + "application/vnd.ms-asf": { + source: "iana" + }, + "application/vnd.ms-cab-compressed": { + source: "iana", + extensions: ["cab"] + }, + "application/vnd.ms-color.iccprofile": { + source: "apache" + }, + "application/vnd.ms-excel": { + source: "iana", + compressible: false, + extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"] + }, + "application/vnd.ms-excel.addin.macroenabled.12": { + source: "iana", + extensions: ["xlam"] + }, + "application/vnd.ms-excel.sheet.binary.macroenabled.12": { + source: "iana", + extensions: ["xlsb"] + }, + "application/vnd.ms-excel.sheet.macroenabled.12": { + source: "iana", + extensions: ["xlsm"] + }, + "application/vnd.ms-excel.template.macroenabled.12": { + source: "iana", + extensions: ["xltm"] + }, + "application/vnd.ms-fontobject": { + source: "iana", + compressible: true, + extensions: ["eot"] + }, + "application/vnd.ms-htmlhelp": { + source: "iana", + extensions: ["chm"] + }, + "application/vnd.ms-ims": { + source: "iana", + extensions: ["ims"] + }, + "application/vnd.ms-lrm": { + source: "iana", + extensions: ["lrm"] + }, + "application/vnd.ms-office.activex+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-officetheme": { + source: "iana", + extensions: ["thmx"] + }, + "application/vnd.ms-opentype": { + source: "apache", + compressible: true + }, + "application/vnd.ms-outlook": { + compressible: false, + extensions: ["msg"] + }, + "application/vnd.ms-package.obfuscated-opentype": { + source: "apache" + }, + "application/vnd.ms-pki.seccat": { + source: "apache", + extensions: ["cat"] + }, + "application/vnd.ms-pki.stl": { + source: "apache", + extensions: ["stl"] + }, + "application/vnd.ms-playready.initiator+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-powerpoint": { + source: "iana", + compressible: false, + extensions: ["ppt", "pps", "pot"] + }, + "application/vnd.ms-powerpoint.addin.macroenabled.12": { + source: "iana", + extensions: ["ppam"] + }, + "application/vnd.ms-powerpoint.presentation.macroenabled.12": { + source: "iana", + extensions: ["pptm"] + }, + "application/vnd.ms-powerpoint.slide.macroenabled.12": { + source: "iana", + extensions: ["sldm"] + }, + "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { + source: "iana", + extensions: ["ppsm"] + }, + "application/vnd.ms-powerpoint.template.macroenabled.12": { + source: "iana", + extensions: ["potm"] + }, + "application/vnd.ms-printdevicecapabilities+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-printing.printticket+xml": { + source: "apache", + compressible: true + }, + "application/vnd.ms-printschematicket+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-project": { + source: "iana", + extensions: ["mpp", "mpt"] + }, + "application/vnd.ms-tnef": { + source: "iana" + }, + "application/vnd.ms-visio.viewer": { + extensions: ["vdx"] + }, + "application/vnd.ms-windows.devicepairing": { + source: "iana" + }, + "application/vnd.ms-windows.nwprinting.oob": { + source: "iana" + }, + "application/vnd.ms-windows.printerpairing": { + source: "iana" + }, + "application/vnd.ms-windows.wsd.oob": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-resp": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-resp": { + source: "iana" + }, + "application/vnd.ms-word.document.macroenabled.12": { + source: "iana", + extensions: ["docm"] + }, + "application/vnd.ms-word.template.macroenabled.12": { + source: "iana", + extensions: ["dotm"] + }, + "application/vnd.ms-works": { + source: "iana", + extensions: ["wps", "wks", "wcm", "wdb"] + }, + "application/vnd.ms-wpl": { + source: "iana", + extensions: ["wpl"] + }, + "application/vnd.ms-xpsdocument": { + source: "iana", + compressible: false, + extensions: ["xps"] + }, + "application/vnd.msa-disk-image": { + source: "iana" + }, + "application/vnd.mseq": { + source: "iana", + extensions: ["mseq"] + }, + "application/vnd.msgpack": { + source: "iana" + }, + "application/vnd.msign": { + source: "iana" + }, + "application/vnd.multiad.creator": { + source: "iana" + }, + "application/vnd.multiad.creator.cif": { + source: "iana" + }, + "application/vnd.music-niff": { + source: "iana" + }, + "application/vnd.musician": { + source: "iana", + extensions: ["mus"] + }, + "application/vnd.muvee.style": { + source: "iana", + extensions: ["msty"] + }, + "application/vnd.mynfc": { + source: "iana", + extensions: ["taglet"] + }, + "application/vnd.nacamar.ybrid+json": { + source: "iana", + compressible: true + }, + "application/vnd.nato.bindingdataobject+cbor": { + source: "iana" + }, + "application/vnd.nato.bindingdataobject+json": { + source: "iana", + compressible: true + }, + "application/vnd.nato.bindingdataobject+xml": { + source: "iana", + compressible: true, + extensions: ["bdo"] + }, + "application/vnd.nato.openxmlformats-package.iepd+zip": { + source: "iana", + compressible: false + }, + "application/vnd.ncd.control": { + source: "iana" + }, + "application/vnd.ncd.reference": { + source: "iana" + }, + "application/vnd.nearst.inv+json": { + source: "iana", + compressible: true + }, + "application/vnd.nebumind.line": { + source: "iana" + }, + "application/vnd.nervana": { + source: "iana" + }, + "application/vnd.netfpx": { + source: "iana" + }, + "application/vnd.neurolanguage.nlu": { + source: "iana", + extensions: ["nlu"] + }, + "application/vnd.nimn": { + source: "iana" + }, + "application/vnd.nintendo.nitro.rom": { + source: "iana" + }, + "application/vnd.nintendo.snes.rom": { + source: "iana" + }, + "application/vnd.nitf": { + source: "iana", + extensions: ["ntf", "nitf"] + }, + "application/vnd.noblenet-directory": { + source: "iana", + extensions: ["nnd"] + }, + "application/vnd.noblenet-sealer": { + source: "iana", + extensions: ["nns"] + }, + "application/vnd.noblenet-web": { + source: "iana", + extensions: ["nnw"] + }, + "application/vnd.nokia.catalogs": { + source: "iana" + }, + "application/vnd.nokia.conml+wbxml": { + source: "iana" + }, + "application/vnd.nokia.conml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.iptv.config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.isds-radio-presets": { + source: "iana" + }, + "application/vnd.nokia.landmark+wbxml": { + source: "iana" + }, + "application/vnd.nokia.landmark+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.landmarkcollection+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.n-gage.ac+xml": { + source: "iana", + compressible: true, + extensions: ["ac"] + }, + "application/vnd.nokia.n-gage.data": { + source: "iana", + extensions: ["ngdat"] + }, + "application/vnd.nokia.n-gage.symbian.install": { + source: "apache", + extensions: ["n-gage"] + }, + "application/vnd.nokia.ncd": { + source: "iana" + }, + "application/vnd.nokia.pcd+wbxml": { + source: "iana" + }, + "application/vnd.nokia.pcd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.radio-preset": { + source: "iana", + extensions: ["rpst"] + }, + "application/vnd.nokia.radio-presets": { + source: "iana", + extensions: ["rpss"] + }, + "application/vnd.novadigm.edm": { + source: "iana", + extensions: ["edm"] + }, + "application/vnd.novadigm.edx": { + source: "iana", + extensions: ["edx"] + }, + "application/vnd.novadigm.ext": { + source: "iana", + extensions: ["ext"] + }, + "application/vnd.ntt-local.content-share": { + source: "iana" + }, + "application/vnd.ntt-local.file-transfer": { + source: "iana" + }, + "application/vnd.ntt-local.ogw_remote-access": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_remote": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_tcp_stream": { + source: "iana" + }, + "application/vnd.oai.workflows": { + source: "iana" + }, + "application/vnd.oai.workflows+json": { + source: "iana", + compressible: true + }, + "application/vnd.oai.workflows+yaml": { + source: "iana" + }, + "application/vnd.oasis.opendocument.base": { + source: "iana" + }, + "application/vnd.oasis.opendocument.chart": { + source: "iana", + extensions: ["odc"] + }, + "application/vnd.oasis.opendocument.chart-template": { + source: "iana", + extensions: ["otc"] + }, + "application/vnd.oasis.opendocument.database": { + source: "apache", + extensions: ["odb"] + }, + "application/vnd.oasis.opendocument.formula": { + source: "iana", + extensions: ["odf"] + }, + "application/vnd.oasis.opendocument.formula-template": { + source: "iana", + extensions: ["odft"] + }, + "application/vnd.oasis.opendocument.graphics": { + source: "iana", + compressible: false, + extensions: ["odg"] + }, + "application/vnd.oasis.opendocument.graphics-template": { + source: "iana", + extensions: ["otg"] + }, + "application/vnd.oasis.opendocument.image": { + source: "iana", + extensions: ["odi"] + }, + "application/vnd.oasis.opendocument.image-template": { + source: "iana", + extensions: ["oti"] + }, + "application/vnd.oasis.opendocument.presentation": { + source: "iana", + compressible: false, + extensions: ["odp"] + }, + "application/vnd.oasis.opendocument.presentation-template": { + source: "iana", + extensions: ["otp"] + }, + "application/vnd.oasis.opendocument.spreadsheet": { + source: "iana", + compressible: false, + extensions: ["ods"] + }, + "application/vnd.oasis.opendocument.spreadsheet-template": { + source: "iana", + extensions: ["ots"] + }, + "application/vnd.oasis.opendocument.text": { + source: "iana", + compressible: false, + extensions: ["odt"] + }, + "application/vnd.oasis.opendocument.text-master": { + source: "iana", + extensions: ["odm"] + }, + "application/vnd.oasis.opendocument.text-master-template": { + source: "iana" + }, + "application/vnd.oasis.opendocument.text-template": { + source: "iana", + extensions: ["ott"] + }, + "application/vnd.oasis.opendocument.text-web": { + source: "iana", + extensions: ["oth"] + }, + "application/vnd.obn": { + source: "iana" + }, + "application/vnd.ocf+cbor": { + source: "iana" + }, + "application/vnd.oci.image.manifest.v1+json": { + source: "iana", + compressible: true + }, + "application/vnd.oftn.l10n+json": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessdownload+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessstreaming+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.cspg-hexbinary": { + source: "iana" + }, + "application/vnd.oipf.dae.svg+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.dae.xhtml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.mippvcontrolmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.pae.gem": { + source: "iana" + }, + "application/vnd.oipf.spdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.spdlist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.ueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.userprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.olpc-sugar": { + source: "iana", + extensions: ["xo"] + }, + "application/vnd.oma-scws-config": { + source: "iana" + }, + "application/vnd.oma-scws-http-request": { + source: "iana" + }, + "application/vnd.oma-scws-http-response": { + source: "iana" + }, + "application/vnd.oma.bcast.associated-procedure-parameter+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.drm-trigger+xml": { + source: "apache", + compressible: true + }, + "application/vnd.oma.bcast.imd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.ltkm": { + source: "iana" + }, + "application/vnd.oma.bcast.notification+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.provisioningtrigger": { + source: "iana" + }, + "application/vnd.oma.bcast.sgboot": { + source: "iana" + }, + "application/vnd.oma.bcast.sgdd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.sgdu": { + source: "iana" + }, + "application/vnd.oma.bcast.simple-symbol-container": { + source: "iana" + }, + "application/vnd.oma.bcast.smartcard-trigger+xml": { + source: "apache", + compressible: true + }, + "application/vnd.oma.bcast.sprov+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.stkm": { + source: "iana" + }, + "application/vnd.oma.cab-address-book+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-feature-handler+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-pcc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-subs-invite+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-user-prefs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.dcd": { + source: "iana" + }, + "application/vnd.oma.dcdc": { + source: "iana" + }, + "application/vnd.oma.dd2+xml": { + source: "iana", + compressible: true, + extensions: ["dd2"] + }, + "application/vnd.oma.drm.risd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.group-usage-list+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+cbor": { + source: "iana" + }, + "application/vnd.oma.lwm2m+json": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+tlv": { + source: "iana" + }, + "application/vnd.oma.pal+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.detailed-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.final-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.groups+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.invocation-descriptor+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.optimized-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.push": { + source: "iana" + }, + "application/vnd.oma.scidm.messages+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.xcap-directory+xml": { + source: "iana", + compressible: true + }, + "application/vnd.omads-email+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-file+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-folder+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omaloc-supl-init": { + source: "iana" + }, + "application/vnd.onepager": { + source: "iana" + }, + "application/vnd.onepagertamp": { + source: "iana" + }, + "application/vnd.onepagertamx": { + source: "iana" + }, + "application/vnd.onepagertat": { + source: "iana" + }, + "application/vnd.onepagertatp": { + source: "iana" + }, + "application/vnd.onepagertatx": { + source: "iana" + }, + "application/vnd.onvif.metadata": { + source: "iana" + }, + "application/vnd.openblox.game+xml": { + source: "iana", + compressible: true, + extensions: ["obgx"] + }, + "application/vnd.openblox.game-binary": { + source: "iana" + }, + "application/vnd.openeye.oeb": { + source: "iana" + }, + "application/vnd.openofficeorg.extension": { + source: "apache", + extensions: ["oxt"] + }, + "application/vnd.openstreetmap.data+xml": { + source: "iana", + compressible: true, + extensions: ["osm"] + }, + "application/vnd.opentimestamps.ots": { + source: "iana" + }, + "application/vnd.openvpi.dspx+json": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.custom-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawing+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.extended-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation": { + source: "iana", + compressible: false, + extensions: ["pptx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide": { + source: "iana", + extensions: ["sldx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { + source: "iana", + extensions: ["ppsx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.template": { + source: "iana", + extensions: ["potx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { + source: "iana", + compressible: false, + extensions: ["xlsx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { + source: "iana", + extensions: ["xltx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.theme+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.themeoverride+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.vmldrawing": { + source: "iana" + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { + source: "iana", + compressible: false, + extensions: ["docx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { + source: "iana", + extensions: ["dotx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.core-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.relationships+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oracle.resource+json": { + source: "iana", + compressible: true + }, + "application/vnd.orange.indata": { + source: "iana" + }, + "application/vnd.osa.netdeploy": { + source: "iana" + }, + "application/vnd.osgeo.mapguide.package": { + source: "iana", + extensions: ["mgp"] + }, + "application/vnd.osgi.bundle": { + source: "iana" + }, + "application/vnd.osgi.dp": { + source: "iana", + extensions: ["dp"] + }, + "application/vnd.osgi.subsystem": { + source: "iana", + extensions: ["esa"] + }, + "application/vnd.otps.ct-kip+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oxli.countgraph": { + source: "iana" + }, + "application/vnd.pagerduty+json": { + source: "iana", + compressible: true + }, + "application/vnd.palm": { + source: "iana", + extensions: ["pdb", "pqa", "oprc"] + }, + "application/vnd.panoply": { + source: "iana" + }, + "application/vnd.paos.xml": { + source: "iana" + }, + "application/vnd.patentdive": { + source: "iana" + }, + "application/vnd.patientecommsdoc": { + source: "iana" + }, + "application/vnd.pawaafile": { + source: "iana", + extensions: ["paw"] + }, + "application/vnd.pcos": { + source: "iana" + }, + "application/vnd.pg.format": { + source: "iana", + extensions: ["str"] + }, + "application/vnd.pg.osasli": { + source: "iana", + extensions: ["ei6"] + }, + "application/vnd.piaccess.application-licence": { + source: "iana" + }, + "application/vnd.picsel": { + source: "iana", + extensions: ["efif"] + }, + "application/vnd.pmi.widget": { + source: "iana", + extensions: ["wg"] + }, + "application/vnd.poc.group-advertisement+xml": { + source: "iana", + compressible: true + }, + "application/vnd.pocketlearn": { + source: "iana", + extensions: ["plf"] + }, + "application/vnd.powerbuilder6": { + source: "iana", + extensions: ["pbd"] + }, + "application/vnd.powerbuilder6-s": { + source: "iana" + }, + "application/vnd.powerbuilder7": { + source: "iana" + }, + "application/vnd.powerbuilder7-s": { + source: "iana" + }, + "application/vnd.powerbuilder75": { + source: "iana" + }, + "application/vnd.powerbuilder75-s": { + source: "iana" + }, + "application/vnd.preminet": { + source: "iana" + }, + "application/vnd.previewsystems.box": { + source: "iana", + extensions: ["box"] + }, + "application/vnd.procrate.brushset": { + extensions: ["brushset"] + }, + "application/vnd.procreate.brush": { + extensions: ["brush"] + }, + "application/vnd.procreate.dream": { + extensions: ["drm"] + }, + "application/vnd.proteus.magazine": { + source: "iana", + extensions: ["mgz"] + }, + "application/vnd.psfs": { + source: "iana" + }, + "application/vnd.pt.mundusmundi": { + source: "iana" + }, + "application/vnd.publishare-delta-tree": { + source: "iana", + extensions: ["qps"] + }, + "application/vnd.pvi.ptid1": { + source: "iana", + extensions: ["ptid"] + }, + "application/vnd.pwg-multiplexed": { + source: "iana" + }, + "application/vnd.pwg-xhtml-print+xml": { + source: "iana", + compressible: true, + extensions: ["xhtm"] + }, + "application/vnd.qualcomm.brew-app-res": { + source: "iana" + }, + "application/vnd.quarantainenet": { + source: "iana" + }, + "application/vnd.quark.quarkxpress": { + source: "iana", + extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"] + }, + "application/vnd.quobject-quoxdocument": { + source: "iana" + }, + "application/vnd.radisys.moml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-stream+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-base+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-detect+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-group+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-speech+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-transform+xml": { + source: "iana", + compressible: true + }, + "application/vnd.rainstor.data": { + source: "iana" + }, + "application/vnd.rapid": { + source: "iana" + }, + "application/vnd.rar": { + source: "iana", + extensions: ["rar"] + }, + "application/vnd.realvnc.bed": { + source: "iana", + extensions: ["bed"] + }, + "application/vnd.recordare.musicxml": { + source: "iana", + extensions: ["mxl"] + }, + "application/vnd.recordare.musicxml+xml": { + source: "iana", + compressible: true, + extensions: ["musicxml"] + }, + "application/vnd.relpipe": { + source: "iana" + }, + "application/vnd.renlearn.rlprint": { + source: "iana" + }, + "application/vnd.resilient.logic": { + source: "iana" + }, + "application/vnd.restful+json": { + source: "iana", + compressible: true + }, + "application/vnd.rig.cryptonote": { + source: "iana", + extensions: ["cryptonote"] + }, + "application/vnd.rim.cod": { + source: "apache", + extensions: ["cod"] + }, + "application/vnd.rn-realmedia": { + source: "apache", + extensions: ["rm"] + }, + "application/vnd.rn-realmedia-vbr": { + source: "apache", + extensions: ["rmvb"] + }, + "application/vnd.route66.link66+xml": { + source: "iana", + compressible: true, + extensions: ["link66"] + }, + "application/vnd.rs-274x": { + source: "iana" + }, + "application/vnd.ruckus.download": { + source: "iana" + }, + "application/vnd.s3sms": { + source: "iana" + }, + "application/vnd.sailingtracker.track": { + source: "iana", + extensions: ["st"] + }, + "application/vnd.sar": { + source: "iana" + }, + "application/vnd.sbm.cid": { + source: "iana" + }, + "application/vnd.sbm.mid2": { + source: "iana" + }, + "application/vnd.scribus": { + source: "iana" + }, + "application/vnd.sealed.3df": { + source: "iana" + }, + "application/vnd.sealed.csf": { + source: "iana" + }, + "application/vnd.sealed.doc": { + source: "iana" + }, + "application/vnd.sealed.eml": { + source: "iana" + }, + "application/vnd.sealed.mht": { + source: "iana" + }, + "application/vnd.sealed.net": { + source: "iana" + }, + "application/vnd.sealed.ppt": { + source: "iana" + }, + "application/vnd.sealed.tiff": { + source: "iana" + }, + "application/vnd.sealed.xls": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.html": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.pdf": { + source: "iana" + }, + "application/vnd.seemail": { + source: "iana", + extensions: ["see"] + }, + "application/vnd.seis+json": { + source: "iana", + compressible: true + }, + "application/vnd.sema": { + source: "iana", + extensions: ["sema"] + }, + "application/vnd.semd": { + source: "iana", + extensions: ["semd"] + }, + "application/vnd.semf": { + source: "iana", + extensions: ["semf"] + }, + "application/vnd.shade-save-file": { + source: "iana" + }, + "application/vnd.shana.informed.formdata": { + source: "iana", + extensions: ["ifm"] + }, + "application/vnd.shana.informed.formtemplate": { + source: "iana", + extensions: ["itp"] + }, + "application/vnd.shana.informed.interchange": { + source: "iana", + extensions: ["iif"] + }, + "application/vnd.shana.informed.package": { + source: "iana", + extensions: ["ipk"] + }, + "application/vnd.shootproof+json": { + source: "iana", + compressible: true + }, + "application/vnd.shopkick+json": { + source: "iana", + compressible: true + }, + "application/vnd.shp": { + source: "iana" + }, + "application/vnd.shx": { + source: "iana" + }, + "application/vnd.sigrok.session": { + source: "iana" + }, + "application/vnd.simtech-mindmapper": { + source: "iana", + extensions: ["twd", "twds"] + }, + "application/vnd.siren+json": { + source: "iana", + compressible: true + }, + "application/vnd.sketchometry": { + source: "iana" + }, + "application/vnd.smaf": { + source: "iana", + extensions: ["mmf"] + }, + "application/vnd.smart.notebook": { + source: "iana" + }, + "application/vnd.smart.teacher": { + source: "iana", + extensions: ["teacher"] + }, + "application/vnd.smintio.portals.archive": { + source: "iana" + }, + "application/vnd.snesdev-page-table": { + source: "iana" + }, + "application/vnd.software602.filler.form+xml": { + source: "iana", + compressible: true, + extensions: ["fo"] + }, + "application/vnd.software602.filler.form-xml-zip": { + source: "iana" + }, + "application/vnd.solent.sdkm+xml": { + source: "iana", + compressible: true, + extensions: ["sdkm", "sdkd"] + }, + "application/vnd.spotfire.dxp": { + source: "iana", + extensions: ["dxp"] + }, + "application/vnd.spotfire.sfs": { + source: "iana", + extensions: ["sfs"] + }, + "application/vnd.sqlite3": { + source: "iana" + }, + "application/vnd.sss-cod": { + source: "iana" + }, + "application/vnd.sss-dtf": { + source: "iana" + }, + "application/vnd.sss-ntf": { + source: "iana" + }, + "application/vnd.stardivision.calc": { + source: "apache", + extensions: ["sdc"] + }, + "application/vnd.stardivision.draw": { + source: "apache", + extensions: ["sda"] + }, + "application/vnd.stardivision.impress": { + source: "apache", + extensions: ["sdd"] + }, + "application/vnd.stardivision.math": { + source: "apache", + extensions: ["smf"] + }, + "application/vnd.stardivision.writer": { + source: "apache", + extensions: ["sdw", "vor"] + }, + "application/vnd.stardivision.writer-global": { + source: "apache", + extensions: ["sgl"] + }, + "application/vnd.stepmania.package": { + source: "iana", + extensions: ["smzip"] + }, + "application/vnd.stepmania.stepchart": { + source: "iana", + extensions: ["sm"] + }, + "application/vnd.street-stream": { + source: "iana" + }, + "application/vnd.sun.wadl+xml": { + source: "iana", + compressible: true, + extensions: ["wadl"] + }, + "application/vnd.sun.xml.calc": { + source: "apache", + extensions: ["sxc"] + }, + "application/vnd.sun.xml.calc.template": { + source: "apache", + extensions: ["stc"] + }, + "application/vnd.sun.xml.draw": { + source: "apache", + extensions: ["sxd"] + }, + "application/vnd.sun.xml.draw.template": { + source: "apache", + extensions: ["std"] + }, + "application/vnd.sun.xml.impress": { + source: "apache", + extensions: ["sxi"] + }, + "application/vnd.sun.xml.impress.template": { + source: "apache", + extensions: ["sti"] + }, + "application/vnd.sun.xml.math": { + source: "apache", + extensions: ["sxm"] + }, + "application/vnd.sun.xml.writer": { + source: "apache", + extensions: ["sxw"] + }, + "application/vnd.sun.xml.writer.global": { + source: "apache", + extensions: ["sxg"] + }, + "application/vnd.sun.xml.writer.template": { + source: "apache", + extensions: ["stw"] + }, + "application/vnd.sus-calendar": { + source: "iana", + extensions: ["sus", "susp"] + }, + "application/vnd.svd": { + source: "iana", + extensions: ["svd"] + }, + "application/vnd.swiftview-ics": { + source: "iana" + }, + "application/vnd.sybyl.mol2": { + source: "iana" + }, + "application/vnd.sycle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.syft+json": { + source: "iana", + compressible: true + }, + "application/vnd.symbian.install": { + source: "apache", + extensions: ["sis", "sisx"] + }, + "application/vnd.syncml+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xsm"] + }, + "application/vnd.syncml.dm+wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["bdm"] + }, + "application/vnd.syncml.dm+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xdm"] + }, + "application/vnd.syncml.dm.notification": { + source: "iana" + }, + "application/vnd.syncml.dmddf+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmddf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["ddf"] + }, + "application/vnd.syncml.dmtnds+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmtnds+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.syncml.ds.notification": { + source: "iana" + }, + "application/vnd.tableschema+json": { + source: "iana", + compressible: true + }, + "application/vnd.tao.intent-module-archive": { + source: "iana", + extensions: ["tao"] + }, + "application/vnd.tcpdump.pcap": { + source: "iana", + extensions: ["pcap", "cap", "dmp"] + }, + "application/vnd.think-cell.ppttc+json": { + source: "iana", + compressible: true + }, + "application/vnd.tmd.mediaflex.api+xml": { + source: "iana", + compressible: true + }, + "application/vnd.tml": { + source: "iana" + }, + "application/vnd.tmobile-livetv": { + source: "iana", + extensions: ["tmo"] + }, + "application/vnd.tri.onesource": { + source: "iana" + }, + "application/vnd.trid.tpt": { + source: "iana", + extensions: ["tpt"] + }, + "application/vnd.triscape.mxs": { + source: "iana", + extensions: ["mxs"] + }, + "application/vnd.trueapp": { + source: "iana", + extensions: ["tra"] + }, + "application/vnd.truedoc": { + source: "iana" + }, + "application/vnd.ubisoft.webplayer": { + source: "iana" + }, + "application/vnd.ufdl": { + source: "iana", + extensions: ["ufd", "ufdl"] + }, + "application/vnd.uic.osdm+json": { + source: "iana", + compressible: true + }, + "application/vnd.uiq.theme": { + source: "iana", + extensions: ["utz"] + }, + "application/vnd.umajin": { + source: "iana", + extensions: ["umj"] + }, + "application/vnd.unity": { + source: "iana", + extensions: ["unityweb"] + }, + "application/vnd.uoml+xml": { + source: "iana", + compressible: true, + extensions: ["uoml", "uo"] + }, + "application/vnd.uplanet.alert": { + source: "iana" + }, + "application/vnd.uplanet.alert-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.cacheop": { + source: "iana" + }, + "application/vnd.uplanet.cacheop-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.channel": { + source: "iana" + }, + "application/vnd.uplanet.channel-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.list": { + source: "iana" + }, + "application/vnd.uplanet.list-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.listcmd": { + source: "iana" + }, + "application/vnd.uplanet.listcmd-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.signal": { + source: "iana" + }, + "application/vnd.uri-map": { + source: "iana" + }, + "application/vnd.valve.source.material": { + source: "iana" + }, + "application/vnd.vcx": { + source: "iana", + extensions: ["vcx"] + }, + "application/vnd.vd-study": { + source: "iana" + }, + "application/vnd.vectorworks": { + source: "iana" + }, + "application/vnd.vel+json": { + source: "iana", + compressible: true + }, + "application/vnd.veraison.tsm-report+cbor": { + source: "iana" + }, + "application/vnd.veraison.tsm-report+json": { + source: "iana", + compressible: true + }, + "application/vnd.verimatrix.vcas": { + source: "iana" + }, + "application/vnd.veritone.aion+json": { + source: "iana", + compressible: true + }, + "application/vnd.veryant.thin": { + source: "iana" + }, + "application/vnd.ves.encrypted": { + source: "iana" + }, + "application/vnd.vidsoft.vidconference": { + source: "iana" + }, + "application/vnd.visio": { + source: "iana", + extensions: ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"] + }, + "application/vnd.visionary": { + source: "iana", + extensions: ["vis"] + }, + "application/vnd.vividence.scriptfile": { + source: "iana" + }, + "application/vnd.vocalshaper.vsp4": { + source: "iana" + }, + "application/vnd.vsf": { + source: "iana", + extensions: ["vsf"] + }, + "application/vnd.wap.sic": { + source: "iana" + }, + "application/vnd.wap.slc": { + source: "iana" + }, + "application/vnd.wap.wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["wbxml"] + }, + "application/vnd.wap.wmlc": { + source: "iana", + extensions: ["wmlc"] + }, + "application/vnd.wap.wmlscriptc": { + source: "iana", + extensions: ["wmlsc"] + }, + "application/vnd.wasmflow.wafl": { + source: "iana" + }, + "application/vnd.webturbo": { + source: "iana", + extensions: ["wtb"] + }, + "application/vnd.wfa.dpp": { + source: "iana" + }, + "application/vnd.wfa.p2p": { + source: "iana" + }, + "application/vnd.wfa.wsc": { + source: "iana" + }, + "application/vnd.windows.devicepairing": { + source: "iana" + }, + "application/vnd.wmc": { + source: "iana" + }, + "application/vnd.wmf.bootstrap": { + source: "iana" + }, + "application/vnd.wolfram.mathematica": { + source: "iana" + }, + "application/vnd.wolfram.mathematica.package": { + source: "iana" + }, + "application/vnd.wolfram.player": { + source: "iana", + extensions: ["nbp"] + }, + "application/vnd.wordlift": { + source: "iana" + }, + "application/vnd.wordperfect": { + source: "iana", + extensions: ["wpd"] + }, + "application/vnd.wqd": { + source: "iana", + extensions: ["wqd"] + }, + "application/vnd.wrq-hp3000-labelled": { + source: "iana" + }, + "application/vnd.wt.stf": { + source: "iana", + extensions: ["stf"] + }, + "application/vnd.wv.csp+wbxml": { + source: "iana" + }, + "application/vnd.wv.csp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.wv.ssp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xacml+json": { + source: "iana", + compressible: true + }, + "application/vnd.xara": { + source: "iana", + extensions: ["xar"] + }, + "application/vnd.xarin.cpj": { + source: "iana" + }, + "application/vnd.xecrets-encrypted": { + source: "iana" + }, + "application/vnd.xfdl": { + source: "iana", + extensions: ["xfdl"] + }, + "application/vnd.xfdl.webform": { + source: "iana" + }, + "application/vnd.xmi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xmpie.cpkg": { + source: "iana" + }, + "application/vnd.xmpie.dpkg": { + source: "iana" + }, + "application/vnd.xmpie.plan": { + source: "iana" + }, + "application/vnd.xmpie.ppkg": { + source: "iana" + }, + "application/vnd.xmpie.xlim": { + source: "iana" + }, + "application/vnd.yamaha.hv-dic": { + source: "iana", + extensions: ["hvd"] + }, + "application/vnd.yamaha.hv-script": { + source: "iana", + extensions: ["hvs"] + }, + "application/vnd.yamaha.hv-voice": { + source: "iana", + extensions: ["hvp"] + }, + "application/vnd.yamaha.openscoreformat": { + source: "iana", + extensions: ["osf"] + }, + "application/vnd.yamaha.openscoreformat.osfpvg+xml": { + source: "iana", + compressible: true, + extensions: ["osfpvg"] + }, + "application/vnd.yamaha.remote-setup": { + source: "iana" + }, + "application/vnd.yamaha.smaf-audio": { + source: "iana", + extensions: ["saf"] + }, + "application/vnd.yamaha.smaf-phrase": { + source: "iana", + extensions: ["spf"] + }, + "application/vnd.yamaha.through-ngn": { + source: "iana" + }, + "application/vnd.yamaha.tunnel-udpencap": { + source: "iana" + }, + "application/vnd.yaoweme": { + source: "iana" + }, + "application/vnd.yellowriver-custom-menu": { + source: "iana", + extensions: ["cmp"] + }, + "application/vnd.zul": { + source: "iana", + extensions: ["zir", "zirz"] + }, + "application/vnd.zzazz.deck+xml": { + source: "iana", + compressible: true, + extensions: ["zaz"] + }, + "application/voicexml+xml": { + source: "iana", + compressible: true, + extensions: ["vxml"] + }, + "application/voucher-cms+json": { + source: "iana", + compressible: true + }, + "application/voucher-jws+json": { + source: "iana", + compressible: true + }, + "application/vp": { + source: "iana" + }, + "application/vp+cose": { + source: "iana" + }, + "application/vp+jwt": { + source: "iana" + }, + "application/vq-rtcpxr": { + source: "iana" + }, + "application/wasm": { + source: "iana", + compressible: true, + extensions: ["wasm"] + }, + "application/watcherinfo+xml": { + source: "iana", + compressible: true, + extensions: ["wif"] + }, + "application/webpush-options+json": { + source: "iana", + compressible: true + }, + "application/whoispp-query": { + source: "iana" + }, + "application/whoispp-response": { + source: "iana" + }, + "application/widget": { + source: "iana", + extensions: ["wgt"] + }, + "application/winhlp": { + source: "apache", + extensions: ["hlp"] + }, + "application/wita": { + source: "iana" + }, + "application/wordperfect5.1": { + source: "iana" + }, + "application/wsdl+xml": { + source: "iana", + compressible: true, + extensions: ["wsdl"] + }, + "application/wspolicy+xml": { + source: "iana", + compressible: true, + extensions: ["wspolicy"] + }, + "application/x-7z-compressed": { + source: "apache", + compressible: false, + extensions: ["7z"] + }, + "application/x-abiword": { + source: "apache", + extensions: ["abw"] + }, + "application/x-ace-compressed": { + source: "apache", + extensions: ["ace"] + }, + "application/x-amf": { + source: "apache" + }, + "application/x-apple-diskimage": { + source: "apache", + extensions: ["dmg"] + }, + "application/x-arj": { + compressible: false, + extensions: ["arj"] + }, + "application/x-authorware-bin": { + source: "apache", + extensions: ["aab", "x32", "u32", "vox"] + }, + "application/x-authorware-map": { + source: "apache", + extensions: ["aam"] + }, + "application/x-authorware-seg": { + source: "apache", + extensions: ["aas"] + }, + "application/x-bcpio": { + source: "apache", + extensions: ["bcpio"] + }, + "application/x-bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/x-bittorrent": { + source: "apache", + extensions: ["torrent"] + }, + "application/x-blender": { + extensions: ["blend"] + }, + "application/x-blorb": { + source: "apache", + extensions: ["blb", "blorb"] + }, + "application/x-bzip": { + source: "apache", + compressible: false, + extensions: ["bz"] + }, + "application/x-bzip2": { + source: "apache", + compressible: false, + extensions: ["bz2", "boz"] + }, + "application/x-cbr": { + source: "apache", + extensions: ["cbr", "cba", "cbt", "cbz", "cb7"] + }, + "application/x-cdlink": { + source: "apache", + extensions: ["vcd"] + }, + "application/x-cfs-compressed": { + source: "apache", + extensions: ["cfs"] + }, + "application/x-chat": { + source: "apache", + extensions: ["chat"] + }, + "application/x-chess-pgn": { + source: "apache", + extensions: ["pgn"] + }, + "application/x-chrome-extension": { + extensions: ["crx"] + }, + "application/x-cocoa": { + source: "nginx", + extensions: ["cco"] + }, + "application/x-compress": { + source: "apache" + }, + "application/x-compressed": { + extensions: ["rar"] + }, + "application/x-conference": { + source: "apache", + extensions: ["nsc"] + }, + "application/x-cpio": { + source: "apache", + extensions: ["cpio"] + }, + "application/x-csh": { + source: "apache", + extensions: ["csh"] + }, + "application/x-deb": { + compressible: false + }, + "application/x-debian-package": { + source: "apache", + extensions: ["deb", "udeb"] + }, + "application/x-dgc-compressed": { + source: "apache", + extensions: ["dgc"] + }, + "application/x-director": { + source: "apache", + extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"] + }, + "application/x-doom": { + source: "apache", + extensions: ["wad"] + }, + "application/x-dtbncx+xml": { + source: "apache", + compressible: true, + extensions: ["ncx"] + }, + "application/x-dtbook+xml": { + source: "apache", + compressible: true, + extensions: ["dtb"] + }, + "application/x-dtbresource+xml": { + source: "apache", + compressible: true, + extensions: ["res"] + }, + "application/x-dvi": { + source: "apache", + compressible: false, + extensions: ["dvi"] + }, + "application/x-envoy": { + source: "apache", + extensions: ["evy"] + }, + "application/x-eva": { + source: "apache", + extensions: ["eva"] + }, + "application/x-font-bdf": { + source: "apache", + extensions: ["bdf"] + }, + "application/x-font-dos": { + source: "apache" + }, + "application/x-font-framemaker": { + source: "apache" + }, + "application/x-font-ghostscript": { + source: "apache", + extensions: ["gsf"] + }, + "application/x-font-libgrx": { + source: "apache" + }, + "application/x-font-linux-psf": { + source: "apache", + extensions: ["psf"] + }, + "application/x-font-pcf": { + source: "apache", + extensions: ["pcf"] + }, + "application/x-font-snf": { + source: "apache", + extensions: ["snf"] + }, + "application/x-font-speedo": { + source: "apache" + }, + "application/x-font-sunos-news": { + source: "apache" + }, + "application/x-font-type1": { + source: "apache", + extensions: ["pfa", "pfb", "pfm", "afm"] + }, + "application/x-font-vfont": { + source: "apache" + }, + "application/x-freearc": { + source: "apache", + extensions: ["arc"] + }, + "application/x-futuresplash": { + source: "apache", + extensions: ["spl"] + }, + "application/x-gca-compressed": { + source: "apache", + extensions: ["gca"] + }, + "application/x-glulx": { + source: "apache", + extensions: ["ulx"] + }, + "application/x-gnumeric": { + source: "apache", + extensions: ["gnumeric"] + }, + "application/x-gramps-xml": { + source: "apache", + extensions: ["gramps"] + }, + "application/x-gtar": { + source: "apache", + extensions: ["gtar"] + }, + "application/x-gzip": { + source: "apache" + }, + "application/x-hdf": { + source: "apache", + extensions: ["hdf"] + }, + "application/x-httpd-php": { + compressible: true, + extensions: ["php"] + }, + "application/x-install-instructions": { + source: "apache", + extensions: ["install"] + }, + "application/x-ipynb+json": { + compressible: true, + extensions: ["ipynb"] + }, + "application/x-iso9660-image": { + source: "apache", + extensions: ["iso"] + }, + "application/x-iwork-keynote-sffkey": { + extensions: ["key"] + }, + "application/x-iwork-numbers-sffnumbers": { + extensions: ["numbers"] + }, + "application/x-iwork-pages-sffpages": { + extensions: ["pages"] + }, + "application/x-java-archive-diff": { + source: "nginx", + extensions: ["jardiff"] + }, + "application/x-java-jnlp-file": { + source: "apache", + compressible: false, + extensions: ["jnlp"] + }, + "application/x-javascript": { + compressible: true + }, + "application/x-keepass2": { + extensions: ["kdbx"] + }, + "application/x-latex": { + source: "apache", + compressible: false, + extensions: ["latex"] + }, + "application/x-lua-bytecode": { + extensions: ["luac"] + }, + "application/x-lzh-compressed": { + source: "apache", + extensions: ["lzh", "lha"] + }, + "application/x-makeself": { + source: "nginx", + extensions: ["run"] + }, + "application/x-mie": { + source: "apache", + extensions: ["mie"] + }, + "application/x-mobipocket-ebook": { + source: "apache", + extensions: ["prc", "mobi"] + }, + "application/x-mpegurl": { + compressible: false + }, + "application/x-ms-application": { + source: "apache", + extensions: ["application"] + }, + "application/x-ms-shortcut": { + source: "apache", + extensions: ["lnk"] + }, + "application/x-ms-wmd": { + source: "apache", + extensions: ["wmd"] + }, + "application/x-ms-wmz": { + source: "apache", + extensions: ["wmz"] + }, + "application/x-ms-xbap": { + source: "apache", + extensions: ["xbap"] + }, + "application/x-msaccess": { + source: "apache", + extensions: ["mdb"] + }, + "application/x-msbinder": { + source: "apache", + extensions: ["obd"] + }, + "application/x-mscardfile": { + source: "apache", + extensions: ["crd"] + }, + "application/x-msclip": { + source: "apache", + extensions: ["clp"] + }, + "application/x-msdos-program": { + extensions: ["exe"] + }, + "application/x-msdownload": { + source: "apache", + extensions: ["exe", "dll", "com", "bat", "msi"] + }, + "application/x-msmediaview": { + source: "apache", + extensions: ["mvb", "m13", "m14"] + }, + "application/x-msmetafile": { + source: "apache", + extensions: ["wmf", "wmz", "emf", "emz"] + }, + "application/x-msmoney": { + source: "apache", + extensions: ["mny"] + }, + "application/x-mspublisher": { + source: "apache", + extensions: ["pub"] + }, + "application/x-msschedule": { + source: "apache", + extensions: ["scd"] + }, + "application/x-msterminal": { + source: "apache", + extensions: ["trm"] + }, + "application/x-mswrite": { + source: "apache", + extensions: ["wri"] + }, + "application/x-netcdf": { + source: "apache", + extensions: ["nc", "cdf"] + }, + "application/x-ns-proxy-autoconfig": { + compressible: true, + extensions: ["pac"] + }, + "application/x-nzb": { + source: "apache", + extensions: ["nzb"] + }, + "application/x-perl": { + source: "nginx", + extensions: ["pl", "pm"] + }, + "application/x-pilot": { + source: "nginx", + extensions: ["prc", "pdb"] + }, + "application/x-pkcs12": { + source: "apache", + compressible: false, + extensions: ["p12", "pfx"] + }, + "application/x-pkcs7-certificates": { + source: "apache", + extensions: ["p7b", "spc"] + }, + "application/x-pkcs7-certreqresp": { + source: "apache", + extensions: ["p7r"] + }, + "application/x-pki-message": { + source: "iana" + }, + "application/x-rar-compressed": { + source: "apache", + compressible: false, + extensions: ["rar"] + }, + "application/x-redhat-package-manager": { + source: "nginx", + extensions: ["rpm"] + }, + "application/x-research-info-systems": { + source: "apache", + extensions: ["ris"] + }, + "application/x-sea": { + source: "nginx", + extensions: ["sea"] + }, + "application/x-sh": { + source: "apache", + compressible: true, + extensions: ["sh"] + }, + "application/x-shar": { + source: "apache", + extensions: ["shar"] + }, + "application/x-shockwave-flash": { + source: "apache", + compressible: false, + extensions: ["swf"] + }, + "application/x-silverlight-app": { + source: "apache", + extensions: ["xap"] + }, + "application/x-sql": { + source: "apache", + extensions: ["sql"] + }, + "application/x-stuffit": { + source: "apache", + compressible: false, + extensions: ["sit"] + }, + "application/x-stuffitx": { + source: "apache", + extensions: ["sitx"] + }, + "application/x-subrip": { + source: "apache", + extensions: ["srt"] + }, + "application/x-sv4cpio": { + source: "apache", + extensions: ["sv4cpio"] + }, + "application/x-sv4crc": { + source: "apache", + extensions: ["sv4crc"] + }, + "application/x-t3vm-image": { + source: "apache", + extensions: ["t3"] + }, + "application/x-tads": { + source: "apache", + extensions: ["gam"] + }, + "application/x-tar": { + source: "apache", + compressible: true, + extensions: ["tar"] + }, + "application/x-tcl": { + source: "apache", + extensions: ["tcl", "tk"] + }, + "application/x-tex": { + source: "apache", + extensions: ["tex"] + }, + "application/x-tex-tfm": { + source: "apache", + extensions: ["tfm"] + }, + "application/x-texinfo": { + source: "apache", + extensions: ["texinfo", "texi"] + }, + "application/x-tgif": { + source: "apache", + extensions: ["obj"] + }, + "application/x-ustar": { + source: "apache", + extensions: ["ustar"] + }, + "application/x-virtualbox-hdd": { + compressible: true, + extensions: ["hdd"] + }, + "application/x-virtualbox-ova": { + compressible: true, + extensions: ["ova"] + }, + "application/x-virtualbox-ovf": { + compressible: true, + extensions: ["ovf"] + }, + "application/x-virtualbox-vbox": { + compressible: true, + extensions: ["vbox"] + }, + "application/x-virtualbox-vbox-extpack": { + compressible: false, + extensions: ["vbox-extpack"] + }, + "application/x-virtualbox-vdi": { + compressible: true, + extensions: ["vdi"] + }, + "application/x-virtualbox-vhd": { + compressible: true, + extensions: ["vhd"] + }, + "application/x-virtualbox-vmdk": { + compressible: true, + extensions: ["vmdk"] + }, + "application/x-wais-source": { + source: "apache", + extensions: ["src"] + }, + "application/x-web-app-manifest+json": { + compressible: true, + extensions: ["webapp"] + }, + "application/x-www-form-urlencoded": { + source: "iana", + compressible: true + }, + "application/x-x509-ca-cert": { + source: "iana", + extensions: ["der", "crt", "pem"] + }, + "application/x-x509-ca-ra-cert": { + source: "iana" + }, + "application/x-x509-next-ca-cert": { + source: "iana" + }, + "application/x-xfig": { + source: "apache", + extensions: ["fig"] + }, + "application/x-xliff+xml": { + source: "apache", + compressible: true, + extensions: ["xlf"] + }, + "application/x-xpinstall": { + source: "apache", + compressible: false, + extensions: ["xpi"] + }, + "application/x-xz": { + source: "apache", + extensions: ["xz"] + }, + "application/x-zip-compressed": { + extensions: ["zip"] + }, + "application/x-zmachine": { + source: "apache", + extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"] + }, + "application/x400-bp": { + source: "iana" + }, + "application/xacml+xml": { + source: "iana", + compressible: true + }, + "application/xaml+xml": { + source: "apache", + compressible: true, + extensions: ["xaml"] + }, + "application/xcap-att+xml": { + source: "iana", + compressible: true, + extensions: ["xav"] + }, + "application/xcap-caps+xml": { + source: "iana", + compressible: true, + extensions: ["xca"] + }, + "application/xcap-diff+xml": { + source: "iana", + compressible: true, + extensions: ["xdf"] + }, + "application/xcap-el+xml": { + source: "iana", + compressible: true, + extensions: ["xel"] + }, + "application/xcap-error+xml": { + source: "iana", + compressible: true + }, + "application/xcap-ns+xml": { + source: "iana", + compressible: true, + extensions: ["xns"] + }, + "application/xcon-conference-info+xml": { + source: "iana", + compressible: true + }, + "application/xcon-conference-info-diff+xml": { + source: "iana", + compressible: true + }, + "application/xenc+xml": { + source: "iana", + compressible: true, + extensions: ["xenc"] + }, + "application/xfdf": { + source: "iana", + extensions: ["xfdf"] + }, + "application/xhtml+xml": { + source: "iana", + compressible: true, + extensions: ["xhtml", "xht"] + }, + "application/xhtml-voice+xml": { + source: "apache", + compressible: true + }, + "application/xliff+xml": { + source: "iana", + compressible: true, + extensions: ["xlf"] + }, + "application/xml": { + source: "iana", + compressible: true, + extensions: ["xml", "xsl", "xsd", "rng"] + }, + "application/xml-dtd": { + source: "iana", + compressible: true, + extensions: ["dtd"] + }, + "application/xml-external-parsed-entity": { + source: "iana" + }, + "application/xml-patch+xml": { + source: "iana", + compressible: true + }, + "application/xmpp+xml": { + source: "iana", + compressible: true + }, + "application/xop+xml": { + source: "iana", + compressible: true, + extensions: ["xop"] + }, + "application/xproc+xml": { + source: "apache", + compressible: true, + extensions: ["xpl"] + }, + "application/xslt+xml": { + source: "iana", + compressible: true, + extensions: ["xsl", "xslt"] + }, + "application/xspf+xml": { + source: "apache", + compressible: true, + extensions: ["xspf"] + }, + "application/xv+xml": { + source: "iana", + compressible: true, + extensions: ["mxml", "xhvml", "xvml", "xvm"] + }, + "application/yaml": { + source: "iana" + }, + "application/yang": { + source: "iana", + extensions: ["yang"] + }, + "application/yang-data+cbor": { + source: "iana" + }, + "application/yang-data+json": { + source: "iana", + compressible: true + }, + "application/yang-data+xml": { + source: "iana", + compressible: true + }, + "application/yang-patch+json": { + source: "iana", + compressible: true + }, + "application/yang-patch+xml": { + source: "iana", + compressible: true + }, + "application/yang-sid+json": { + source: "iana", + compressible: true + }, + "application/yin+xml": { + source: "iana", + compressible: true, + extensions: ["yin"] + }, + "application/zip": { + source: "iana", + compressible: false, + extensions: ["zip"] + }, + "application/zip+dotlottie": { + extensions: ["lottie"] + }, + "application/zlib": { + source: "iana" + }, + "application/zstd": { + source: "iana" + }, + "audio/1d-interleaved-parityfec": { + source: "iana" + }, + "audio/32kadpcm": { + source: "iana" + }, + "audio/3gpp": { + source: "iana", + compressible: false, + extensions: ["3gpp"] + }, + "audio/3gpp2": { + source: "iana" + }, + "audio/aac": { + source: "iana", + extensions: ["adts", "aac"] + }, + "audio/ac3": { + source: "iana" + }, + "audio/adpcm": { + source: "apache", + extensions: ["adp"] + }, + "audio/amr": { + source: "iana", + extensions: ["amr"] + }, + "audio/amr-wb": { + source: "iana" + }, + "audio/amr-wb+": { + source: "iana" + }, + "audio/aptx": { + source: "iana" + }, + "audio/asc": { + source: "iana" + }, + "audio/atrac-advanced-lossless": { + source: "iana" + }, + "audio/atrac-x": { + source: "iana" + }, + "audio/atrac3": { + source: "iana" + }, + "audio/basic": { + source: "iana", + compressible: false, + extensions: ["au", "snd"] + }, + "audio/bv16": { + source: "iana" + }, + "audio/bv32": { + source: "iana" + }, + "audio/clearmode": { + source: "iana" + }, + "audio/cn": { + source: "iana" + }, + "audio/dat12": { + source: "iana" + }, + "audio/dls": { + source: "iana" + }, + "audio/dsr-es201108": { + source: "iana" + }, + "audio/dsr-es202050": { + source: "iana" + }, + "audio/dsr-es202211": { + source: "iana" + }, + "audio/dsr-es202212": { + source: "iana" + }, + "audio/dv": { + source: "iana" + }, + "audio/dvi4": { + source: "iana" + }, + "audio/eac3": { + source: "iana" + }, + "audio/encaprtp": { + source: "iana" + }, + "audio/evrc": { + source: "iana" + }, + "audio/evrc-qcp": { + source: "iana" + }, + "audio/evrc0": { + source: "iana" + }, + "audio/evrc1": { + source: "iana" + }, + "audio/evrcb": { + source: "iana" + }, + "audio/evrcb0": { + source: "iana" + }, + "audio/evrcb1": { + source: "iana" + }, + "audio/evrcnw": { + source: "iana" + }, + "audio/evrcnw0": { + source: "iana" + }, + "audio/evrcnw1": { + source: "iana" + }, + "audio/evrcwb": { + source: "iana" + }, + "audio/evrcwb0": { + source: "iana" + }, + "audio/evrcwb1": { + source: "iana" + }, + "audio/evs": { + source: "iana" + }, + "audio/flac": { + source: "iana" + }, + "audio/flexfec": { + source: "iana" + }, + "audio/fwdred": { + source: "iana" + }, + "audio/g711-0": { + source: "iana" + }, + "audio/g719": { + source: "iana" + }, + "audio/g722": { + source: "iana" + }, + "audio/g7221": { + source: "iana" + }, + "audio/g723": { + source: "iana" + }, + "audio/g726-16": { + source: "iana" + }, + "audio/g726-24": { + source: "iana" + }, + "audio/g726-32": { + source: "iana" + }, + "audio/g726-40": { + source: "iana" + }, + "audio/g728": { + source: "iana" + }, + "audio/g729": { + source: "iana" + }, + "audio/g7291": { + source: "iana" + }, + "audio/g729d": { + source: "iana" + }, + "audio/g729e": { + source: "iana" + }, + "audio/gsm": { + source: "iana" + }, + "audio/gsm-efr": { + source: "iana" + }, + "audio/gsm-hr-08": { + source: "iana" + }, + "audio/ilbc": { + source: "iana" + }, + "audio/ip-mr_v2.5": { + source: "iana" + }, + "audio/isac": { + source: "apache" + }, + "audio/l16": { + source: "iana" + }, + "audio/l20": { + source: "iana" + }, + "audio/l24": { + source: "iana", + compressible: false + }, + "audio/l8": { + source: "iana" + }, + "audio/lpc": { + source: "iana" + }, + "audio/matroska": { + source: "iana" + }, + "audio/melp": { + source: "iana" + }, + "audio/melp1200": { + source: "iana" + }, + "audio/melp2400": { + source: "iana" + }, + "audio/melp600": { + source: "iana" + }, + "audio/mhas": { + source: "iana" + }, + "audio/midi": { + source: "apache", + extensions: ["mid", "midi", "kar", "rmi"] + }, + "audio/midi-clip": { + source: "iana" + }, + "audio/mobile-xmf": { + source: "iana", + extensions: ["mxmf"] + }, + "audio/mp3": { + compressible: false, + extensions: ["mp3"] + }, + "audio/mp4": { + source: "iana", + compressible: false, + extensions: ["m4a", "mp4a", "m4b"] + }, + "audio/mp4a-latm": { + source: "iana" + }, + "audio/mpa": { + source: "iana" + }, + "audio/mpa-robust": { + source: "iana" + }, + "audio/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"] + }, + "audio/mpeg4-generic": { + source: "iana" + }, + "audio/musepack": { + source: "apache" + }, + "audio/ogg": { + source: "iana", + compressible: false, + extensions: ["oga", "ogg", "spx", "opus"] + }, + "audio/opus": { + source: "iana" + }, + "audio/parityfec": { + source: "iana" + }, + "audio/pcma": { + source: "iana" + }, + "audio/pcma-wb": { + source: "iana" + }, + "audio/pcmu": { + source: "iana" + }, + "audio/pcmu-wb": { + source: "iana" + }, + "audio/prs.sid": { + source: "iana" + }, + "audio/qcelp": { + source: "iana" + }, + "audio/raptorfec": { + source: "iana" + }, + "audio/red": { + source: "iana" + }, + "audio/rtp-enc-aescm128": { + source: "iana" + }, + "audio/rtp-midi": { + source: "iana" + }, + "audio/rtploopback": { + source: "iana" + }, + "audio/rtx": { + source: "iana" + }, + "audio/s3m": { + source: "apache", + extensions: ["s3m"] + }, + "audio/scip": { + source: "iana" + }, + "audio/silk": { + source: "apache", + extensions: ["sil"] + }, + "audio/smv": { + source: "iana" + }, + "audio/smv-qcp": { + source: "iana" + }, + "audio/smv0": { + source: "iana" + }, + "audio/sofa": { + source: "iana" + }, + "audio/sp-midi": { + source: "iana" + }, + "audio/speex": { + source: "iana" + }, + "audio/t140c": { + source: "iana" + }, + "audio/t38": { + source: "iana" + }, + "audio/telephone-event": { + source: "iana" + }, + "audio/tetra_acelp": { + source: "iana" + }, + "audio/tetra_acelp_bb": { + source: "iana" + }, + "audio/tone": { + source: "iana" + }, + "audio/tsvcis": { + source: "iana" + }, + "audio/uemclip": { + source: "iana" + }, + "audio/ulpfec": { + source: "iana" + }, + "audio/usac": { + source: "iana" + }, + "audio/vdvi": { + source: "iana" + }, + "audio/vmr-wb": { + source: "iana" + }, + "audio/vnd.3gpp.iufp": { + source: "iana" + }, + "audio/vnd.4sb": { + source: "iana" + }, + "audio/vnd.audiokoz": { + source: "iana" + }, + "audio/vnd.celp": { + source: "iana" + }, + "audio/vnd.cisco.nse": { + source: "iana" + }, + "audio/vnd.cmles.radio-events": { + source: "iana" + }, + "audio/vnd.cns.anp1": { + source: "iana" + }, + "audio/vnd.cns.inf1": { + source: "iana" + }, + "audio/vnd.dece.audio": { + source: "iana", + extensions: ["uva", "uvva"] + }, + "audio/vnd.digital-winds": { + source: "iana", + extensions: ["eol"] + }, + "audio/vnd.dlna.adts": { + source: "iana" + }, + "audio/vnd.dolby.heaac.1": { + source: "iana" + }, + "audio/vnd.dolby.heaac.2": { + source: "iana" + }, + "audio/vnd.dolby.mlp": { + source: "iana" + }, + "audio/vnd.dolby.mps": { + source: "iana" + }, + "audio/vnd.dolby.pl2": { + source: "iana" + }, + "audio/vnd.dolby.pl2x": { + source: "iana" + }, + "audio/vnd.dolby.pl2z": { + source: "iana" + }, + "audio/vnd.dolby.pulse.1": { + source: "iana" + }, + "audio/vnd.dra": { + source: "iana", + extensions: ["dra"] + }, + "audio/vnd.dts": { + source: "iana", + extensions: ["dts"] + }, + "audio/vnd.dts.hd": { + source: "iana", + extensions: ["dtshd"] + }, + "audio/vnd.dts.uhd": { + source: "iana" + }, + "audio/vnd.dvb.file": { + source: "iana" + }, + "audio/vnd.everad.plj": { + source: "iana" + }, + "audio/vnd.hns.audio": { + source: "iana" + }, + "audio/vnd.lucent.voice": { + source: "iana", + extensions: ["lvp"] + }, + "audio/vnd.ms-playready.media.pya": { + source: "iana", + extensions: ["pya"] + }, + "audio/vnd.nokia.mobile-xmf": { + source: "iana" + }, + "audio/vnd.nortel.vbk": { + source: "iana" + }, + "audio/vnd.nuera.ecelp4800": { + source: "iana", + extensions: ["ecelp4800"] + }, + "audio/vnd.nuera.ecelp7470": { + source: "iana", + extensions: ["ecelp7470"] + }, + "audio/vnd.nuera.ecelp9600": { + source: "iana", + extensions: ["ecelp9600"] + }, + "audio/vnd.octel.sbc": { + source: "iana" + }, + "audio/vnd.presonus.multitrack": { + source: "iana" + }, + "audio/vnd.qcelp": { + source: "apache" + }, + "audio/vnd.rhetorex.32kadpcm": { + source: "iana" + }, + "audio/vnd.rip": { + source: "iana", + extensions: ["rip"] + }, + "audio/vnd.rn-realaudio": { + compressible: false + }, + "audio/vnd.sealedmedia.softseal.mpeg": { + source: "iana" + }, + "audio/vnd.vmx.cvsd": { + source: "iana" + }, + "audio/vnd.wave": { + compressible: false + }, + "audio/vorbis": { + source: "iana", + compressible: false + }, + "audio/vorbis-config": { + source: "iana" + }, + "audio/wav": { + compressible: false, + extensions: ["wav"] + }, + "audio/wave": { + compressible: false, + extensions: ["wav"] + }, + "audio/webm": { + source: "apache", + compressible: false, + extensions: ["weba"] + }, + "audio/x-aac": { + source: "apache", + compressible: false, + extensions: ["aac"] + }, + "audio/x-aiff": { + source: "apache", + extensions: ["aif", "aiff", "aifc"] + }, + "audio/x-caf": { + source: "apache", + compressible: false, + extensions: ["caf"] + }, + "audio/x-flac": { + source: "apache", + extensions: ["flac"] + }, + "audio/x-m4a": { + source: "nginx", + extensions: ["m4a"] + }, + "audio/x-matroska": { + source: "apache", + extensions: ["mka"] + }, + "audio/x-mpegurl": { + source: "apache", + extensions: ["m3u"] + }, + "audio/x-ms-wax": { + source: "apache", + extensions: ["wax"] + }, + "audio/x-ms-wma": { + source: "apache", + extensions: ["wma"] + }, + "audio/x-pn-realaudio": { + source: "apache", + extensions: ["ram", "ra"] + }, + "audio/x-pn-realaudio-plugin": { + source: "apache", + extensions: ["rmp"] + }, + "audio/x-realaudio": { + source: "nginx", + extensions: ["ra"] + }, + "audio/x-tta": { + source: "apache" + }, + "audio/x-wav": { + source: "apache", + extensions: ["wav"] + }, + "audio/xm": { + source: "apache", + extensions: ["xm"] + }, + "chemical/x-cdx": { + source: "apache", + extensions: ["cdx"] + }, + "chemical/x-cif": { + source: "apache", + extensions: ["cif"] + }, + "chemical/x-cmdf": { + source: "apache", + extensions: ["cmdf"] + }, + "chemical/x-cml": { + source: "apache", + extensions: ["cml"] + }, + "chemical/x-csml": { + source: "apache", + extensions: ["csml"] + }, + "chemical/x-pdb": { + source: "apache" + }, + "chemical/x-xyz": { + source: "apache", + extensions: ["xyz"] + }, + "font/collection": { + source: "iana", + extensions: ["ttc"] + }, + "font/otf": { + source: "iana", + compressible: true, + extensions: ["otf"] + }, + "font/sfnt": { + source: "iana" + }, + "font/ttf": { + source: "iana", + compressible: true, + extensions: ["ttf"] + }, + "font/woff": { + source: "iana", + extensions: ["woff"] + }, + "font/woff2": { + source: "iana", + extensions: ["woff2"] + }, + "image/aces": { + source: "iana", + extensions: ["exr"] + }, + "image/apng": { + source: "iana", + compressible: false, + extensions: ["apng"] + }, + "image/avci": { + source: "iana", + extensions: ["avci"] + }, + "image/avcs": { + source: "iana", + extensions: ["avcs"] + }, + "image/avif": { + source: "iana", + compressible: false, + extensions: ["avif"] + }, + "image/bmp": { + source: "iana", + compressible: true, + extensions: ["bmp", "dib"] + }, + "image/cgm": { + source: "iana", + extensions: ["cgm"] + }, + "image/dicom-rle": { + source: "iana", + extensions: ["drle"] + }, + "image/dpx": { + source: "iana", + extensions: ["dpx"] + }, + "image/emf": { + source: "iana", + extensions: ["emf"] + }, + "image/fits": { + source: "iana", + extensions: ["fits"] + }, + "image/g3fax": { + source: "iana", + extensions: ["g3"] + }, + "image/gif": { + source: "iana", + compressible: false, + extensions: ["gif"] + }, + "image/heic": { + source: "iana", + extensions: ["heic"] + }, + "image/heic-sequence": { + source: "iana", + extensions: ["heics"] + }, + "image/heif": { + source: "iana", + extensions: ["heif"] + }, + "image/heif-sequence": { + source: "iana", + extensions: ["heifs"] + }, + "image/hej2k": { + source: "iana", + extensions: ["hej2"] + }, + "image/ief": { + source: "iana", + extensions: ["ief"] + }, + "image/j2c": { + source: "iana" + }, + "image/jaii": { + source: "iana", + extensions: ["jaii"] + }, + "image/jais": { + source: "iana", + extensions: ["jais"] + }, + "image/jls": { + source: "iana", + extensions: ["jls"] + }, + "image/jp2": { + source: "iana", + compressible: false, + extensions: ["jp2", "jpg2"] + }, + "image/jpeg": { + source: "iana", + compressible: false, + extensions: ["jpg", "jpeg", "jpe"] + }, + "image/jph": { + source: "iana", + extensions: ["jph"] + }, + "image/jphc": { + source: "iana", + extensions: ["jhc"] + }, + "image/jpm": { + source: "iana", + compressible: false, + extensions: ["jpm", "jpgm"] + }, + "image/jpx": { + source: "iana", + compressible: false, + extensions: ["jpx", "jpf"] + }, + "image/jxl": { + source: "iana", + extensions: ["jxl"] + }, + "image/jxr": { + source: "iana", + extensions: ["jxr"] + }, + "image/jxra": { + source: "iana", + extensions: ["jxra"] + }, + "image/jxrs": { + source: "iana", + extensions: ["jxrs"] + }, + "image/jxs": { + source: "iana", + extensions: ["jxs"] + }, + "image/jxsc": { + source: "iana", + extensions: ["jxsc"] + }, + "image/jxsi": { + source: "iana", + extensions: ["jxsi"] + }, + "image/jxss": { + source: "iana", + extensions: ["jxss"] + }, + "image/ktx": { + source: "iana", + extensions: ["ktx"] + }, + "image/ktx2": { + source: "iana", + extensions: ["ktx2"] + }, + "image/naplps": { + source: "iana" + }, + "image/pjpeg": { + compressible: false, + extensions: ["jfif"] + }, + "image/png": { + source: "iana", + compressible: false, + extensions: ["png"] + }, + "image/prs.btif": { + source: "iana", + extensions: ["btif", "btf"] + }, + "image/prs.pti": { + source: "iana", + extensions: ["pti"] + }, + "image/pwg-raster": { + source: "iana" + }, + "image/sgi": { + source: "apache", + extensions: ["sgi"] + }, + "image/svg+xml": { + source: "iana", + compressible: true, + extensions: ["svg", "svgz"] + }, + "image/t38": { + source: "iana", + extensions: ["t38"] + }, + "image/tiff": { + source: "iana", + compressible: false, + extensions: ["tif", "tiff"] + }, + "image/tiff-fx": { + source: "iana", + extensions: ["tfx"] + }, + "image/vnd.adobe.photoshop": { + source: "iana", + compressible: true, + extensions: ["psd"] + }, + "image/vnd.airzip.accelerator.azv": { + source: "iana", + extensions: ["azv"] + }, + "image/vnd.clip": { + source: "iana" + }, + "image/vnd.cns.inf2": { + source: "iana" + }, + "image/vnd.dece.graphic": { + source: "iana", + extensions: ["uvi", "uvvi", "uvg", "uvvg"] + }, + "image/vnd.djvu": { + source: "iana", + extensions: ["djvu", "djv"] + }, + "image/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "image/vnd.dwg": { + source: "iana", + extensions: ["dwg"] + }, + "image/vnd.dxf": { + source: "iana", + extensions: ["dxf"] + }, + "image/vnd.fastbidsheet": { + source: "iana", + extensions: ["fbs"] + }, + "image/vnd.fpx": { + source: "iana", + extensions: ["fpx"] + }, + "image/vnd.fst": { + source: "iana", + extensions: ["fst"] + }, + "image/vnd.fujixerox.edmics-mmr": { + source: "iana", + extensions: ["mmr"] + }, + "image/vnd.fujixerox.edmics-rlc": { + source: "iana", + extensions: ["rlc"] + }, + "image/vnd.globalgraphics.pgb": { + source: "iana" + }, + "image/vnd.microsoft.icon": { + source: "iana", + compressible: true, + extensions: ["ico"] + }, + "image/vnd.mix": { + source: "iana" + }, + "image/vnd.mozilla.apng": { + source: "iana" + }, + "image/vnd.ms-dds": { + compressible: true, + extensions: ["dds"] + }, + "image/vnd.ms-modi": { + source: "iana", + extensions: ["mdi"] + }, + "image/vnd.ms-photo": { + source: "apache", + extensions: ["wdp"] + }, + "image/vnd.net-fpx": { + source: "iana", + extensions: ["npx"] + }, + "image/vnd.pco.b16": { + source: "iana", + extensions: ["b16"] + }, + "image/vnd.radiance": { + source: "iana" + }, + "image/vnd.sealed.png": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.gif": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.jpg": { + source: "iana" + }, + "image/vnd.svf": { + source: "iana" + }, + "image/vnd.tencent.tap": { + source: "iana", + extensions: ["tap"] + }, + "image/vnd.valve.source.texture": { + source: "iana", + extensions: ["vtf"] + }, + "image/vnd.wap.wbmp": { + source: "iana", + extensions: ["wbmp"] + }, + "image/vnd.xiff": { + source: "iana", + extensions: ["xif"] + }, + "image/vnd.zbrush.pcx": { + source: "iana", + extensions: ["pcx"] + }, + "image/webp": { + source: "iana", + extensions: ["webp"] + }, + "image/wmf": { + source: "iana", + extensions: ["wmf"] + }, + "image/x-3ds": { + source: "apache", + extensions: ["3ds"] + }, + "image/x-adobe-dng": { + extensions: ["dng"] + }, + "image/x-cmu-raster": { + source: "apache", + extensions: ["ras"] + }, + "image/x-cmx": { + source: "apache", + extensions: ["cmx"] + }, + "image/x-emf": { + source: "iana" + }, + "image/x-freehand": { + source: "apache", + extensions: ["fh", "fhc", "fh4", "fh5", "fh7"] + }, + "image/x-icon": { + source: "apache", + compressible: true, + extensions: ["ico"] + }, + "image/x-jng": { + source: "nginx", + extensions: ["jng"] + }, + "image/x-mrsid-image": { + source: "apache", + extensions: ["sid"] + }, + "image/x-ms-bmp": { + source: "nginx", + compressible: true, + extensions: ["bmp"] + }, + "image/x-pcx": { + source: "apache", + extensions: ["pcx"] + }, + "image/x-pict": { + source: "apache", + extensions: ["pic", "pct"] + }, + "image/x-portable-anymap": { + source: "apache", + extensions: ["pnm"] + }, + "image/x-portable-bitmap": { + source: "apache", + extensions: ["pbm"] + }, + "image/x-portable-graymap": { + source: "apache", + extensions: ["pgm"] + }, + "image/x-portable-pixmap": { + source: "apache", + extensions: ["ppm"] + }, + "image/x-rgb": { + source: "apache", + extensions: ["rgb"] + }, + "image/x-tga": { + source: "apache", + extensions: ["tga"] + }, + "image/x-wmf": { + source: "iana" + }, + "image/x-xbitmap": { + source: "apache", + extensions: ["xbm"] + }, + "image/x-xcf": { + compressible: false + }, + "image/x-xpixmap": { + source: "apache", + extensions: ["xpm"] + }, + "image/x-xwindowdump": { + source: "apache", + extensions: ["xwd"] + }, + "message/bhttp": { + source: "iana" + }, + "message/cpim": { + source: "iana" + }, + "message/delivery-status": { + source: "iana" + }, + "message/disposition-notification": { + source: "iana", + extensions: [ + "disposition-notification" + ] + }, + "message/external-body": { + source: "iana" + }, + "message/feedback-report": { + source: "iana" + }, + "message/global": { + source: "iana", + extensions: ["u8msg"] + }, + "message/global-delivery-status": { + source: "iana", + extensions: ["u8dsn"] + }, + "message/global-disposition-notification": { + source: "iana", + extensions: ["u8mdn"] + }, + "message/global-headers": { + source: "iana", + extensions: ["u8hdr"] + }, + "message/http": { + source: "iana", + compressible: false + }, + "message/imdn+xml": { + source: "iana", + compressible: true + }, + "message/mls": { + source: "iana" + }, + "message/news": { + source: "apache" + }, + "message/ohttp-req": { + source: "iana" + }, + "message/ohttp-res": { + source: "iana" + }, + "message/partial": { + source: "iana", + compressible: false + }, + "message/rfc822": { + source: "iana", + compressible: true, + extensions: ["eml", "mime", "mht", "mhtml"] + }, + "message/s-http": { + source: "apache" + }, + "message/sip": { + source: "iana" + }, + "message/sipfrag": { + source: "iana" + }, + "message/tracking-status": { + source: "iana" + }, + "message/vnd.si.simp": { + source: "apache" + }, + "message/vnd.wfa.wsc": { + source: "iana", + extensions: ["wsc"] + }, + "model/3mf": { + source: "iana", + extensions: ["3mf"] + }, + "model/e57": { + source: "iana" + }, + "model/gltf+json": { + source: "iana", + compressible: true, + extensions: ["gltf"] + }, + "model/gltf-binary": { + source: "iana", + compressible: true, + extensions: ["glb"] + }, + "model/iges": { + source: "iana", + compressible: false, + extensions: ["igs", "iges"] + }, + "model/jt": { + source: "iana", + extensions: ["jt"] + }, + "model/mesh": { + source: "iana", + compressible: false, + extensions: ["msh", "mesh", "silo"] + }, + "model/mtl": { + source: "iana", + extensions: ["mtl"] + }, + "model/obj": { + source: "iana", + extensions: ["obj"] + }, + "model/prc": { + source: "iana", + extensions: ["prc"] + }, + "model/step": { + source: "iana", + extensions: ["step", "stp", "stpnc", "p21", "210"] + }, + "model/step+xml": { + source: "iana", + compressible: true, + extensions: ["stpx"] + }, + "model/step+zip": { + source: "iana", + compressible: false, + extensions: ["stpz"] + }, + "model/step-xml+zip": { + source: "iana", + compressible: false, + extensions: ["stpxz"] + }, + "model/stl": { + source: "iana", + extensions: ["stl"] + }, + "model/u3d": { + source: "iana", + extensions: ["u3d"] + }, + "model/vnd.bary": { + source: "iana", + extensions: ["bary"] + }, + "model/vnd.cld": { + source: "iana", + extensions: ["cld"] + }, + "model/vnd.collada+xml": { + source: "iana", + compressible: true, + extensions: ["dae"] + }, + "model/vnd.dwf": { + source: "iana", + extensions: ["dwf"] + }, + "model/vnd.flatland.3dml": { + source: "iana" + }, + "model/vnd.gdl": { + source: "iana", + extensions: ["gdl"] + }, + "model/vnd.gs-gdl": { + source: "apache" + }, + "model/vnd.gs.gdl": { + source: "iana" + }, + "model/vnd.gtw": { + source: "iana", + extensions: ["gtw"] + }, + "model/vnd.moml+xml": { + source: "iana", + compressible: true + }, + "model/vnd.mts": { + source: "iana", + extensions: ["mts"] + }, + "model/vnd.opengex": { + source: "iana", + extensions: ["ogex"] + }, + "model/vnd.parasolid.transmit.binary": { + source: "iana", + extensions: ["x_b"] + }, + "model/vnd.parasolid.transmit.text": { + source: "iana", + extensions: ["x_t"] + }, + "model/vnd.pytha.pyox": { + source: "iana", + extensions: ["pyo", "pyox"] + }, + "model/vnd.rosette.annotated-data-model": { + source: "iana" + }, + "model/vnd.sap.vds": { + source: "iana", + extensions: ["vds"] + }, + "model/vnd.usda": { + source: "iana", + extensions: ["usda"] + }, + "model/vnd.usdz+zip": { + source: "iana", + compressible: false, + extensions: ["usdz"] + }, + "model/vnd.valve.source.compiled-map": { + source: "iana", + extensions: ["bsp"] + }, + "model/vnd.vtu": { + source: "iana", + extensions: ["vtu"] + }, + "model/vrml": { + source: "iana", + compressible: false, + extensions: ["wrl", "vrml"] + }, + "model/x3d+binary": { + source: "apache", + compressible: false, + extensions: ["x3db", "x3dbz"] + }, + "model/x3d+fastinfoset": { + source: "iana", + extensions: ["x3db"] + }, + "model/x3d+vrml": { + source: "apache", + compressible: false, + extensions: ["x3dv", "x3dvz"] + }, + "model/x3d+xml": { + source: "iana", + compressible: true, + extensions: ["x3d", "x3dz"] + }, + "model/x3d-vrml": { + source: "iana", + extensions: ["x3dv"] + }, + "multipart/alternative": { + source: "iana", + compressible: false + }, + "multipart/appledouble": { + source: "iana" + }, + "multipart/byteranges": { + source: "iana" + }, + "multipart/digest": { + source: "iana" + }, + "multipart/encrypted": { + source: "iana", + compressible: false + }, + "multipart/form-data": { + source: "iana", + compressible: false + }, + "multipart/header-set": { + source: "iana" + }, + "multipart/mixed": { + source: "iana" + }, + "multipart/multilingual": { + source: "iana" + }, + "multipart/parallel": { + source: "iana" + }, + "multipart/related": { + source: "iana", + compressible: false + }, + "multipart/report": { + source: "iana" + }, + "multipart/signed": { + source: "iana", + compressible: false + }, + "multipart/vnd.bint.med-plus": { + source: "iana" + }, + "multipart/voice-message": { + source: "iana" + }, + "multipart/x-mixed-replace": { + source: "iana" + }, + "text/1d-interleaved-parityfec": { + source: "iana" + }, + "text/cache-manifest": { + source: "iana", + compressible: true, + extensions: ["appcache", "manifest"] + }, + "text/calendar": { + source: "iana", + extensions: ["ics", "ifb"] + }, + "text/calender": { + compressible: true + }, + "text/cmd": { + compressible: true + }, + "text/coffeescript": { + extensions: ["coffee", "litcoffee"] + }, + "text/cql": { + source: "iana" + }, + "text/cql-expression": { + source: "iana" + }, + "text/cql-identifier": { + source: "iana" + }, + "text/css": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["css"] + }, + "text/csv": { + source: "iana", + compressible: true, + extensions: ["csv"] + }, + "text/csv-schema": { + source: "iana" + }, + "text/directory": { + source: "iana" + }, + "text/dns": { + source: "iana" + }, + "text/ecmascript": { + source: "apache" + }, + "text/encaprtp": { + source: "iana" + }, + "text/enriched": { + source: "iana" + }, + "text/fhirpath": { + source: "iana" + }, + "text/flexfec": { + source: "iana" + }, + "text/fwdred": { + source: "iana" + }, + "text/gff3": { + source: "iana" + }, + "text/grammar-ref-list": { + source: "iana" + }, + "text/hl7v2": { + source: "iana" + }, + "text/html": { + source: "iana", + compressible: true, + extensions: ["html", "htm", "shtml"] + }, + "text/jade": { + extensions: ["jade"] + }, + "text/javascript": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["js", "mjs"] + }, + "text/jcr-cnd": { + source: "iana" + }, + "text/jsx": { + compressible: true, + extensions: ["jsx"] + }, + "text/less": { + compressible: true, + extensions: ["less"] + }, + "text/markdown": { + source: "iana", + compressible: true, + extensions: ["md", "markdown"] + }, + "text/mathml": { + source: "nginx", + extensions: ["mml"] + }, + "text/mdx": { + compressible: true, + extensions: ["mdx"] + }, + "text/mizar": { + source: "iana" + }, + "text/n3": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["n3"] + }, + "text/parameters": { + source: "iana", + charset: "UTF-8" + }, + "text/parityfec": { + source: "iana" + }, + "text/plain": { + source: "iana", + compressible: true, + extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"] + }, + "text/provenance-notation": { + source: "iana", + charset: "UTF-8" + }, + "text/prs.fallenstein.rst": { + source: "iana" + }, + "text/prs.lines.tag": { + source: "iana", + extensions: ["dsc"] + }, + "text/prs.prop.logic": { + source: "iana" + }, + "text/prs.texi": { + source: "iana" + }, + "text/raptorfec": { + source: "iana" + }, + "text/red": { + source: "iana" + }, + "text/rfc822-headers": { + source: "iana" + }, + "text/richtext": { + source: "iana", + compressible: true, + extensions: ["rtx"] + }, + "text/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "text/rtp-enc-aescm128": { + source: "iana" + }, + "text/rtploopback": { + source: "iana" + }, + "text/rtx": { + source: "iana" + }, + "text/sgml": { + source: "iana", + extensions: ["sgml", "sgm"] + }, + "text/shaclc": { + source: "iana" + }, + "text/shex": { + source: "iana", + extensions: ["shex"] + }, + "text/slim": { + extensions: ["slim", "slm"] + }, + "text/spdx": { + source: "iana", + extensions: ["spdx"] + }, + "text/strings": { + source: "iana" + }, + "text/stylus": { + extensions: ["stylus", "styl"] + }, + "text/t140": { + source: "iana" + }, + "text/tab-separated-values": { + source: "iana", + compressible: true, + extensions: ["tsv"] + }, + "text/troff": { + source: "iana", + extensions: ["t", "tr", "roff", "man", "me", "ms"] + }, + "text/turtle": { + source: "iana", + charset: "UTF-8", + extensions: ["ttl"] + }, + "text/ulpfec": { + source: "iana" + }, + "text/uri-list": { + source: "iana", + compressible: true, + extensions: ["uri", "uris", "urls"] + }, + "text/vcard": { + source: "iana", + compressible: true, + extensions: ["vcard"] + }, + "text/vnd.a": { + source: "iana" + }, + "text/vnd.abc": { + source: "iana" + }, + "text/vnd.ascii-art": { + source: "iana" + }, + "text/vnd.curl": { + source: "iana", + extensions: ["curl"] + }, + "text/vnd.curl.dcurl": { + source: "apache", + extensions: ["dcurl"] + }, + "text/vnd.curl.mcurl": { + source: "apache", + extensions: ["mcurl"] + }, + "text/vnd.curl.scurl": { + source: "apache", + extensions: ["scurl"] + }, + "text/vnd.debian.copyright": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.dmclientscript": { + source: "iana" + }, + "text/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "text/vnd.esmertec.theme-descriptor": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.exchangeable": { + source: "iana" + }, + "text/vnd.familysearch.gedcom": { + source: "iana", + extensions: ["ged"] + }, + "text/vnd.ficlab.flt": { + source: "iana" + }, + "text/vnd.fly": { + source: "iana", + extensions: ["fly"] + }, + "text/vnd.fmi.flexstor": { + source: "iana", + extensions: ["flx"] + }, + "text/vnd.gml": { + source: "iana" + }, + "text/vnd.graphviz": { + source: "iana", + extensions: ["gv"] + }, + "text/vnd.hans": { + source: "iana" + }, + "text/vnd.hgl": { + source: "iana" + }, + "text/vnd.in3d.3dml": { + source: "iana", + extensions: ["3dml"] + }, + "text/vnd.in3d.spot": { + source: "iana", + extensions: ["spot"] + }, + "text/vnd.iptc.newsml": { + source: "iana" + }, + "text/vnd.iptc.nitf": { + source: "iana" + }, + "text/vnd.latex-z": { + source: "iana" + }, + "text/vnd.motorola.reflex": { + source: "iana" + }, + "text/vnd.ms-mediapackage": { + source: "iana" + }, + "text/vnd.net2phone.commcenter.command": { + source: "iana" + }, + "text/vnd.radisys.msml-basic-layout": { + source: "iana" + }, + "text/vnd.senx.warpscript": { + source: "iana" + }, + "text/vnd.si.uricatalogue": { + source: "apache" + }, + "text/vnd.sosi": { + source: "iana" + }, + "text/vnd.sun.j2me.app-descriptor": { + source: "iana", + charset: "UTF-8", + extensions: ["jad"] + }, + "text/vnd.trolltech.linguist": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.vcf": { + source: "iana" + }, + "text/vnd.wap.si": { + source: "iana" + }, + "text/vnd.wap.sl": { + source: "iana" + }, + "text/vnd.wap.wml": { + source: "iana", + extensions: ["wml"] + }, + "text/vnd.wap.wmlscript": { + source: "iana", + extensions: ["wmls"] + }, + "text/vnd.zoo.kcl": { + source: "iana" + }, + "text/vtt": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["vtt"] + }, + "text/wgsl": { + source: "iana", + extensions: ["wgsl"] + }, + "text/x-asm": { + source: "apache", + extensions: ["s", "asm"] + }, + "text/x-c": { + source: "apache", + extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"] + }, + "text/x-component": { + source: "nginx", + extensions: ["htc"] + }, + "text/x-fortran": { + source: "apache", + extensions: ["f", "for", "f77", "f90"] + }, + "text/x-gwt-rpc": { + compressible: true + }, + "text/x-handlebars-template": { + extensions: ["hbs"] + }, + "text/x-java-source": { + source: "apache", + extensions: ["java"] + }, + "text/x-jquery-tmpl": { + compressible: true + }, + "text/x-lua": { + extensions: ["lua"] + }, + "text/x-markdown": { + compressible: true, + extensions: ["mkd"] + }, + "text/x-nfo": { + source: "apache", + extensions: ["nfo"] + }, + "text/x-opml": { + source: "apache", + extensions: ["opml"] + }, + "text/x-org": { + compressible: true, + extensions: ["org"] + }, + "text/x-pascal": { + source: "apache", + extensions: ["p", "pas"] + }, + "text/x-processing": { + compressible: true, + extensions: ["pde"] + }, + "text/x-sass": { + extensions: ["sass"] + }, + "text/x-scss": { + extensions: ["scss"] + }, + "text/x-setext": { + source: "apache", + extensions: ["etx"] + }, + "text/x-sfv": { + source: "apache", + extensions: ["sfv"] + }, + "text/x-suse-ymp": { + compressible: true, + extensions: ["ymp"] + }, + "text/x-uuencode": { + source: "apache", + extensions: ["uu"] + }, + "text/x-vcalendar": { + source: "apache", + extensions: ["vcs"] + }, + "text/x-vcard": { + source: "apache", + extensions: ["vcf"] + }, + "text/xml": { + source: "iana", + compressible: true, + extensions: ["xml"] + }, + "text/xml-external-parsed-entity": { + source: "iana" + }, + "text/yaml": { + compressible: true, + extensions: ["yaml", "yml"] + }, + "video/1d-interleaved-parityfec": { + source: "iana" + }, + "video/3gpp": { + source: "iana", + extensions: ["3gp", "3gpp"] + }, + "video/3gpp-tt": { + source: "iana" + }, + "video/3gpp2": { + source: "iana", + extensions: ["3g2"] + }, + "video/av1": { + source: "iana" + }, + "video/bmpeg": { + source: "iana" + }, + "video/bt656": { + source: "iana" + }, + "video/celb": { + source: "iana" + }, + "video/dv": { + source: "iana" + }, + "video/encaprtp": { + source: "iana" + }, + "video/evc": { + source: "iana" + }, + "video/ffv1": { + source: "iana" + }, + "video/flexfec": { + source: "iana" + }, + "video/h261": { + source: "iana", + extensions: ["h261"] + }, + "video/h263": { + source: "iana", + extensions: ["h263"] + }, + "video/h263-1998": { + source: "iana" + }, + "video/h263-2000": { + source: "iana" + }, + "video/h264": { + source: "iana", + extensions: ["h264"] + }, + "video/h264-rcdo": { + source: "iana" + }, + "video/h264-svc": { + source: "iana" + }, + "video/h265": { + source: "iana" + }, + "video/h266": { + source: "iana" + }, + "video/iso.segment": { + source: "iana", + extensions: ["m4s"] + }, + "video/jpeg": { + source: "iana", + extensions: ["jpgv"] + }, + "video/jpeg2000": { + source: "iana" + }, + "video/jpm": { + source: "apache", + extensions: ["jpm", "jpgm"] + }, + "video/jxsv": { + source: "iana" + }, + "video/lottie+json": { + source: "iana", + compressible: true + }, + "video/matroska": { + source: "iana" + }, + "video/matroska-3d": { + source: "iana" + }, + "video/mj2": { + source: "iana", + extensions: ["mj2", "mjp2"] + }, + "video/mp1s": { + source: "iana" + }, + "video/mp2p": { + source: "iana" + }, + "video/mp2t": { + source: "iana", + extensions: ["ts", "m2t", "m2ts", "mts"] + }, + "video/mp4": { + source: "iana", + compressible: false, + extensions: ["mp4", "mp4v", "mpg4"] + }, + "video/mp4v-es": { + source: "iana" + }, + "video/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"] + }, + "video/mpeg4-generic": { + source: "iana" + }, + "video/mpv": { + source: "iana" + }, + "video/nv": { + source: "iana" + }, + "video/ogg": { + source: "iana", + compressible: false, + extensions: ["ogv"] + }, + "video/parityfec": { + source: "iana" + }, + "video/pointer": { + source: "iana" + }, + "video/quicktime": { + source: "iana", + compressible: false, + extensions: ["qt", "mov"] + }, + "video/raptorfec": { + source: "iana" + }, + "video/raw": { + source: "iana" + }, + "video/rtp-enc-aescm128": { + source: "iana" + }, + "video/rtploopback": { + source: "iana" + }, + "video/rtx": { + source: "iana" + }, + "video/scip": { + source: "iana" + }, + "video/smpte291": { + source: "iana" + }, + "video/smpte292m": { + source: "iana" + }, + "video/ulpfec": { + source: "iana" + }, + "video/vc1": { + source: "iana" + }, + "video/vc2": { + source: "iana" + }, + "video/vnd.cctv": { + source: "iana" + }, + "video/vnd.dece.hd": { + source: "iana", + extensions: ["uvh", "uvvh"] + }, + "video/vnd.dece.mobile": { + source: "iana", + extensions: ["uvm", "uvvm"] + }, + "video/vnd.dece.mp4": { + source: "iana" + }, + "video/vnd.dece.pd": { + source: "iana", + extensions: ["uvp", "uvvp"] + }, + "video/vnd.dece.sd": { + source: "iana", + extensions: ["uvs", "uvvs"] + }, + "video/vnd.dece.video": { + source: "iana", + extensions: ["uvv", "uvvv"] + }, + "video/vnd.directv.mpeg": { + source: "iana" + }, + "video/vnd.directv.mpeg-tts": { + source: "iana" + }, + "video/vnd.dlna.mpeg-tts": { + source: "iana" + }, + "video/vnd.dvb.file": { + source: "iana", + extensions: ["dvb"] + }, + "video/vnd.fvt": { + source: "iana", + extensions: ["fvt"] + }, + "video/vnd.hns.video": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.ttsavc": { + source: "iana" + }, + "video/vnd.iptvforum.ttsmpeg2": { + source: "iana" + }, + "video/vnd.motorola.video": { + source: "iana" + }, + "video/vnd.motorola.videop": { + source: "iana" + }, + "video/vnd.mpegurl": { + source: "iana", + extensions: ["mxu", "m4u"] + }, + "video/vnd.ms-playready.media.pyv": { + source: "iana", + extensions: ["pyv"] + }, + "video/vnd.nokia.interleaved-multimedia": { + source: "iana" + }, + "video/vnd.nokia.mp4vr": { + source: "iana" + }, + "video/vnd.nokia.videovoip": { + source: "iana" + }, + "video/vnd.objectvideo": { + source: "iana" + }, + "video/vnd.planar": { + source: "iana" + }, + "video/vnd.radgamettools.bink": { + source: "iana" + }, + "video/vnd.radgamettools.smacker": { + source: "apache" + }, + "video/vnd.sealed.mpeg1": { + source: "iana" + }, + "video/vnd.sealed.mpeg4": { + source: "iana" + }, + "video/vnd.sealed.swf": { + source: "iana" + }, + "video/vnd.sealedmedia.softseal.mov": { + source: "iana" + }, + "video/vnd.uvvu.mp4": { + source: "iana", + extensions: ["uvu", "uvvu"] + }, + "video/vnd.vivo": { + source: "iana", + extensions: ["viv"] + }, + "video/vnd.youtube.yt": { + source: "iana" + }, + "video/vp8": { + source: "iana" + }, + "video/vp9": { + source: "iana" + }, + "video/webm": { + source: "apache", + compressible: false, + extensions: ["webm"] + }, + "video/x-f4v": { + source: "apache", + extensions: ["f4v"] + }, + "video/x-fli": { + source: "apache", + extensions: ["fli"] + }, + "video/x-flv": { + source: "apache", + compressible: false, + extensions: ["flv"] + }, + "video/x-m4v": { + source: "apache", + extensions: ["m4v"] + }, + "video/x-matroska": { + source: "apache", + compressible: false, + extensions: ["mkv", "mk3d", "mks"] + }, + "video/x-mng": { + source: "apache", + extensions: ["mng"] + }, + "video/x-ms-asf": { + source: "apache", + extensions: ["asf", "asx"] + }, + "video/x-ms-vob": { + source: "apache", + extensions: ["vob"] + }, + "video/x-ms-wm": { + source: "apache", + extensions: ["wm"] + }, + "video/x-ms-wmv": { + source: "apache", + compressible: false, + extensions: ["wmv"] + }, + "video/x-ms-wmx": { + source: "apache", + extensions: ["wmx"] + }, + "video/x-ms-wvx": { + source: "apache", + extensions: ["wvx"] + }, + "video/x-msvideo": { + source: "apache", + extensions: ["avi"] + }, + "video/x-sgi-movie": { + source: "apache", + extensions: ["movie"] + }, + "video/x-smv": { + source: "apache", + extensions: ["smv"] + }, + "x-conference/x-cooltalk": { + source: "apache", + extensions: ["ice"] + }, + "x-shader/x-fragment": { + compressible: true + }, + "x-shader/x-vertex": { + compressible: true + } + }; + } +}); + +// node_modules/mime-db/index.js +var require_mime_db = __commonJS({ + "node_modules/mime-db/index.js"(exports2, module2) { + module2.exports = require_db(); + } +}); + +// node_modules/mime-types/mimeScore.js +var require_mimeScore = __commonJS({ + "node_modules/mime-types/mimeScore.js"(exports2, module2) { + var FACET_SCORES = { + "prs.": 100, + "x-": 200, + "x.": 300, + "vnd.": 400, + default: 900 + }; + var SOURCE_SCORES = { + nginx: 10, + apache: 20, + iana: 40, + default: 30 + // definitions added by `jshttp/mime-db` project? + }; + var TYPE_SCORES = { + // prefer application/xml over text/xml + // prefer application/rtf over text/rtf + application: 1, + // prefer font/woff over application/font-woff + font: 2, + // prefer video/mp4 over audio/mp4 over application/mp4 + // See https://www.rfc-editor.org/rfc/rfc4337.html#section-2 + audio: 2, + video: 3, + default: 0 + }; + module2.exports = /* @__PURE__ */ __name(function mimeScore(mimeType, source = "default") { + if (mimeType === "application/octet-stream") { + return 0; + } + const [type, subtype] = mimeType.split("/"); + const facet = subtype.replace(/(\.|x-).*/, "$1"); + const facetScore = FACET_SCORES[facet] || FACET_SCORES.default; + const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default; + const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default; + const lengthScore = 1 - mimeType.length / 100; + return facetScore + sourceScore + typeScore + lengthScore; + }, "mimeScore"); + } +}); + +// node_modules/mime-types/index.js +var require_mime_types = __commonJS({ + "node_modules/mime-types/index.js"(exports2) { + "use strict"; + var db = require_mime_db(); + var extname = require("path").extname; + var mimeScore = require_mimeScore(); + var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/; + var TEXT_TYPE_REGEXP = /^text\//i; + exports2.charset = charset; + exports2.charsets = { lookup: charset }; + exports2.contentType = contentType; + exports2.extension = extension; + exports2.extensions = /* @__PURE__ */ Object.create(null); + exports2.lookup = lookup; + exports2.types = /* @__PURE__ */ Object.create(null); + exports2._extensionConflicts = []; + populateMaps(exports2.extensions, exports2.types); + function charset(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var mime = match && db[match[1].toLowerCase()]; + if (mime && mime.charset) { + return mime.charset; + } + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return "UTF-8"; + } + return false; + } + __name(charset, "charset"); + function contentType(str) { + if (!str || typeof str !== "string") { + return false; + } + var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str; + if (!mime) { + return false; + } + if (mime.indexOf("charset") === -1) { + var charset2 = exports2.charset(mime); + if (charset2) mime += "; charset=" + charset2.toLowerCase(); + } + return mime; + } + __name(contentType, "contentType"); + function extension(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var exts = match && exports2.extensions[match[1].toLowerCase()]; + if (!exts || !exts.length) { + return false; + } + return exts[0]; + } + __name(extension, "extension"); + function lookup(path) { + if (!path || typeof path !== "string") { + return false; + } + var extension2 = extname("x." + path).toLowerCase().slice(1); + if (!extension2) { + return false; + } + return exports2.types[extension2] || false; + } + __name(lookup, "lookup"); + function populateMaps(extensions, types) { + Object.keys(db).forEach(/* @__PURE__ */ __name(function forEachMimeType(type) { + var mime = db[type]; + var exts = mime.extensions; + if (!exts || !exts.length) { + return; + } + extensions[type] = exts; + for (var i = 0; i < exts.length; i++) { + var extension2 = exts[i]; + types[extension2] = _preferredType(extension2, types[extension2], type); + const legacyType = _preferredTypeLegacy( + extension2, + types[extension2], + type + ); + if (legacyType !== types[extension2]) { + exports2._extensionConflicts.push([extension2, legacyType, types[extension2]]); + } + } + }, "forEachMimeType")); + } + __name(populateMaps, "populateMaps"); + function _preferredType(ext, type0, type1) { + var score0 = type0 ? mimeScore(type0, db[type0].source) : 0; + var score1 = type1 ? mimeScore(type1, db[type1].source) : 0; + return score0 > score1 ? type0 : type1; + } + __name(_preferredType, "_preferredType"); + function _preferredTypeLegacy(ext, type0, type1) { + var SOURCE_RANK = ["nginx", "apache", void 0, "iana"]; + var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0; + var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0; + if (exports2.types[extension] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports2.types[extension]?.slice(0, 12) === "application/")) { + return type0; + } + return score0 > score1 ? type0 : type1; + } + __name(_preferredTypeLegacy, "_preferredTypeLegacy"); + } +}); + +// node_modules/media-typer/index.js +var require_media_typer = __commonJS({ + "node_modules/media-typer/index.js"(exports2) { + "use strict"; + var SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/; + var TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/; + var TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/; + exports2.format = format; + exports2.parse = parse; + exports2.test = test; + function format(obj) { + if (!obj || typeof obj !== "object") { + throw new TypeError("argument obj is required"); + } + var subtype = obj.subtype; + var suffix = obj.suffix; + var type = obj.type; + if (!type || !TYPE_NAME_REGEXP.test(type)) { + throw new TypeError("invalid type"); + } + if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) { + throw new TypeError("invalid subtype"); + } + var string = type + "/" + subtype; + if (suffix) { + if (!TYPE_NAME_REGEXP.test(suffix)) { + throw new TypeError("invalid suffix"); + } + string += "+" + suffix; + } + return string; + } + __name(format, "format"); + function test(string) { + if (typeof string !== "string") { + throw new TypeError("argument string is required to be a string"); + } + return TYPE_REGEXP.test(string.toLowerCase()); + } + __name(test, "test"); + function parse(string) { + if (typeof string !== "string") { + throw new TypeError("argument string is required to be a string"); + } + var match = TYPE_REGEXP.exec(string.toLowerCase()); + if (!match) { + throw new TypeError("invalid media type"); + } + var type = match[1]; + var subtype = match[2]; + var suffix; + var index = subtype.lastIndexOf("+"); + if (index !== -1) { + suffix = subtype.substr(index + 1); + subtype = subtype.substr(0, index); + } + return new MediaType(type, subtype, suffix); + } + __name(parse, "parse"); + function MediaType(type, subtype, suffix) { + this.type = type; + this.subtype = subtype; + this.suffix = suffix; + } + __name(MediaType, "MediaType"); + } +}); + +// node_modules/type-is/index.js +var require_type_is = __commonJS({ + "node_modules/type-is/index.js"(exports2, module2) { + "use strict"; + var contentType = require_dist3(); + var mime = require_mime_types(); + var typer = require_media_typer(); + module2.exports = typeofrequest; + module2.exports.is = typeis; + module2.exports.hasBody = hasbody; + module2.exports.normalize = normalize; + module2.exports.match = mimeMatch; + function typeis(value, types_) { + if (value && typeof value === "object") { + value = value.headers["content-type"]; + } + var i; + var types = types_; + var val = normalizeType(value); + if (!val) { + return false; + } + if (types && !Array.isArray(types)) { + types = new Array(arguments.length - 1); + for (i = 0; i < types.length; i++) { + types[i] = arguments[i + 1]; + } + } + if (!types || !types.length) { + return val; + } + var type; + for (i = 0; i < types.length; i++) { + if (mimeMatch(normalize(type = types[i]), val)) { + return type[0] === "+" || type.indexOf("*") !== -1 ? val : type; + } + } + return false; + } + __name(typeis, "typeis"); + function hasbody(req) { + return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]); + } + __name(hasbody, "hasbody"); + function typeofrequest(req, types_) { + if (!hasbody(req)) return null; + var types = arguments.length > 2 ? Array.prototype.slice.call(arguments, 1) : types_; + var value = req.headers["content-type"]; + return typeis(value, types); + } + __name(typeofrequest, "typeofrequest"); + function normalize(type) { + if (typeof type !== "string") { + return false; + } + switch (type) { + case "urlencoded": + return "application/x-www-form-urlencoded"; + case "multipart": + return "multipart/*"; + } + if (type[0] === "+") { + return "*/*" + type; + } + return type.indexOf("/") === -1 ? mime.lookup(type) : type; + } + __name(normalize, "normalize"); + function mimeMatch(expected, actual) { + if (expected === false) { + return false; + } + var actualParts = actual.split("/"); + var expectedParts = expected.split("/"); + if (actualParts.length !== 2 || expectedParts.length !== 2) { + return false; + } + if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) { + return false; + } + if (expectedParts[1].slice(0, 2) === "*+") { + return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].slice(1) === actualParts[1].slice(1 - expectedParts[1].length); + } + if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) { + return false; + } + return true; + } + __name(mimeMatch, "mimeMatch"); + function normalizeType(value) { + if (!value) return null; + var type = contentType.parse(value, { parameters: false }).type; + return typer.test(type) ? type : null; + } + __name(normalizeType, "normalizeType"); + } +}); + +// node_modules/body-parser/node_modules/content-type/dist/index.js +var require_dist4 = __commonJS({ + "node_modules/body-parser/node_modules/content-type/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.format = format; + exports2.parse = parse; + var TEXT_REGEXP = /^[\u0009\u0020-\u007e\u0080-\u00ff]*$/; + var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + var QUOTE_REGEXP = /[\\"]/g; + var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + var NullObject = /* @__PURE__ */ (() => { + const C = /* @__PURE__ */ __name(function() { + }, "C"); + C.prototype = /* @__PURE__ */ Object.create(null); + return C; + })(); + function format(obj) { + const { type, parameters } = obj; + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError(`Invalid type: ${type}`); + } + let result = type; + if (parameters) { + for (const param of Object.keys(parameters)) { + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError(`Invalid parameter name: ${param}`); + } + result += `; ${param}=${qstring(parameters[param])}`; + } + } + return result; + } + __name(format, "format"); + function parse(header, options) { + const len = header.length; + let index = skipOWS(header, 0, len); + const valueStart = index; + index = skipValue(header, index, len); + const valueEnd = trailingOWS(header, valueStart, index); + const type = header.slice(valueStart, valueEnd).toLowerCase(); + const parameters = options?.parameters === false ? new NullObject() : parseParameters(header, index, len); + return { type, parameters }; + } + __name(parse, "parse"); + var SP = 32; + var HTAB = 9; + var SEMI = 59; + var EQ = 61; + var DQUOTE = 34; + var BSLASH = 92; + function parseParameters(header, index, len) { + const parameters = new NullObject(); + parameter: while (index < len) { + index = skipOWS(header, index + 1, len); + const keyStart = index; + while (index < len) { + const code = header.charCodeAt(index); + if (code === SEMI) + continue parameter; + if (code === EQ) { + const keyEnd = trailingOWS(header, keyStart, index); + const key = header.slice(keyStart, keyEnd).toLowerCase(); + index = skipOWS(header, index + 1, len); + if (index < len && header.charCodeAt(index) === DQUOTE) { + index++; + let value = ""; + while (index < len) { + const code2 = header.charCodeAt(index++); + if (code2 === DQUOTE) { + index = skipValue(header, index, len); + if (parameters[key] === void 0) + parameters[key] = value; + break; + } + if (code2 === BSLASH && index < len) { + value += header[index++]; + continue; + } + value += String.fromCharCode(code2); + } + continue parameter; + } + const valueStart = index; + index = skipValue(header, index, len); + if (parameters[key] === void 0) { + const valueEnd = trailingOWS(header, valueStart, index); + parameters[key] = header.slice(valueStart, valueEnd); + } + continue parameter; + } + index++; + } + } + return parameters; + } + __name(parseParameters, "parseParameters"); + function skipValue(str, index, len) { + while (index < len) { + const char = str.charCodeAt(index); + if (char === SEMI) + break; + index++; + } + return index; + } + __name(skipValue, "skipValue"); + function skipOWS(header, index, len) { + while (index < len) { + const char = header.charCodeAt(index); + if (char !== SP && char !== HTAB) + break; + index++; + } + return index; + } + __name(skipOWS, "skipOWS"); + function trailingOWS(header, start, end) { + while (end > start) { + const char = header.charCodeAt(end - 1); + if (char !== SP && char !== HTAB) + break; + end--; + } + return end; + } + __name(trailingOWS, "trailingOWS"); + function qstring(str) { + if (TOKEN_REGEXP.test(str)) + return str; + if (TEXT_REGEXP.test(str)) + return `"${str.replace(QUOTE_REGEXP, "\\$&")}"`; + throw new TypeError(`Invalid parameter value: ${str}`); + } + __name(qstring, "qstring"); + } +}); + +// node_modules/body-parser/lib/utils.js +var require_utils9 = __commonJS({ + "node_modules/body-parser/lib/utils.js"(exports2, module2) { + "use strict"; + var bytes = require_bytes(); + var contentType = require_dist4(); + var typeis = require_type_is(); + module2.exports = { + getCharset, + normalizeOptions, + passthrough + }; + function getCharset(req) { + const header = req.headers["content-type"]; + if (!header) return void 0; + return contentType.parse(header).parameters.charset?.toLowerCase(); + } + __name(getCharset, "getCharset"); + function typeChecker(type) { + return /* @__PURE__ */ __name(function checkType(req) { + return Boolean(typeis(req, type)); + }, "checkType"); + } + __name(typeChecker, "typeChecker"); + function normalizeOptions(options, defaultType) { + if (!defaultType) { + throw new TypeError("defaultType must be provided"); + } + const inflate = options?.inflate !== false; + const limit = typeof options?.limit === "undefined" || options?.limit === null ? 102400 : bytes.parse(options.limit); + const type = options?.type || defaultType; + const verify = options?.verify || false; + const defaultCharset = options?.defaultCharset || "utf-8"; + if (limit === null) { + throw new TypeError(`option limit "${String(options.limit)}" is invalid`); + } + if (verify !== false && typeof verify !== "function") { + throw new TypeError("option verify must be function"); + } + const shouldParse = typeof type !== "function" ? typeChecker(type) : type; + return { + inflate, + limit, + verify, + defaultCharset, + shouldParse + }; + } + __name(normalizeOptions, "normalizeOptions"); + function passthrough(value) { + return value; + } + __name(passthrough, "passthrough"); + } +}); + +// node_modules/body-parser/lib/read.js +var require_read = __commonJS({ + "node_modules/body-parser/lib/read.js"(exports2, module2) { + "use strict"; + var createError = require_http_errors(); + var getBody = require_raw_body(); + var iconv = require_lib3(); + var onFinished = require_on_finished(); + var zlib = require("node:zlib"); + var hasBody = require_type_is().hasBody; + var { getCharset } = require_utils9(); + module2.exports = read; + function read(req, res, next, parse, debug, options) { + if (onFinished.isFinished(req)) { + debug("body already parsed"); + next(); + return; + } + if (!("body" in req)) { + req.body = void 0; + } + if (!hasBody(req)) { + debug("skip empty body"); + next(); + return; + } + debug("content-type %j", req.headers["content-type"]); + if (!options.shouldParse(req)) { + debug("skip parsing"); + next(); + return; + } + let encoding = null; + if (options?.skipCharset !== true) { + encoding = getCharset(req) || options.defaultCharset; + if (!!options?.isValidCharset && !options.isValidCharset(encoding)) { + debug("invalid charset"); + next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding, + type: "charset.unsupported" + })); + return; + } + } + let length; + const opts = options; + let stream; + const verify = opts.verify; + try { + stream = contentstream(req, debug, opts.inflate); + length = stream.length; + stream.length = void 0; + } catch (err) { + return next(err); + } + opts.length = length; + opts.encoding = verify ? null : encoding; + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: "charset.unsupported" + })); + } + debug("read body"); + getBody(stream, opts, function(error, body) { + if (error) { + let _error; + if (error.type === "encoding.unsupported") { + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: "charset.unsupported" + }); + } else { + _error = createError(400, error); + } + if (stream !== req) { + req.unpipe(); + stream.destroy(); + } + dump(req, /* @__PURE__ */ __name(function onfinished() { + next(createError(400, _error)); + }, "onfinished")); + return; + } + if (verify) { + try { + debug("verify body"); + verify(req, res, body, encoding); + } catch (err) { + next(createError(403, err, { + body, + type: err.type || "entity.verify.failed" + })); + return; + } + } + let str = body; + try { + debug("parse body"); + str = typeof body !== "string" && encoding !== null ? iconv.decode(body, encoding) : body; + req.body = parse(str, encoding); + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || "entity.parse.failed" + })); + return; + } + next(); + }); + } + __name(read, "read"); + function contentstream(req, debug, inflate) { + const encoding = (req.headers["content-encoding"] || "identity").toLowerCase(); + const length = req.headers["content-length"]; + debug('content-encoding "%s"', encoding); + if (inflate === false && encoding !== "identity") { + throw createError(415, "content encoding unsupported", { + encoding, + type: "encoding.unsupported" + }); + } + if (encoding === "identity") { + req.length = length; + return req; + } + const stream = createDecompressionStream(encoding, debug); + req.pipe(stream); + return stream; + } + __name(contentstream, "contentstream"); + function createDecompressionStream(encoding, debug) { + switch (encoding) { + case "deflate": + debug("inflate body"); + return zlib.createInflate(); + case "gzip": + debug("gunzip body"); + return zlib.createGunzip(); + case "br": + debug("brotli decompress body"); + return zlib.createBrotliDecompress(); + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding, + type: "encoding.unsupported" + }); + } + } + __name(createDecompressionStream, "createDecompressionStream"); + function dump(req, callback) { + if (onFinished.isFinished(req)) { + callback(null); + } else { + onFinished(req, callback); + req.resume(); + } + } + __name(dump, "dump"); + } +}); + +// node_modules/body-parser/lib/types/json.js +var require_json = __commonJS({ + "node_modules/body-parser/lib/types/json.js"(exports2, module2) { + "use strict"; + var debug = require_src()("body-parser:json"); + var read = require_read(); + var { normalizeOptions } = require_utils9(); + module2.exports = json; + var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/; + var JSON_SYNTAX_CHAR = "#"; + var JSON_SYNTAX_REGEXP = /#+/g; + function json(options) { + const normalizedOptions = normalizeOptions(options, "application/json"); + const parse = createJsonParser(options); + const readOptions = { + ...normalizedOptions, + // assert charset per RFC 7159 sec 8.1 + isValidCharset: /* @__PURE__ */ __name((charset) => charset.slice(0, 4) === "utf-", "isValidCharset") + }; + return /* @__PURE__ */ __name(function jsonParser(req, res, next) { + read(req, res, next, parse, debug, readOptions); + }, "jsonParser"); + } + __name(json, "json"); + function createJsonParser(options) { + const reviver = options?.reviver; + const strict = options?.strict !== false; + if (strict) { + return /* @__PURE__ */ __name(function parse(body) { + if (body.length === 0) { + return {}; + } + const first = firstchar(body); + if (first !== "{" && first !== "[") { + debug("strict violation"); + throw createStrictSyntaxError(body, first); + } + try { + debug("parse json"); + return JSON.parse(body, reviver); + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }); + } + }, "parse"); + } + return /* @__PURE__ */ __name(function parse(body) { + if (body.length === 0) { + return {}; + } + try { + debug("parse json"); + return JSON.parse(body, reviver); + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }); + } + }, "parse"); + } + __name(createJsonParser, "createJsonParser"); + function createStrictSyntaxError(str, char) { + const index = str.indexOf(char); + let partial = ""; + if (index !== -1) { + partial = str.substring(0, index) + JSON_SYNTAX_CHAR.repeat(str.length - index); + } + try { + JSON.parse(partial); + throw new SyntaxError("strict violation"); + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace(JSON_SYNTAX_REGEXP, function(placeholder) { + return str.substring(index, index + placeholder.length); + }), + stack: e.stack + }); + } + } + __name(createStrictSyntaxError, "createStrictSyntaxError"); + function firstchar(str) { + const match = FIRST_CHAR_REGEXP.exec(str); + return match ? match[1] : void 0; + } + __name(firstchar, "firstchar"); + function normalizeJsonSyntaxError(error, obj) { + const keys = Object.getOwnPropertyNames(error); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key !== "stack" && key !== "message") { + delete error[key]; + } + } + error.stack = obj.stack.replace(error.message, obj.message); + error.message = obj.message; + return error; + } + __name(normalizeJsonSyntaxError, "normalizeJsonSyntaxError"); + } +}); + +// node_modules/body-parser/lib/types/raw.js +var require_raw = __commonJS({ + "node_modules/body-parser/lib/types/raw.js"(exports2, module2) { + "use strict"; + var debug = require_src()("body-parser:raw"); + var read = require_read(); + var { normalizeOptions, passthrough } = require_utils9(); + module2.exports = raw2; + function raw2(options) { + const normalizedOptions = normalizeOptions(options, "application/octet-stream"); + const readOptions = { + ...normalizedOptions, + // Skip charset validation and parse the body as is + skipCharset: true + }; + return /* @__PURE__ */ __name(function rawParser(req, res, next) { + read(req, res, next, passthrough, debug, readOptions); + }, "rawParser"); + } + __name(raw2, "raw"); + } +}); + +// node_modules/body-parser/lib/types/text.js +var require_text = __commonJS({ + "node_modules/body-parser/lib/types/text.js"(exports2, module2) { + "use strict"; + var debug = require_src()("body-parser:text"); + var read = require_read(); + var { normalizeOptions, passthrough } = require_utils9(); + module2.exports = text; + function text(options) { + const normalizedOptions = normalizeOptions(options, "text/plain"); + return /* @__PURE__ */ __name(function textParser(req, res, next) { + read(req, res, next, passthrough, debug, normalizedOptions); + }, "textParser"); + } + __name(text, "text"); + } +}); + +// node_modules/es-errors/type.js +var require_type = __commonJS({ + "node_modules/es-errors/type.js"(exports2, module2) { + "use strict"; + module2.exports = TypeError; + } +}); + +// node_modules/object-inspect/util.inspect.js +var require_util_inspect = __commonJS({ + "node_modules/object-inspect/util.inspect.js"(exports2, module2) { + module2.exports = require("util").inspect; + } +}); + +// node_modules/object-inspect/index.js +var require_object_inspect = __commonJS({ + "node_modules/object-inspect/index.js"(exports2, module2) { + var hasMap = typeof Map === "function" && Map.prototype; + var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null; + var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null; + var mapForEach = hasMap && Map.prototype.forEach; + var hasSet = typeof Set === "function" && Set.prototype; + var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null; + var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null; + var setForEach = hasSet && Set.prototype.forEach; + var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype; + var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; + var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype; + var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; + var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype; + var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; + var booleanValueOf = Boolean.prototype.valueOf; + var objectToString = Object.prototype.toString; + var functionToString = Function.prototype.toString; + var $match = String.prototype.match; + var $slice = String.prototype.slice; + var $replace = String.prototype.replace; + var $toUpperCase = String.prototype.toUpperCase; + var $toLowerCase = String.prototype.toLowerCase; + var $test = RegExp.prototype.test; + var $concat = Array.prototype.concat; + var $join = Array.prototype.join; + var $arrSlice = Array.prototype.slice; + var $floor = Math.floor; + var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null; + var gOPS = Object.getOwnPropertySymbols; + var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null; + var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object"; + var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null; + var isEnumerable = Object.prototype.propertyIsEnumerable; + var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) { + return O.__proto__; + } : null); + function addNumericSeparator(num, str) { + if (num === Infinity || num === -Infinity || num !== num || num && num > -1e3 && num < 1e3 || $test.call(/e/, str)) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num === "number") { + var int = num < 0 ? -$floor(-num) : $floor(num); + if (int !== num) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, ""); + } + } + return $replace.call(str, sepRegex, "$&_"); + } + __name(addNumericSeparator, "addNumericSeparator"); + var utilInspect = require_util_inspect(); + var inspectCustom = utilInspect.custom; + var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null; + var quotes = { + __proto__: null, + "double": '"', + single: "'" + }; + var quoteREs = { + __proto__: null, + "double": /(["\\])/g, + single: /(['\\])/g + }; + module2.exports = /* @__PURE__ */ __name(function inspect_(obj, options, depth, seen) { + var opts = options || {}; + if (has(opts, "quoteStyle") && !has(quotes, opts.quoteStyle)) { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, "customInspect") ? opts.customInspect : true; + if (typeof customInspect !== "boolean" && customInspect !== "symbol") { + throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`"); + } + if (has(opts, "indent") && opts.indent !== null && opts.indent !== " " && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) { + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); + } + var numericSeparator = opts.numericSeparator; + if (typeof obj === "undefined") { + return "undefined"; + } + if (obj === null) { + return "null"; + } + if (typeof obj === "boolean") { + return obj ? "true" : "false"; + } + if (typeof obj === "string") { + return inspectString(obj, opts); + } + if (typeof obj === "number") { + if (obj === 0) { + return Infinity / obj > 0 ? "0" : "-0"; + } + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; + } + if (typeof obj === "bigint") { + var bigIntStr = String(obj) + "n"; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; + } + var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth; + if (typeof depth === "undefined") { + depth = 0; + } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") { + return isArray(obj) ? "[Array]" : "[Object]"; + } + var indent = getIndent(opts, depth); + if (typeof seen === "undefined") { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return "[Circular]"; + } + function inspect(value, from, noIndent) { + if (from) { + seen = $arrSlice.call(seen); + seen.push(from); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, "quoteStyle")) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + __name(inspect, "inspect"); + if (typeof obj === "function" && !isRegExp(obj)) { + var name = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : ""); + } + if (isSymbol(obj)) { + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj); + return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = "<" + $toLowerCase.call(String(obj.nodeName)); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts); + } + s += ">"; + if (obj.childNodes && obj.childNodes.length) { + s += "..."; + } + s += ""; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { + return "[]"; + } + var xs = arrObjKeys(obj, inspect); + if (indent && !singleLineValues(xs)) { + return "[" + indentedJoin(xs, indent) + "]"; + } + return "[ " + $join.call(xs, ", ") + " ]"; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) { + return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }"; + } + if (parts.length === 0) { + return "[" + String(obj) + "]"; + } + return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }"; + } + if (typeof obj === "object" && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) { + return utilInspect(obj, { depth: maxDepth - depth }); + } else if (customInspect !== "symbol" && typeof obj.inspect === "function") { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + if (mapForEach) { + mapForEach.call(obj, function(value, key) { + mapParts.push(inspect(key, obj, true) + " => " + inspect(value, obj)); + }); + } + return collectionOf("Map", mapSize.call(obj), mapParts, indent); + } + if (isSet(obj)) { + var setParts = []; + if (setForEach) { + setForEach.call(obj, function(value) { + setParts.push(inspect(value, obj)); + }); + } + return collectionOf("Set", setSize.call(obj), setParts, indent); + } + if (isWeakMap(obj)) { + return weakCollectionOf("WeakMap"); + } + if (isWeakSet(obj)) { + return weakCollectionOf("WeakSet"); + } + if (isWeakRef(obj)) { + return weakCollectionOf("WeakRef"); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString(obj)) { + return markBoxed(inspect(String(obj))); + } + if (typeof window !== "undefined" && obj === window) { + return "{ [object Window] }"; + } + if (typeof globalThis !== "undefined" && obj === globalThis || typeof global !== "undefined" && obj === global) { + return "{ [object globalThis] }"; + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? "" : "null prototype"; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : ""; + var constructorTag = isPlainObject || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : ""; + var tag = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : ""); + if (ys.length === 0) { + return tag + "{}"; + } + if (indent) { + return tag + "{" + indentedJoin(ys, indent) + "}"; + } + return tag + "{ " + $join.call(ys, ", ") + " }"; + } + return String(obj); + }, "inspect_"); + function wrapQuotes(s, defaultStyle, opts) { + var style = opts.quoteStyle || defaultStyle; + var quoteChar = quotes[style]; + return quoteChar + s + quoteChar; + } + __name(wrapQuotes, "wrapQuotes"); + function quote(s) { + return $replace.call(String(s), /"/g, """); + } + __name(quote, "quote"); + function canTrustToString(obj) { + return !toStringTag || !(typeof obj === "object" && (toStringTag in obj || typeof obj[toStringTag] !== "undefined")); + } + __name(canTrustToString, "canTrustToString"); + function isArray(obj) { + return toStr(obj) === "[object Array]" && canTrustToString(obj); + } + __name(isArray, "isArray"); + function isDate(obj) { + return toStr(obj) === "[object Date]" && canTrustToString(obj); + } + __name(isDate, "isDate"); + function isRegExp(obj) { + return toStr(obj) === "[object RegExp]" && canTrustToString(obj); + } + __name(isRegExp, "isRegExp"); + function isError(obj) { + return toStr(obj) === "[object Error]" && canTrustToString(obj); + } + __name(isError, "isError"); + function isString(obj) { + return toStr(obj) === "[object String]" && canTrustToString(obj); + } + __name(isString, "isString"); + function isNumber(obj) { + return toStr(obj) === "[object Number]" && canTrustToString(obj); + } + __name(isNumber, "isNumber"); + function isBoolean(obj) { + return toStr(obj) === "[object Boolean]" && canTrustToString(obj); + } + __name(isBoolean, "isBoolean"); + function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === "object" && obj instanceof Symbol; + } + if (typeof obj === "symbol") { + return true; + } + if (!obj || typeof obj !== "object" || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) { + } + return false; + } + __name(isSymbol, "isSymbol"); + function isBigInt(obj) { + if (!obj || typeof obj !== "object" || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) { + } + return false; + } + __name(isBigInt, "isBigInt"); + var hasOwn = Object.prototype.hasOwnProperty || function(key) { + return key in this; + }; + function has(obj, key) { + return hasOwn.call(obj, key); + } + __name(has, "has"); + function toStr(obj) { + return objectToString.call(obj); + } + __name(toStr, "toStr"); + function nameOf(f) { + if (f.name) { + return f.name; + } + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { + return m[1]; + } + return null; + } + __name(nameOf, "nameOf"); + function indexOf(xs, x) { + if (xs.indexOf) { + return xs.indexOf(x); + } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { + return i; + } + } + return -1; + } + __name(indexOf, "indexOf"); + function isMap(x) { + if (!mapSize || !x || typeof x !== "object") { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; + } catch (e) { + } + return false; + } + __name(isMap, "isMap"); + function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== "object") { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; + } catch (e) { + } + return false; + } + __name(isWeakMap, "isWeakMap"); + function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== "object") { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) { + } + return false; + } + __name(isWeakRef, "isWeakRef"); + function isSet(x) { + if (!setSize || !x || typeof x !== "object") { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; + } catch (e) { + } + return false; + } + __name(isSet, "isSet"); + function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== "object") { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; + } catch (e) { + } + return false; + } + __name(isWeakSet, "isWeakSet"); + function isElement(x) { + if (!x || typeof x !== "object") { + return false; + } + if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === "string" && typeof x.getAttribute === "function"; + } + __name(isElement, "isElement"); + function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : ""); + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; + } + var quoteRE = quoteREs[opts.quoteStyle || "single"]; + quoteRE.lastIndex = 0; + var s = $replace.call($replace.call(str, quoteRE, "\\$1"), /[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, "single", opts); + } + __name(inspectString, "inspectString"); + function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: "b", + 9: "t", + 10: "n", + 12: "f", + 13: "r" + }[n]; + if (x) { + return "\\" + x; + } + return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16)); + } + __name(lowbyte, "lowbyte"); + function markBoxed(str) { + return "Object(" + str + ")"; + } + __name(markBoxed, "markBoxed"); + function weakCollectionOf(type) { + return type + " { ? }"; + } + __name(weakCollectionOf, "weakCollectionOf"); + function collectionOf(type, size, entries, indent) { + var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ", "); + return type + " (" + size + ") {" + joinedEntries + "}"; + } + __name(collectionOf, "collectionOf"); + function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], "\n") >= 0) { + return false; + } + } + return true; + } + __name(singleLineValues, "singleLineValues"); + function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === " ") { + baseIndent = " "; + } else if (typeof opts.indent === "number" && opts.indent > 0) { + baseIndent = $join.call(Array(opts.indent + 1), " "); + } else { + return null; + } + return { + base: baseIndent, + prev: $join.call(Array(depth + 1), baseIndent) + }; + } + __name(getIndent, "getIndent"); + function indentedJoin(xs, indent) { + if (xs.length === 0) { + return ""; + } + var lineJoiner = "\n" + indent.prev + indent.base; + return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent.prev; + } + __name(indentedJoin, "indentedJoin"); + function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ""; + } + } + var syms = typeof gOPS === "function" ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap["$" + syms[k]] = syms[k]; + } + } + for (var key in obj) { + if (!has(obj, key)) { + continue; + } + if (isArr && String(Number(key)) === key && key < obj.length) { + continue; + } + if (hasShammedSymbols && symMap["$" + key] instanceof Symbol) { + continue; + } else if ($test.call(/[^\w$]/, key)) { + xs.push(inspect(key, obj) + ": " + inspect(obj[key], obj)); + } else { + xs.push(key + ": " + inspect(obj[key], obj)); + } + } + if (typeof gOPS === "function") { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj)); + } + } + } + return xs; + } + __name(arrObjKeys, "arrObjKeys"); + } +}); + +// node_modules/side-channel-list/index.js +var require_side_channel_list = __commonJS({ + "node_modules/side-channel-list/index.js"(exports2, module2) { + "use strict"; + var inspect = require_object_inspect(); + var $TypeError = require_type(); + var listGetNode = /* @__PURE__ */ __name(function(list, key, isDelete) { + var prev = list; + var curr; + for (; (curr = prev.next) != null; prev = curr) { + if (curr.key === key) { + prev.next = curr.next; + if (!isDelete) { + curr.next = /** @type {NonNullable} */ + list.next; + list.next = curr; + } + return curr; + } + } + }, "listGetNode"); + var listGet = /* @__PURE__ */ __name(function(objects, key) { + if (!objects) { + return void 0; + } + var node = listGetNode(objects, key); + return node && node.value; + }, "listGet"); + var listSet = /* @__PURE__ */ __name(function(objects, key, value) { + var node = listGetNode(objects, key); + if (node) { + node.value = value; + } else { + objects.next = /** @type {import('./list.d.ts').ListNode} */ + { + // eslint-disable-line no-param-reassign, no-extra-parens + key, + next: objects.next, + value + }; + } + }, "listSet"); + var listHas = /* @__PURE__ */ __name(function(objects, key) { + if (!objects) { + return false; + } + return !!listGetNode(objects, key); + }, "listHas"); + var listDelete = /* @__PURE__ */ __name(function(objects, key) { + if (objects) { + return listGetNode(objects, key, true); + } + }, "listDelete"); + module2.exports = /* @__PURE__ */ __name(function getSideChannelList() { + var $o; + var channel = { + assert: /* @__PURE__ */ __name(function(key) { + if (!channel.has(key)) { + throw new $TypeError("Side channel does not contain " + inspect(key)); + } + }, "assert"), + "delete": /* @__PURE__ */ __name(function(key) { + var deletedNode = listDelete($o, key); + if (deletedNode && $o && !$o.next) { + $o = void 0; + } + return !!deletedNode; + }, "delete"), + get: /* @__PURE__ */ __name(function(key) { + return listGet($o, key); + }, "get"), + has: /* @__PURE__ */ __name(function(key) { + return listHas($o, key); + }, "has"), + set: /* @__PURE__ */ __name(function(key, value) { + if (!$o) { + $o = { + next: void 0 + }; + } + listSet( + /** @type {NonNullable} */ + $o, + key, + value + ); + }, "set") + }; + return channel; + }, "getSideChannelList"); + } +}); + +// node_modules/es-object-atoms/index.js +var require_es_object_atoms = __commonJS({ + "node_modules/es-object-atoms/index.js"(exports2, module2) { + "use strict"; + module2.exports = Object; + } +}); + +// node_modules/es-errors/index.js +var require_es_errors = __commonJS({ + "node_modules/es-errors/index.js"(exports2, module2) { + "use strict"; + module2.exports = Error; + } +}); + +// node_modules/es-errors/eval.js +var require_eval = __commonJS({ + "node_modules/es-errors/eval.js"(exports2, module2) { + "use strict"; + module2.exports = EvalError; + } +}); + +// node_modules/es-errors/range.js +var require_range2 = __commonJS({ + "node_modules/es-errors/range.js"(exports2, module2) { + "use strict"; + module2.exports = RangeError; + } +}); + +// node_modules/es-errors/ref.js +var require_ref = __commonJS({ + "node_modules/es-errors/ref.js"(exports2, module2) { + "use strict"; + module2.exports = ReferenceError; + } +}); + +// node_modules/es-errors/syntax.js +var require_syntax = __commonJS({ + "node_modules/es-errors/syntax.js"(exports2, module2) { + "use strict"; + module2.exports = SyntaxError; + } +}); + +// node_modules/es-errors/uri.js +var require_uri = __commonJS({ + "node_modules/es-errors/uri.js"(exports2, module2) { + "use strict"; + module2.exports = URIError; + } +}); + +// node_modules/math-intrinsics/abs.js +var require_abs = __commonJS({ + "node_modules/math-intrinsics/abs.js"(exports2, module2) { + "use strict"; + module2.exports = Math.abs; + } +}); + +// node_modules/math-intrinsics/floor.js +var require_floor = __commonJS({ + "node_modules/math-intrinsics/floor.js"(exports2, module2) { + "use strict"; + module2.exports = Math.floor; + } +}); + +// node_modules/math-intrinsics/max.js +var require_max3 = __commonJS({ + "node_modules/math-intrinsics/max.js"(exports2, module2) { + "use strict"; + module2.exports = Math.max; + } +}); + +// node_modules/math-intrinsics/min.js +var require_min2 = __commonJS({ + "node_modules/math-intrinsics/min.js"(exports2, module2) { + "use strict"; + module2.exports = Math.min; + } +}); + +// node_modules/math-intrinsics/pow.js +var require_pow = __commonJS({ + "node_modules/math-intrinsics/pow.js"(exports2, module2) { + "use strict"; + module2.exports = Math.pow; + } +}); + +// node_modules/math-intrinsics/round.js +var require_round = __commonJS({ + "node_modules/math-intrinsics/round.js"(exports2, module2) { + "use strict"; + module2.exports = Math.round; + } +}); + +// node_modules/math-intrinsics/isNaN.js +var require_isNaN = __commonJS({ + "node_modules/math-intrinsics/isNaN.js"(exports2, module2) { + "use strict"; + module2.exports = Number.isNaN || /* @__PURE__ */ __name(function isNaN2(a) { + return a !== a; + }, "isNaN"); + } +}); + +// node_modules/math-intrinsics/sign.js +var require_sign = __commonJS({ + "node_modules/math-intrinsics/sign.js"(exports2, module2) { + "use strict"; + var $isNaN = require_isNaN(); + module2.exports = /* @__PURE__ */ __name(function sign(number) { + if ($isNaN(number) || number === 0) { + return number; + } + return number < 0 ? -1 : 1; + }, "sign"); + } +}); + +// node_modules/gopd/gOPD.js +var require_gOPD = __commonJS({ + "node_modules/gopd/gOPD.js"(exports2, module2) { + "use strict"; + module2.exports = Object.getOwnPropertyDescriptor; + } +}); + +// node_modules/gopd/index.js +var require_gopd = __commonJS({ + "node_modules/gopd/index.js"(exports2, module2) { + "use strict"; + var $gOPD = require_gOPD(); + if ($gOPD) { + try { + $gOPD([], "length"); + } catch (e) { + $gOPD = null; + } + } + module2.exports = $gOPD; + } +}); + +// node_modules/es-define-property/index.js +var require_es_define_property = __commonJS({ + "node_modules/es-define-property/index.js"(exports2, module2) { + "use strict"; + var $defineProperty = Object.defineProperty || false; + if ($defineProperty) { + try { + $defineProperty({}, "a", { value: 1 }); + } catch (e) { + $defineProperty = false; + } + } + module2.exports = $defineProperty; + } +}); + +// node_modules/has-symbols/shams.js +var require_shams = __commonJS({ + "node_modules/has-symbols/shams.js"(exports2, module2) { + "use strict"; + module2.exports = /* @__PURE__ */ __name(function hasSymbols() { + if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") { + return false; + } + if (typeof Symbol.iterator === "symbol") { + return true; + } + var obj = {}; + var sym = /* @__PURE__ */ Symbol("test"); + var symObj = Object(sym); + if (typeof sym === "string") { + return false; + } + if (Object.prototype.toString.call(sym) !== "[object Symbol]") { + return false; + } + if (Object.prototype.toString.call(symObj) !== "[object Symbol]") { + return false; + } + var symVal = 42; + obj[sym] = symVal; + for (var _ in obj) { + return false; + } + if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) { + return false; + } + if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) { + return false; + } + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { + return false; + } + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { + return false; + } + if (typeof Object.getOwnPropertyDescriptor === "function") { + var descriptor = ( + /** @type {PropertyDescriptor} */ + Object.getOwnPropertyDescriptor(obj, sym) + ); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { + return false; + } + } + return true; + }, "hasSymbols"); + } +}); + +// node_modules/has-symbols/index.js +var require_has_symbols = __commonJS({ + "node_modules/has-symbols/index.js"(exports2, module2) { + "use strict"; + var origSymbol = typeof Symbol !== "undefined" && Symbol; + var hasSymbolSham = require_shams(); + module2.exports = /* @__PURE__ */ __name(function hasNativeSymbols() { + if (typeof origSymbol !== "function") { + return false; + } + if (typeof Symbol !== "function") { + return false; + } + if (typeof origSymbol("foo") !== "symbol") { + return false; + } + if (typeof /* @__PURE__ */ Symbol("bar") !== "symbol") { + return false; + } + return hasSymbolSham(); + }, "hasNativeSymbols"); + } +}); + +// node_modules/get-proto/Reflect.getPrototypeOf.js +var require_Reflect_getPrototypeOf = __commonJS({ + "node_modules/get-proto/Reflect.getPrototypeOf.js"(exports2, module2) { + "use strict"; + module2.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null; + } +}); + +// node_modules/get-proto/Object.getPrototypeOf.js +var require_Object_getPrototypeOf = __commonJS({ + "node_modules/get-proto/Object.getPrototypeOf.js"(exports2, module2) { + "use strict"; + var $Object = require_es_object_atoms(); + module2.exports = $Object.getPrototypeOf || null; + } +}); + +// node_modules/function-bind/implementation.js +var require_implementation = __commonJS({ + "node_modules/function-bind/implementation.js"(exports2, module2) { + "use strict"; + var ERROR_MESSAGE = "Function.prototype.bind called on incompatible "; + var toStr = Object.prototype.toString; + var max = Math.max; + var funcType = "[object Function]"; + var concatty = /* @__PURE__ */ __name(function concatty2(a, b) { + var arr = []; + for (var i = 0; i < a.length; i += 1) { + arr[i] = a[i]; + } + for (var j = 0; j < b.length; j += 1) { + arr[j + a.length] = b[j]; + } + return arr; + }, "concatty"); + var slicy = /* @__PURE__ */ __name(function slicy2(arrLike, offset) { + var arr = []; + for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) { + arr[j] = arrLike[i]; + } + return arr; + }, "slicy"); + var joiny = /* @__PURE__ */ __name(function(arr, joiner) { + var str = ""; + for (var i = 0; i < arr.length; i += 1) { + str += arr[i]; + if (i + 1 < arr.length) { + str += joiner; + } + } + return str; + }, "joiny"); + module2.exports = /* @__PURE__ */ __name(function bind(that) { + var target = this; + if (typeof target !== "function" || toStr.apply(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slicy(arguments, 1); + var bound; + var binder = /* @__PURE__ */ __name(function() { + if (this instanceof bound) { + var result = target.apply( + this, + concatty(args, arguments) + ); + if (Object(result) === result) { + return result; + } + return this; + } + return target.apply( + that, + concatty(args, arguments) + ); + }, "binder"); + var boundLength = max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs[i] = "$" + i; + } + bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder); + if (target.prototype) { + var Empty = /* @__PURE__ */ __name(function Empty2() { + }, "Empty"); + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }, "bind"); + } +}); + +// node_modules/function-bind/index.js +var require_function_bind = __commonJS({ + "node_modules/function-bind/index.js"(exports2, module2) { + "use strict"; + var implementation = require_implementation(); + module2.exports = Function.prototype.bind || implementation; + } +}); + +// node_modules/call-bind-apply-helpers/functionCall.js +var require_functionCall = __commonJS({ + "node_modules/call-bind-apply-helpers/functionCall.js"(exports2, module2) { + "use strict"; + module2.exports = Function.prototype.call; + } +}); + +// node_modules/call-bind-apply-helpers/functionApply.js +var require_functionApply = __commonJS({ + "node_modules/call-bind-apply-helpers/functionApply.js"(exports2, module2) { + "use strict"; + module2.exports = Function.prototype.apply; + } +}); + +// node_modules/call-bind-apply-helpers/reflectApply.js +var require_reflectApply = __commonJS({ + "node_modules/call-bind-apply-helpers/reflectApply.js"(exports2, module2) { + "use strict"; + module2.exports = typeof Reflect !== "undefined" && Reflect && Reflect.apply; + } +}); + +// node_modules/call-bind-apply-helpers/actualApply.js +var require_actualApply = __commonJS({ + "node_modules/call-bind-apply-helpers/actualApply.js"(exports2, module2) { + "use strict"; + var bind = require_function_bind(); + var $apply = require_functionApply(); + var $call = require_functionCall(); + var $reflectApply = require_reflectApply(); + module2.exports = $reflectApply || bind.call($call, $apply); + } +}); + +// node_modules/call-bind-apply-helpers/index.js +var require_call_bind_apply_helpers = __commonJS({ + "node_modules/call-bind-apply-helpers/index.js"(exports2, module2) { + "use strict"; + var bind = require_function_bind(); + var $TypeError = require_type(); + var $call = require_functionCall(); + var $actualApply = require_actualApply(); + module2.exports = /* @__PURE__ */ __name(function callBindBasic(args) { + if (args.length < 1 || typeof args[0] !== "function") { + throw new $TypeError("a function is required"); + } + return $actualApply(bind, $call, args); + }, "callBindBasic"); + } +}); + +// node_modules/dunder-proto/get.js +var require_get = __commonJS({ + "node_modules/dunder-proto/get.js"(exports2, module2) { + "use strict"; + var callBind = require_call_bind_apply_helpers(); + var gOPD = require_gopd(); + var hasProtoAccessor; + try { + hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ + [].__proto__ === Array.prototype; + } catch (e) { + if (!e || typeof e !== "object" || !("code" in e) || e.code !== "ERR_PROTO_ACCESS") { + throw e; + } + } + var desc = !!hasProtoAccessor && gOPD && gOPD( + Object.prototype, + /** @type {keyof typeof Object.prototype} */ + "__proto__" + ); + var $Object = Object; + var $getPrototypeOf = $Object.getPrototypeOf; + module2.exports = desc && typeof desc.get === "function" ? callBind([desc.get]) : typeof $getPrototypeOf === "function" ? ( + /** @type {import('./get')} */ + /* @__PURE__ */ __name(function getDunder(value) { + return $getPrototypeOf(value == null ? value : $Object(value)); + }, "getDunder") + ) : false; + } +}); + +// node_modules/get-proto/index.js +var require_get_proto = __commonJS({ + "node_modules/get-proto/index.js"(exports2, module2) { + "use strict"; + var reflectGetProto = require_Reflect_getPrototypeOf(); + var originalGetProto = require_Object_getPrototypeOf(); + var getDunderProto = require_get(); + module2.exports = reflectGetProto ? /* @__PURE__ */ __name(function getProto(O) { + return reflectGetProto(O); + }, "getProto") : originalGetProto ? /* @__PURE__ */ __name(function getProto(O) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new TypeError("getProto: not an object"); + } + return originalGetProto(O); + }, "getProto") : getDunderProto ? /* @__PURE__ */ __name(function getProto(O) { + return getDunderProto(O); + }, "getProto") : null; + } +}); + +// node_modules/hasown/index.js +var require_hasown = __commonJS({ + "node_modules/hasown/index.js"(exports2, module2) { + "use strict"; + var call = Function.prototype.call; + var $hasOwn = Object.prototype.hasOwnProperty; + var bind = require_function_bind(); + module2.exports = bind.call(call, $hasOwn); + } +}); + +// node_modules/get-intrinsic/index.js +var require_get_intrinsic = __commonJS({ + "node_modules/get-intrinsic/index.js"(exports2, module2) { + "use strict"; + var undefined2; + var $Object = require_es_object_atoms(); + var $Error = require_es_errors(); + var $EvalError = require_eval(); + var $RangeError = require_range2(); + var $ReferenceError = require_ref(); + var $SyntaxError = require_syntax(); + var $TypeError = require_type(); + var $URIError = require_uri(); + var abs = require_abs(); + var floor = require_floor(); + var max = require_max3(); + var min = require_min2(); + var pow = require_pow(); + var round = require_round(); + var sign = require_sign(); + var $Function = Function; + var getEvalledConstructor = /* @__PURE__ */ __name(function(expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")(); + } catch (e) { + } + }, "getEvalledConstructor"); + var $gOPD = require_gopd(); + var $defineProperty = require_es_define_property(); + var throwTypeError = /* @__PURE__ */ __name(function() { + throw new $TypeError(); + }, "throwTypeError"); + var ThrowTypeError = $gOPD ? (function() { + try { + arguments.callee; + return throwTypeError; + } catch (calleeThrows) { + try { + return $gOPD(arguments, "callee").get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + })() : throwTypeError; + var hasSymbols = require_has_symbols()(); + var getProto = require_get_proto(); + var $ObjectGPO = require_Object_getPrototypeOf(); + var $ReflectGPO = require_Reflect_getPrototypeOf(); + var $apply = require_functionApply(); + var $call = require_functionCall(); + var needsEval = {}; + var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array); + var INTRINSICS = { + __proto__: null, + "%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError, + "%Array%": Array, + "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer, + "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2, + "%AsyncFromSyncIteratorPrototype%": undefined2, + "%AsyncFunction%": needsEval, + "%AsyncGenerator%": needsEval, + "%AsyncGeneratorFunction%": needsEval, + "%AsyncIteratorPrototype%": needsEval, + "%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics, + "%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt, + "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array, + "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array, + "%Boolean%": Boolean, + "%DataView%": typeof DataView === "undefined" ? undefined2 : DataView, + "%Date%": Date, + "%decodeURI%": decodeURI, + "%decodeURIComponent%": decodeURIComponent, + "%encodeURI%": encodeURI, + "%encodeURIComponent%": encodeURIComponent, + "%Error%": $Error, + "%eval%": eval, + // eslint-disable-line no-eval + "%EvalError%": $EvalError, + "%Float16Array%": typeof Float16Array === "undefined" ? undefined2 : Float16Array, + "%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array, + "%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array, + "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry, + "%Function%": $Function, + "%GeneratorFunction%": needsEval, + "%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array, + "%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array, + "%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array, + "%isFinite%": isFinite, + "%isNaN%": isNaN, + "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2, + "%JSON%": typeof JSON === "object" ? JSON : undefined2, + "%Map%": typeof Map === "undefined" ? undefined2 : Map, + "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()), + "%Math%": Math, + "%Number%": Number, + "%Object%": $Object, + "%Object.getOwnPropertyDescriptor%": $gOPD, + "%parseFloat%": parseFloat, + "%parseInt%": parseInt, + "%Promise%": typeof Promise === "undefined" ? undefined2 : Promise, + "%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy, + "%RangeError%": $RangeError, + "%ReferenceError%": $ReferenceError, + "%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect, + "%RegExp%": RegExp, + "%Set%": typeof Set === "undefined" ? undefined2 : Set, + "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()), + "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer, + "%String%": String, + "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2, + "%Symbol%": hasSymbols ? Symbol : undefined2, + "%SyntaxError%": $SyntaxError, + "%ThrowTypeError%": ThrowTypeError, + "%TypedArray%": TypedArray, + "%TypeError%": $TypeError, + "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array, + "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray, + "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array, + "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array, + "%URIError%": $URIError, + "%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap, + "%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef, + "%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet, + "%Function.prototype.call%": $call, + "%Function.prototype.apply%": $apply, + "%Object.defineProperty%": $defineProperty, + "%Object.getPrototypeOf%": $ObjectGPO, + "%Math.abs%": abs, + "%Math.floor%": floor, + "%Math.max%": max, + "%Math.min%": min, + "%Math.pow%": pow, + "%Math.round%": round, + "%Math.sign%": sign, + "%Reflect.getPrototypeOf%": $ReflectGPO + }; + if (getProto) { + try { + null.error; + } catch (e) { + errorProto = getProto(getProto(e)); + INTRINSICS["%Error.prototype%"] = errorProto; + } + } + var errorProto; + var doEval = /* @__PURE__ */ __name(function doEval2(name) { + var value; + if (name === "%AsyncFunction%") { + value = getEvalledConstructor("async function () {}"); + } else if (name === "%GeneratorFunction%") { + value = getEvalledConstructor("function* () {}"); + } else if (name === "%AsyncGeneratorFunction%") { + value = getEvalledConstructor("async function* () {}"); + } else if (name === "%AsyncGenerator%") { + var fn = doEval2("%AsyncGeneratorFunction%"); + if (fn) { + value = fn.prototype; + } + } else if (name === "%AsyncIteratorPrototype%") { + var gen = doEval2("%AsyncGenerator%"); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + INTRINSICS[name] = value; + return value; + }, "doEval"); + var LEGACY_ALIASES = { + __proto__: null, + "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"], + "%ArrayPrototype%": ["Array", "prototype"], + "%ArrayProto_entries%": ["Array", "prototype", "entries"], + "%ArrayProto_forEach%": ["Array", "prototype", "forEach"], + "%ArrayProto_keys%": ["Array", "prototype", "keys"], + "%ArrayProto_values%": ["Array", "prototype", "values"], + "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"], + "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"], + "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"], + "%BooleanPrototype%": ["Boolean", "prototype"], + "%DataViewPrototype%": ["DataView", "prototype"], + "%DatePrototype%": ["Date", "prototype"], + "%ErrorPrototype%": ["Error", "prototype"], + "%EvalErrorPrototype%": ["EvalError", "prototype"], + "%Float32ArrayPrototype%": ["Float32Array", "prototype"], + "%Float64ArrayPrototype%": ["Float64Array", "prototype"], + "%FunctionPrototype%": ["Function", "prototype"], + "%Generator%": ["GeneratorFunction", "prototype"], + "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"], + "%Int8ArrayPrototype%": ["Int8Array", "prototype"], + "%Int16ArrayPrototype%": ["Int16Array", "prototype"], + "%Int32ArrayPrototype%": ["Int32Array", "prototype"], + "%JSONParse%": ["JSON", "parse"], + "%JSONStringify%": ["JSON", "stringify"], + "%MapPrototype%": ["Map", "prototype"], + "%NumberPrototype%": ["Number", "prototype"], + "%ObjectPrototype%": ["Object", "prototype"], + "%ObjProto_toString%": ["Object", "prototype", "toString"], + "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"], + "%PromisePrototype%": ["Promise", "prototype"], + "%PromiseProto_then%": ["Promise", "prototype", "then"], + "%Promise_all%": ["Promise", "all"], + "%Promise_reject%": ["Promise", "reject"], + "%Promise_resolve%": ["Promise", "resolve"], + "%RangeErrorPrototype%": ["RangeError", "prototype"], + "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"], + "%RegExpPrototype%": ["RegExp", "prototype"], + "%SetPrototype%": ["Set", "prototype"], + "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"], + "%StringPrototype%": ["String", "prototype"], + "%SymbolPrototype%": ["Symbol", "prototype"], + "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"], + "%TypedArrayPrototype%": ["TypedArray", "prototype"], + "%TypeErrorPrototype%": ["TypeError", "prototype"], + "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"], + "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"], + "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"], + "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"], + "%URIErrorPrototype%": ["URIError", "prototype"], + "%WeakMapPrototype%": ["WeakMap", "prototype"], + "%WeakSetPrototype%": ["WeakSet", "prototype"] + }; + var bind = require_function_bind(); + var hasOwn = require_hasown(); + var $concat = bind.call($call, Array.prototype.concat); + var $spliceApply = bind.call($apply, Array.prototype.splice); + var $replace = bind.call($call, String.prototype.replace); + var $strSlice = bind.call($call, String.prototype.slice); + var $exec = bind.call($call, RegExp.prototype.exec); + var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; + var reEscapeChar = /\\(\\)?/g; + var stringToPath = /* @__PURE__ */ __name(function stringToPath2(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === "%" && last !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`"); + } else if (last === "%" && first !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`"); + } + var result = []; + $replace(string, rePropName, function(match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match; + }); + return result; + }, "stringToPath"); + var getBaseIntrinsic = /* @__PURE__ */ __name(function getBaseIntrinsic2(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = "%" + alias[0] + "%"; + } + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === "undefined" && !allowMissing) { + throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!"); + } + return { + alias, + name: intrinsicName, + value + }; + } + throw new $SyntaxError("intrinsic " + name + " does not exist!"); + }, "getBaseIntrinsic"); + module2.exports = /* @__PURE__ */ __name(function GetIntrinsic(name, allowMissing) { + if (typeof name !== "string" || name.length === 0) { + throw new $TypeError("intrinsic name must be a non-empty string"); + } + if (arguments.length > 1 && typeof allowMissing !== "boolean") { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name"); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ""; + var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ((first === '"' || first === "'" || first === "`" || (last === '"' || last === "'" || last === "`")) && first !== last) { + throw new $SyntaxError("property names with quotes must have matching quotes"); + } + if (part === "constructor" || !isOwn) { + skipFurtherCaching = true; + } + intrinsicBaseName += "." + part; + intrinsicRealName = "%" + intrinsicBaseName + "%"; + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available."); + } + return void undefined2; + } + if ($gOPD && i + 1 >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + if (isOwn && "get" in desc && !("originalValue" in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; + }, "GetIntrinsic"); + } +}); + +// node_modules/call-bound/index.js +var require_call_bound = __commonJS({ + "node_modules/call-bound/index.js"(exports2, module2) { + "use strict"; + var GetIntrinsic = require_get_intrinsic(); + var callBindBasic = require_call_bind_apply_helpers(); + var $indexOf = callBindBasic([GetIntrinsic("%String.prototype.indexOf%")]); + module2.exports = /* @__PURE__ */ __name(function callBoundIntrinsic(name, allowMissing) { + var intrinsic = ( + /** @type {(this: unknown, ...args: unknown[]) => unknown} */ + GetIntrinsic(name, !!allowMissing) + ); + if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) { + return callBindBasic( + /** @type {const} */ + [intrinsic] + ); + } + return intrinsic; + }, "callBoundIntrinsic"); + } +}); + +// node_modules/side-channel-map/index.js +var require_side_channel_map = __commonJS({ + "node_modules/side-channel-map/index.js"(exports2, module2) { + "use strict"; + var GetIntrinsic = require_get_intrinsic(); + var callBound = require_call_bound(); + var inspect = require_object_inspect(); + var $TypeError = require_type(); + var $Map = GetIntrinsic("%Map%", true); + var $mapGet = callBound("Map.prototype.get", true); + var $mapSet = callBound("Map.prototype.set", true); + var $mapHas = callBound("Map.prototype.has", true); + var $mapDelete = callBound("Map.prototype.delete", true); + var $mapSize = callBound("Map.prototype.size", true); + module2.exports = !!$Map && /** @type {Exclude} */ + /* @__PURE__ */ __name(function getSideChannelMap() { + var $m; + var channel = { + assert: /* @__PURE__ */ __name(function(key) { + if (!channel.has(key)) { + throw new $TypeError("Side channel does not contain " + inspect(key)); + } + }, "assert"), + "delete": /* @__PURE__ */ __name(function(key) { + if ($m) { + var result = $mapDelete($m, key); + if ($mapSize($m) === 0) { + $m = void 0; + } + return result; + } + return false; + }, "delete"), + get: /* @__PURE__ */ __name(function(key) { + if ($m) { + return $mapGet($m, key); + } + }, "get"), + has: /* @__PURE__ */ __name(function(key) { + if ($m) { + return $mapHas($m, key); + } + return false; + }, "has"), + set: /* @__PURE__ */ __name(function(key, value) { + if (!$m) { + $m = new $Map(); + } + $mapSet($m, key, value); + }, "set") + }; + return channel; + }, "getSideChannelMap"); + } +}); + +// node_modules/side-channel-weakmap/index.js +var require_side_channel_weakmap = __commonJS({ + "node_modules/side-channel-weakmap/index.js"(exports2, module2) { + "use strict"; + var GetIntrinsic = require_get_intrinsic(); + var callBound = require_call_bound(); + var inspect = require_object_inspect(); + var getSideChannelMap = require_side_channel_map(); + var $TypeError = require_type(); + var $WeakMap = GetIntrinsic("%WeakMap%", true); + var $weakMapGet = callBound("WeakMap.prototype.get", true); + var $weakMapSet = callBound("WeakMap.prototype.set", true); + var $weakMapHas = callBound("WeakMap.prototype.has", true); + var $weakMapDelete = callBound("WeakMap.prototype.delete", true); + module2.exports = $WeakMap ? ( + /** @type {Exclude} */ + /* @__PURE__ */ __name(function getSideChannelWeakMap() { + var $wm; + var $m; + var channel = { + assert: /* @__PURE__ */ __name(function(key) { + if (!channel.has(key)) { + throw new $TypeError("Side channel does not contain " + inspect(key)); + } + }, "assert"), + "delete": /* @__PURE__ */ __name(function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapDelete($wm, key); + } + } else if (getSideChannelMap) { + if ($m) { + return $m["delete"](key); + } + } + return false; + }, "delete"), + get: /* @__PURE__ */ __name(function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapGet($wm, key); + } + } + return $m && $m.get(key); + }, "get"), + has: /* @__PURE__ */ __name(function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapHas($wm, key); + } + } + return !!$m && $m.has(key); + }, "has"), + set: /* @__PURE__ */ __name(function(key, value) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key, value); + } else if (getSideChannelMap) { + if (!$m) { + $m = getSideChannelMap(); + } + $m.set(key, value); + } + }, "set") + }; + return channel; + }, "getSideChannelWeakMap") + ) : getSideChannelMap; + } +}); + +// node_modules/side-channel/index.js +var require_side_channel = __commonJS({ + "node_modules/side-channel/index.js"(exports2, module2) { + "use strict"; + var $TypeError = require_type(); + var inspect = require_object_inspect(); + var getSideChannelList = require_side_channel_list(); + var getSideChannelMap = require_side_channel_map(); + var getSideChannelWeakMap = require_side_channel_weakmap(); + var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList; + module2.exports = /* @__PURE__ */ __name(function getSideChannel() { + var $channelData; + var channel = { + assert: /* @__PURE__ */ __name(function(key) { + if (!channel.has(key)) { + var keyDesc = key && Object(key) === key ? "the given object key" : inspect(key); + throw new $TypeError("Side channel does not contain " + keyDesc); + } + }, "assert"), + "delete": /* @__PURE__ */ __name(function(key) { + return !!$channelData && $channelData["delete"](key); + }, "delete"), + get: /* @__PURE__ */ __name(function(key) { + return $channelData && $channelData.get(key); + }, "get"), + has: /* @__PURE__ */ __name(function(key) { + return !!$channelData && $channelData.has(key); + }, "has"), + set: /* @__PURE__ */ __name(function(key, value) { + if (!$channelData) { + $channelData = makeChannel(); + } + $channelData.set(key, value); + }, "set") + }; + return channel; + }, "getSideChannel"); + } +}); + +// node_modules/qs/lib/formats.js +var require_formats = __commonJS({ + "node_modules/qs/lib/formats.js"(exports2, module2) { + "use strict"; + var replace = String.prototype.replace; + var percentTwenties = /%20/g; + var Format = { + RFC1738: "RFC1738", + RFC3986: "RFC3986" + }; + module2.exports = { + "default": Format.RFC3986, + formatters: { + RFC1738: /* @__PURE__ */ __name(function(value) { + return replace.call(value, percentTwenties, "+"); + }, "RFC1738"), + RFC3986: /* @__PURE__ */ __name(function(value) { + return String(value); + }, "RFC3986") + }, + RFC1738: Format.RFC1738, + RFC3986: Format.RFC3986 + }; + } +}); + +// node_modules/qs/lib/utils.js +var require_utils10 = __commonJS({ + "node_modules/qs/lib/utils.js"(exports2, module2) { + "use strict"; + var formats = require_formats(); + var getSideChannel = require_side_channel(); + var defineProperty = require_es_define_property(); + var has = Object.prototype.hasOwnProperty; + var isArray = Array.isArray; + var overflowChannel = getSideChannel(); + var markOverflow = /* @__PURE__ */ __name(function markOverflow2(obj, maxIndex) { + overflowChannel.set(obj, maxIndex); + return obj; + }, "markOverflow"); + var isOverflow = /* @__PURE__ */ __name(function isOverflow2(obj) { + return overflowChannel.has(obj); + }, "isOverflow"); + var getMaxIndex = /* @__PURE__ */ __name(function getMaxIndex2(obj) { + return overflowChannel.get(obj); + }, "getMaxIndex"); + var setMaxIndex = /* @__PURE__ */ __name(function setMaxIndex2(obj, maxIndex) { + overflowChannel.set(obj, maxIndex); + }, "setMaxIndex"); + var hexTable = (function() { + var array = []; + for (var i = 0; i < 256; ++i) { + array[array.length] = "%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase(); + } + return array; + })(); + var compactQueue = /* @__PURE__ */ __name(function compactQueue2(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + if (isArray(obj)) { + var compacted = []; + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== "undefined") { + compacted[compacted.length] = obj[j]; + } + } + item.obj[item.prop] = compacted; + } + } + }, "compactQueue"); + var arrayToObject = /* @__PURE__ */ __name(function arrayToObject2(source, options) { + var obj = options && options.plainObjects ? { __proto__: null } : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== "undefined") { + obj[i] = source[i]; + } + } + return obj; + }, "arrayToObject"); + var setProperty = /* @__PURE__ */ __name(function setProperty2(obj, key, value) { + if (key === "__proto__" && defineProperty) { + defineProperty(obj, key, { + configurable: true, + enumerable: true, + value, + writable: true + }); + } else { + obj[key] = value; + } + }, "setProperty"); + var merge = /* @__PURE__ */ __name(function merge2(target, source, options) { + if (!source) { + return target; + } + if (typeof source !== "object" && typeof source !== "function") { + if (isArray(target)) { + var nextIndex = target.length; + if (options && typeof options.arrayLimit === "number" && nextIndex >= options.arrayLimit) { + if (options.throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return markOverflow(arrayToObject(target.concat(source), options), nextIndex); + } + target[nextIndex] = source; + } else if (target && typeof target === "object") { + if (isOverflow(target)) { + var newIndex = getMaxIndex(target) + 1; + target[newIndex] = source; + setMaxIndex(target, newIndex); + } else if (options && options.strictMerge) { + return [target, source]; + } else if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + return target; + } + if (!target || typeof target !== "object") { + if (isOverflow(source)) { + var sourceKeys = Object.keys(source); + var result = options && options.plainObjects ? { __proto__: null, 0: target } : { 0: target }; + for (var m = 0; m < sourceKeys.length; m++) { + var oldKey = parseInt(sourceKeys[m], 10); + result[oldKey + 1] = source[sourceKeys[m]]; + } + return markOverflow(result, getMaxIndex(source) + 1); + } + var combined = [target].concat(source); + if (options && typeof options.arrayLimit === "number" && combined.length > options.arrayLimit) { + if (options.throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return markOverflow(arrayToObject(combined, options), combined.length - 1); + } + return combined; + } + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + if (isArray(target) && isArray(source)) { + source.forEach(function(item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === "object" && item && typeof item === "object") { + target[i] = merge2(targetItem, item, options); + } else { + target[target.length] = item; + } + } else { + target[i] = item; + } + }); + if (options && typeof options.arrayLimit === "number" && target.length > options.arrayLimit) { + if (options.throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return markOverflow(arrayToObject(target, options), target.length - 1); + } + return target; + } + return Object.keys(source).reduce(function(acc, key) { + var value = source[key]; + if (has.call(acc, key)) { + setProperty(acc, key, merge2(acc[key], value, options)); + } else { + setProperty(acc, key, value); + } + if (isOverflow(source) && !isOverflow(acc)) { + markOverflow(acc, getMaxIndex(source)); + } + if (isOverflow(acc)) { + var keyNum = parseInt(key, 10); + if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) { + setMaxIndex(acc, keyNum); + } + } + return acc; + }, mergeTarget); + }, "merge"); + var assign = /* @__PURE__ */ __name(function assignSingleSource(target, source) { + return Object.keys(source).reduce(function(acc, key) { + setProperty(acc, key, source[key]); + return acc; + }, target); + }, "assignSingleSource"); + var decode = /* @__PURE__ */ __name(function(str, defaultDecoder, charset) { + var strWithoutPlus = str.replace(/\+/g, " "); + if (charset === "iso-8859-1") { + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } + }, "decode"); + var limit = 1024; + var encode = /* @__PURE__ */ __name(function encode2(str, defaultEncoder, charset, kind, format) { + if (str.length === 0) { + return str; + } + var string = str; + if (typeof str === "symbol") { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== "string") { + string = String(str); + } + if (charset === "iso-8859-1") { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function($0) { + return "%26%23" + parseInt($0.slice(2), 16) + "%3B"; + }); + } + var out = ""; + for (var j = 0; j < string.length; j += limit) { + var segment = string.length >= limit ? string.slice(j, j + limit) : string; + if (j + limit < string.length) { + var last = segment.charCodeAt(segment.length - 1); + if (last >= 55296 && last <= 56319) { + segment = segment.slice(0, -1); + j -= 1; + } + } + var arr = []; + for (var i = 0; i < segment.length; ++i) { + var c = segment.charCodeAt(i); + if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats.RFC1738 && (c === 40 || c === 41)) { + arr[arr.length] = segment.charAt(i); + continue; + } + if (c < 128) { + arr[arr.length] = hexTable[c]; + continue; + } + if (c < 2048) { + arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63]; + continue; + } + if (c < 55296 || c >= 57344) { + arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63]; + continue; + } + i += 1; + c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023); + arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63]; + } + out += arr.join(""); + } + return out; + }, "encode"); + var compact = /* @__PURE__ */ __name(function compact2(value) { + var queue = [{ obj: { o: value }, prop: "o" }]; + var refs = getSideChannel(); + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === "object" && val !== null && !refs.has(val)) { + queue[queue.length] = { obj, prop: key }; + refs.set(val, true); + } + } + } + compactQueue(queue); + return value; + }, "compact"); + var isRegExp = /* @__PURE__ */ __name(function isRegExp2(obj) { + return Object.prototype.toString.call(obj) === "[object RegExp]"; + }, "isRegExp"); + var isBuffer = /* @__PURE__ */ __name(function isBuffer2(obj) { + if (!obj || typeof obj !== "object") { + return false; + } + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); + }, "isBuffer"); + var combine = /* @__PURE__ */ __name(function combine2(a, b, arrayLimit, plainObjects, throwOnLimitExceeded) { + if (isOverflow(a)) { + if (throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + arrayLimit + " element" + (arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + var newIndex = getMaxIndex(a) + 1; + a[newIndex] = b; + setMaxIndex(a, newIndex); + return a; + } + var result = [].concat(a, b); + if (result.length > arrayLimit) { + if (throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + arrayLimit + " element" + (arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return markOverflow(arrayToObject(result, { plainObjects }), result.length - 1); + } + return result; + }, "combine"); + var maybeMap = /* @__PURE__ */ __name(function maybeMap2(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped[mapped.length] = fn(val[i]); + } + return mapped; + } + return fn(val); + }, "maybeMap"); + module2.exports = { + arrayToObject, + assign, + combine, + compact, + decode, + encode, + isBuffer, + isOverflow, + isRegExp, + markOverflow, + maybeMap, + merge + }; + } +}); + +// node_modules/qs/lib/stringify.js +var require_stringify = __commonJS({ + "node_modules/qs/lib/stringify.js"(exports2, module2) { + "use strict"; + var getSideChannel = require_side_channel(); + var utils = require_utils10(); + var formats = require_formats(); + var has = Object.prototype.hasOwnProperty; + var arrayPrefixGenerators = { + brackets: /* @__PURE__ */ __name(function brackets(prefix) { + return prefix + "[]"; + }, "brackets"), + comma: "comma", + indices: /* @__PURE__ */ __name(function indices(prefix, key) { + return prefix + "[" + key + "]"; + }, "indices"), + repeat: /* @__PURE__ */ __name(function repeat(prefix) { + return prefix; + }, "repeat") + }; + var isArray = Array.isArray; + var push = Array.prototype.push; + var pushToArray = /* @__PURE__ */ __name(function(arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); + }, "pushToArray"); + var toISO = Date.prototype.toISOString; + var defaultFormat = formats["default"]; + var defaults = { + addQueryPrefix: false, + allowDots: false, + allowEmptyArrays: false, + arrayFormat: "indices", + charset: "utf-8", + charsetSentinel: false, + commaRoundTrip: false, + delimiter: "&", + encode: true, + encodeDotInKeys: false, + encoder: utils.encode, + encodeValuesOnly: false, + filter: void 0, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: /* @__PURE__ */ __name(function serializeDate(date) { + return toISO.call(date); + }, "serializeDate"), + skipNulls: false, + strictNullHandling: false + }; + var isNonNullishPrimitive = /* @__PURE__ */ __name(function isNonNullishPrimitive2(v) { + return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || typeof v === "symbol" || typeof v === "bigint"; + }, "isNonNullishPrimitive"); + var sentinel = {}; + var stringify = /* @__PURE__ */ __name(function stringify2(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) { + var obj = object; + var tmpSc = sideChannel; + var step = 0; + var findFlag = false; + while ((tmpSc = tmpSc.get(sentinel)) !== void 0 && !findFlag) { + var pos = tmpSc.get(object); + step += 1; + if (typeof pos !== "undefined") { + if (pos === step) { + throw new RangeError("Cyclic object value"); + } else { + findFlag = true; + } + } + if (typeof tmpSc.get(sentinel) === "undefined") { + step = 0; + } + } + if (typeof filter === "function") { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === "comma" && isArray(obj)) { + obj = utils.maybeMap(obj, function(value2) { + if (value2 instanceof Date) { + return serializeDate(value2); + } + return value2; + }); + } + if (obj === null) { + if (strictNullHandling) { + return formatter(encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, "key", format) : prefix); + } + obj = ""; + } + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, "key", format); + return [formatter(keyValue) + "=" + formatter(encoder(obj, defaults.encoder, charset, "value", format))]; + } + return [formatter(prefix) + "=" + formatter(String(obj))]; + } + var values = []; + if (typeof obj === "undefined") { + return values; + } + var objKeys; + if (generateArrayPrefix === "comma" && isArray(obj)) { + if (encodeValuesOnly && encoder) { + obj = utils.maybeMap(obj, function(v) { + return v == null ? v : encoder(v); + }); + } + objKeys = [{ value: obj.length > 0 ? obj.join(",") || null : void 0 }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, "%2E") : String(prefix); + var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix; + if (allowEmptyArrays && isArray(obj) && obj.length === 0) { + return adjustedPrefix + "[]"; + } + for (var j = 0; j < objKeys.length; ++j) { + var key = objKeys[j]; + var value = typeof key === "object" && key && typeof key.value !== "undefined" ? key.value : obj[key]; + if (skipNulls && value === null) { + continue; + } + var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key); + var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]"); + sideChannel.set(object, step); + var valueSideChannel = getSideChannel(); + valueSideChannel.set(sentinel, sideChannel); + pushToArray(values, stringify2( + value, + keyPrefix, + generateArrayPrefix, + commaRoundTrip, + allowEmptyArrays, + strictNullHandling, + skipNulls, + encodeDotInKeys, + generateArrayPrefix === "comma" && encodeValuesOnly && isArray(obj) ? null : encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + valueSideChannel + )); + } + return values; + }, "stringify"); + var normalizeStringifyOptions = /* @__PURE__ */ __name(function normalizeStringifyOptions2(opts) { + if (!opts) { + return defaults; + } + if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") { + throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided"); + } + if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") { + throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided"); + } + if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") { + throw new TypeError("Encoder has to be a function."); + } + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") { + throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); + } + var format = formats["default"]; + if (typeof opts.format !== "undefined") { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError("Unknown format option provided."); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + var filter = defaults.filter; + if (typeof opts.filter === "function" || isArray(opts.filter)) { + filter = opts.filter; + } + var arrayFormat; + if (opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if ("indices" in opts) { + arrayFormat = opts.indices ? "indices" : "repeat"; + } else { + arrayFormat = defaults.arrayFormat; + } + if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") { + throw new TypeError("`commaRoundTrip` must be a boolean, or absent"); + } + var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + return { + addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + arrayFormat, + charset, + charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel, + commaRoundTrip: !!opts.commaRoundTrip, + delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode, + encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults.encodeDotInKeys, + encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter, + format, + formatter, + serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === "function" ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling + }; + }, "normalizeStringifyOptions"); + module2.exports = function(object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + var objKeys; + var filter; + if (typeof options.filter === "function") { + filter = options.filter; + obj = filter("", obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + var keys = []; + if (typeof obj !== "object" || obj === null) { + return ""; + } + var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat]; + var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip; + if (!objKeys) { + objKeys = Object.keys(obj); + } + if (options.sort) { + objKeys.sort(options.sort); + } + var sideChannel = getSideChannel(); + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + if (typeof key === "undefined" || key === null) { + continue; + } + var value = obj[key]; + if (options.skipNulls && value === null) { + continue; + } + pushToArray(keys, stringify( + value, + key, + generateArrayPrefix, + commaRoundTrip, + options.allowEmptyArrays, + options.strictNullHandling, + options.skipNulls, + options.encodeDotInKeys, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.format, + options.formatter, + options.encodeValuesOnly, + options.charset, + sideChannel + )); + } + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? "?" : ""; + if (options.charsetSentinel) { + if (options.charset === "iso-8859-1") { + prefix += "utf8=%26%2310003%3B" + options.delimiter; + } else { + prefix += "utf8=%E2%9C%93" + options.delimiter; + } + } + return joined.length > 0 ? prefix + joined : ""; + }; + } +}); + +// node_modules/qs/lib/parse.js +var require_parse2 = __commonJS({ + "node_modules/qs/lib/parse.js"(exports2, module2) { + "use strict"; + var utils = require_utils10(); + var has = Object.prototype.hasOwnProperty; + var isArray = Array.isArray; + var defaults = { + allowDots: false, + allowEmptyArrays: false, + allowPrototypes: false, + allowSparse: false, + arrayLimit: 20, + charset: "utf-8", + charsetSentinel: false, + comma: false, + decodeDotInKeys: false, + decoder: utils.decode, + delimiter: "&", + depth: 5, + duplicates: "combine", + ignoreQueryPrefix: false, + interpretNumericEntities: false, + parameterLimit: 1e3, + parseArrays: true, + plainObjects: false, + strictDepth: false, + strictMerge: true, + strictNullHandling: false, + throwOnLimitExceeded: false + }; + var interpretNumericEntities = /* @__PURE__ */ __name(function(str) { + return str.replace(/&#(\d+);/g, function($0, numberStr) { + return String.fromCharCode(parseInt(numberStr, 10)); + }); + }, "interpretNumericEntities"); + var parseArrayValue = /* @__PURE__ */ __name(function(val, options, currentArrayLength, isFlatArrayValue) { + if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) { + if (isFlatArrayValue && options.throwOnLimitExceeded) { + var commaCount = 0; + var commaIndex = val.indexOf(","); + while (commaIndex > -1) { + commaCount += 1; + if (commaCount >= options.arrayLimit) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + commaIndex = val.indexOf(",", commaIndex + 1); + } + } + return val.split(","); + } + if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } + return val; + }, "parseArrayValue"); + var isoSentinel = "utf8=%26%2310003%3B"; + var charsetSentinel = "utf8=%E2%9C%93"; + var parseValues = /* @__PURE__ */ __name(function parseQueryStringValues(str, options) { + var obj = { __proto__: null }; + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str; + cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]"); + var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit; + var parts = cleanStr.split( + options.delimiter, + options.throwOnLimitExceeded && typeof limit !== "undefined" ? limit + 1 : limit + ); + if (options.throwOnLimitExceeded && typeof limit !== "undefined" && parts.length > limit) { + throw new RangeError("Parameter limit exceeded. Only " + limit + " parameter" + (limit === 1 ? "" : "s") + " allowed."); + } + var skipIndex = -1; + var i; + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf("utf8=") === 0) { + if (parts[i] === charsetSentinel) { + charset = "utf-8"; + } else if (parts[i] === isoSentinel) { + charset = "iso-8859-1"; + } + skipIndex = i; + i = parts.length; + } + } + } + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + var bracketEqualsPos = part.indexOf("]="); + var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1; + var key; + var val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, "key"); + val = options.strictNullHandling ? null : ""; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key"); + if (key !== null) { + val = utils.maybeMap( + parseArrayValue( + part.slice(pos + 1), + options, + isArray(obj[key]) ? obj[key].length : 0, + part.indexOf("[]=") === -1 + ), + function(encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, "value"); + } + ); + } + } + if (val && options.interpretNumericEntities && charset === "iso-8859-1") { + val = interpretNumericEntities(String(val)); + } + if (part.indexOf("[]=") > -1) { + val = isArray(val) ? [val] : val; + } + if (options.comma && isArray(val) && val.length > options.arrayLimit) { + val = utils.combine([], val, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded); + } + if (key !== null) { + var existing = has.call(obj, key); + if (existing && (options.duplicates === "combine" || part.indexOf("[]=") > -1)) { + obj[key] = utils.combine( + obj[key], + val, + options.arrayLimit, + options.plainObjects, + options.throwOnLimitExceeded + ); + } else if (!existing || options.duplicates === "last") { + obj[key] = val; + } + } + } + return obj; + }, "parseQueryStringValues"); + var parseObject = /* @__PURE__ */ __name(function(chain, val, options, valuesParsed) { + var currentArrayLength = 0; + if (chain.length > 0 && chain[chain.length - 1] === "[]") { + var parentKey = chain.slice(0, -1).join(""); + currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0; + } + var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength); + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + if (root === "[]" && options.parseArrays) { + if (utils.isOverflow(leaf)) { + obj = leaf; + } else { + obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : utils.combine( + [], + leaf, + options.arrayLimit, + options.plainObjects, + options.throwOnLimitExceeded + ); + } + } else { + obj = options.plainObjects ? { __proto__: null } : {}; + var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root; + var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot; + var index = parseInt(decodedRoot, 10); + var isValidArrayIndex = !isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && options.parseArrays; + if (!options.parseArrays && decodedRoot === "") { + obj = { 0: leaf }; + } else if (isValidArrayIndex && index < options.arrayLimit) { + obj = []; + obj[index] = leaf; + } else if (isValidArrayIndex && options.throwOnLimitExceeded) { + throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array."); + } else if (isValidArrayIndex) { + obj[index] = leaf; + utils.markOverflow(obj, index); + } else if (decodedRoot !== "__proto__") { + obj[decodedRoot] = leaf; + } + } + leaf = obj; + } + return leaf; + }, "parseObject"); + var splitKeyIntoSegments = /* @__PURE__ */ __name(function splitKeyIntoSegments2(originalKey, options) { + var key = options.allowDots ? originalKey.replace(/\.([^.[]+)/g, "[$1]") : originalKey; + if (options.depth <= 0) { + if (!options.plainObjects && has.call(Object.prototype, key)) { + if (!options.allowPrototypes) { + return; + } + } + return [key]; + } + var segments = []; + var first = key.indexOf("["); + var parent = first >= 0 ? key.slice(0, first) : key; + if (parent) { + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + segments[segments.length] = parent; + } + var n = key.length; + var open = first; + var collected = 0; + while (open >= 0 && collected < options.depth) { + var level = 1; + var i = open + 1; + var close = -1; + while (i < n && close < 0) { + var cu = key.charCodeAt(i); + if (cu === 91) { + level += 1; + } else if (cu === 93) { + level -= 1; + if (level === 0) { + close = i; + } + } + i += 1; + } + if (close < 0) { + segments[segments.length] = "[" + key.slice(open) + "]"; + return segments; + } + var seg = key.slice(open, close + 1); + var content = seg.slice(1, -1); + if (!options.plainObjects && has.call(Object.prototype, content) && !options.allowPrototypes) { + return; + } + segments[segments.length] = seg; + collected += 1; + open = key.indexOf("[", close + 1); + } + if (open >= 0) { + if (options.strictDepth === true) { + throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true"); + } + segments[segments.length] = "[" + key.slice(open) + "]"; + } + return segments; + }, "splitKeyIntoSegments"); + var parseKeys = /* @__PURE__ */ __name(function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + var keys = splitKeyIntoSegments(givenKey, options); + if (!keys) { + return; + } + return parseObject(keys, val, options, valuesParsed); + }, "parseQueryStringKeys"); + var normalizeParseOptions = /* @__PURE__ */ __name(function normalizeParseOptions2(opts) { + if (!opts) { + return defaults; + } + if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") { + throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided"); + } + if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") { + throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided"); + } + if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") { + throw new TypeError("Decoder has to be a function."); + } + if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") { + throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); + } + if (typeof opts.throwOnLimitExceeded !== "undefined" && typeof opts.throwOnLimitExceeded !== "boolean") { + throw new TypeError("`throwOnLimitExceeded` option must be a boolean"); + } + var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset; + var duplicates = typeof opts.duplicates === "undefined" ? defaults.duplicates : opts.duplicates; + if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") { + throw new TypeError("The duplicates option must be either combine, first, or last"); + } + var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + return { + allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes, + allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults.allowSparse, + arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit, + charset, + charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma, + decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults.decodeDotInKeys, + decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth, + duplicates, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects, + strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults.strictDepth, + strictMerge: typeof opts.strictMerge === "boolean" ? !!opts.strictMerge : defaults.strictMerge, + strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling, + throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === "boolean" ? opts.throwOnLimitExceeded : false + }; + }, "normalizeParseOptions"); + module2.exports = function(str, opts) { + var options = normalizeParseOptions(opts); + if (str === "" || str === null || typeof str === "undefined") { + return options.plainObjects ? { __proto__: null } : {}; + } + var tempObj = typeof str === "string" ? parseValues(str, options) : str; + var obj = options.plainObjects ? { __proto__: null } : {}; + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === "string"); + obj = utils.merge(obj, newObj, options); + } + if (options.allowSparse === true) { + return obj; + } + return utils.compact(obj); + }; + } +}); + +// node_modules/qs/lib/index.js +var require_lib4 = __commonJS({ + "node_modules/qs/lib/index.js"(exports2, module2) { + "use strict"; + var stringify = require_stringify(); + var parse = require_parse2(); + var formats = require_formats(); + module2.exports = { + formats, + parse, + stringify + }; + } +}); + +// node_modules/body-parser/lib/types/urlencoded.js +var require_urlencoded = __commonJS({ + "node_modules/body-parser/lib/types/urlencoded.js"(exports2, module2) { + "use strict"; + var createError = require_http_errors(); + var debug = require_src()("body-parser:urlencoded"); + var read = require_read(); + var qs = require_lib4(); + var { normalizeOptions } = require_utils9(); + module2.exports = urlencoded; + function urlencoded(options) { + const normalizedOptions = normalizeOptions(options, "application/x-www-form-urlencoded"); + if (normalizedOptions.defaultCharset !== "utf-8" && normalizedOptions.defaultCharset !== "iso-8859-1") { + throw new TypeError("option defaultCharset must be either utf-8 or iso-8859-1"); + } + const parse = createQueryParser(options); + const readOptions = { + ...normalizedOptions, + // assert charset + isValidCharset: /* @__PURE__ */ __name((charset) => charset === "utf-8" || charset === "iso-8859-1", "isValidCharset") + }; + return /* @__PURE__ */ __name(function urlencodedParser(req, res, next) { + read(req, res, next, parse, debug, readOptions); + }, "urlencodedParser"); + } + __name(urlencoded, "urlencoded"); + function createQueryParser(options) { + const extended = Boolean(options?.extended); + let parameterLimit = options?.parameterLimit !== void 0 ? options?.parameterLimit : 1e3; + const charsetSentinel = options?.charsetSentinel; + const interpretNumericEntities = options?.interpretNumericEntities; + const depth = extended ? options?.depth !== void 0 ? options?.depth : 32 : 0; + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError("option parameterLimit must be a positive number"); + } + if (isNaN(depth) || depth < 0) { + throw new TypeError("option depth must be a zero or a positive number"); + } + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0; + } + return /* @__PURE__ */ __name(function parse(body, encoding) { + if (!body.length) return {}; + const paramCount = parameterCount(body, parameterLimit); + if (paramCount === void 0) { + debug("too many parameters"); + throw createError(413, "too many parameters", { + type: "parameters.too.many" + }); + } + const arrayLimit = extended ? Math.max(100, paramCount) : paramCount; + debug("parse " + (extended ? "extended " : "") + "urlencoding"); + try { + return qs.parse(body, { + allowPrototypes: true, + arrayLimit, + depth, + charsetSentinel, + interpretNumericEntities, + charset: encoding, + parameterLimit, + strictDepth: true + }); + } catch (err) { + if (err instanceof RangeError) { + throw createError(400, "The input exceeded the depth", { + type: "querystring.parse.rangeError" + }); + } else { + throw err; + } + } + }, "parse"); + } + __name(createQueryParser, "createQueryParser"); + function parameterCount(body, limit) { + let count = 0; + let index = -1; + do { + count++; + if (count > limit) return void 0; + index = body.indexOf("&", index + 1); + } while (index !== -1); + return count; + } + __name(parameterCount, "parameterCount"); + } +}); + +// node_modules/body-parser/index.js +var require_body_parser = __commonJS({ + "node_modules/body-parser/index.js"(exports2, module2) { + "use strict"; + exports2 = module2.exports = bodyParser; + exports2.json = require_json(); + exports2.raw = require_raw(); + exports2.text = require_text(); + exports2.urlencoded = require_urlencoded(); + function bodyParser() { + throw new Error("The bodyParser() generic has been split into individual middleware to use instead."); + } + __name(bodyParser, "bodyParser"); + } +}); + +// node_modules/merge-descriptors/index.js +var require_merge_descriptors = __commonJS({ + "node_modules/merge-descriptors/index.js"(exports2, module2) { + "use strict"; + function mergeDescriptors(destination, source, overwrite = true) { + if (!destination) { + throw new TypeError("The `destination` argument is required."); + } + if (!source) { + throw new TypeError("The `source` argument is required."); + } + for (const name of Object.getOwnPropertyNames(source)) { + if (!overwrite && Object.hasOwn(destination, name)) { + continue; + } + const descriptor = Object.getOwnPropertyDescriptor(source, name); + Object.defineProperty(destination, name, descriptor); + } + return destination; + } + __name(mergeDescriptors, "mergeDescriptors"); + module2.exports = mergeDescriptors; + } +}); + +// node_modules/encodeurl/index.js +var require_encodeurl = __commonJS({ + "node_modules/encodeurl/index.js"(exports2, module2) { + "use strict"; + module2.exports = encodeUrl; + var ENCODE_CHARS_REGEXP = /(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g; + var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g; + var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1\uFFFD$2"; + function encodeUrl(url) { + return String(url).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI); + } + __name(encodeUrl, "encodeUrl"); + } +}); + +// node_modules/escape-html/index.js +var require_escape_html = __commonJS({ + "node_modules/escape-html/index.js"(exports2, module2) { + "use strict"; + var matchHtmlRegExp = /["'&<>]/; + module2.exports = escapeHtml; + function escapeHtml(string) { + var str = "" + string; + var match = matchHtmlRegExp.exec(str); + if (!match) { + return str; + } + var escape2; + var html = ""; + var index = 0; + var lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escape2 = """; + break; + case 38: + escape2 = "&"; + break; + case 39: + escape2 = "'"; + break; + case 60: + escape2 = "<"; + break; + case 62: + escape2 = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.substring(lastIndex, index); + } + lastIndex = index + 1; + html += escape2; + } + return lastIndex !== index ? html + str.substring(lastIndex, index) : html; + } + __name(escapeHtml, "escapeHtml"); + } +}); + +// node_modules/parseurl/index.js +var require_parseurl = __commonJS({ + "node_modules/parseurl/index.js"(exports2, module2) { + "use strict"; + var url = require("url"); + var parse = url.parse; + var Url = url.Url; + module2.exports = parseurl; + module2.exports.original = originalurl; + function parseurl(req) { + var url2 = req.url; + if (url2 === void 0) { + return void 0; + } + var parsed = req._parsedUrl; + if (fresh(url2, parsed)) { + return parsed; + } + parsed = fastparse(url2); + parsed._raw = url2; + return req._parsedUrl = parsed; + } + __name(parseurl, "parseurl"); + function originalurl(req) { + var url2 = req.originalUrl; + if (typeof url2 !== "string") { + return parseurl(req); + } + var parsed = req._parsedOriginalUrl; + if (fresh(url2, parsed)) { + return parsed; + } + parsed = fastparse(url2); + parsed._raw = url2; + return req._parsedOriginalUrl = parsed; + } + __name(originalurl, "originalurl"); + function fastparse(str) { + if (typeof str !== "string" || str.charCodeAt(0) !== 47) { + return parse(str); + } + var pathname = str; + var query = null; + var search = null; + for (var i = 1; i < str.length; i++) { + switch (str.charCodeAt(i)) { + case 63: + if (search === null) { + pathname = str.substring(0, i); + query = str.substring(i + 1); + search = str.substring(i); + } + break; + case 9: + /* \t */ + case 10: + /* \n */ + case 12: + /* \f */ + case 13: + /* \r */ + case 32: + /* */ + case 35: + /* # */ + case 160: + case 65279: + return parse(str); + } + } + var url2 = Url !== void 0 ? new Url() : {}; + url2.path = str; + url2.href = str; + url2.pathname = pathname; + if (search !== null) { + url2.query = query; + url2.search = search; + } + return url2; + } + __name(fastparse, "fastparse"); + function fresh(url2, parsedUrl) { + return typeof parsedUrl === "object" && parsedUrl !== null && (Url === void 0 || parsedUrl instanceof Url) && parsedUrl._raw === url2; + } + __name(fresh, "fresh"); + } +}); + +// node_modules/finalhandler/index.js +var require_finalhandler = __commonJS({ + "node_modules/finalhandler/index.js"(exports2, module2) { + "use strict"; + var debug = require_src()("finalhandler"); + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var onFinished = require_on_finished(); + var parseUrl = require_parseurl(); + var statuses = require_statuses(); + var isFinished = onFinished.isFinished; + function createHtmlDocument(message) { + var body = escapeHtml(message).replaceAll("\n", "
").replaceAll(" ", "  "); + return '\n\n\n\nError\n\n\n
' + body + "
\n\n\n"; + } + __name(createHtmlDocument, "createHtmlDocument"); + module2.exports = finalhandler; + function finalhandler(req, res, options) { + var opts = options || {}; + var env = opts.env || process.env.NODE_ENV || "development"; + var onerror = opts.onerror; + return function(err) { + var headers; + var msg; + var status; + if (!err && res.headersSent) { + debug("cannot 404 after headers sent"); + return; + } + if (err) { + status = getErrorStatusCode(err); + if (status === void 0) { + status = getResponseStatusCode(res); + } else { + headers = getErrorHeaders(err); + } + msg = getErrorMessage(err, status, env); + } else { + status = 404; + msg = "Cannot " + req.method + " " + encodeUrl(getResourceName(req)); + } + debug("default %s", status); + if (err && onerror) { + setImmediate(onerror, err, req, res); + } + if (res.headersSent) { + debug("cannot %d after headers sent", status); + if (req.socket) { + req.socket.destroy(); + } + return; + } + send(req, res, status, headers, msg); + }; + } + __name(finalhandler, "finalhandler"); + function getErrorHeaders(err) { + if (!err.headers || typeof err.headers !== "object") { + return void 0; + } + return { ...err.headers }; + } + __name(getErrorHeaders, "getErrorHeaders"); + function getErrorMessage(err, status, env) { + var msg; + if (env !== "production") { + msg = err.stack; + if (!msg && typeof err.toString === "function") { + msg = err.toString(); + } + } + return msg || statuses.message[status]; + } + __name(getErrorMessage, "getErrorMessage"); + function getErrorStatusCode(err) { + if (typeof err.status === "number" && err.status >= 400 && err.status < 600) { + return err.status; + } + if (typeof err.statusCode === "number" && err.statusCode >= 400 && err.statusCode < 600) { + return err.statusCode; + } + return void 0; + } + __name(getErrorStatusCode, "getErrorStatusCode"); + function getResourceName(req) { + try { + return parseUrl.original(req).pathname; + } catch (e) { + return "resource"; + } + } + __name(getResourceName, "getResourceName"); + function getResponseStatusCode(res) { + var status = res.statusCode; + if (typeof status !== "number" || status < 400 || status > 599) { + status = 500; + } + return status; + } + __name(getResponseStatusCode, "getResponseStatusCode"); + function send(req, res, status, headers, message) { + function write() { + var body = createHtmlDocument(message); + res.statusCode = status; + if (req.httpVersionMajor < 2) { + res.statusMessage = statuses.message[status]; + } + res.removeHeader("Content-Encoding"); + res.removeHeader("Content-Language"); + res.removeHeader("Content-Range"); + for (const [key, value] of Object.entries(headers ?? {})) { + res.setHeader(key, value); + } + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.setHeader("Content-Type", "text/html; charset=utf-8"); + res.setHeader("Content-Length", Buffer.byteLength(body, "utf8")); + if (req.method === "HEAD") { + res.end(); + return; + } + res.end(body, "utf8"); + } + __name(write, "write"); + if (isFinished(req)) { + write(); + return; + } + req.unpipe(); + onFinished(req, write); + req.resume(); + } + __name(send, "send"); + } +}); + +// node_modules/express/lib/view.js +var require_view = __commonJS({ + "node_modules/express/lib/view.js"(exports2, module2) { + "use strict"; + var debug = require_src()("express:view"); + var path = require("node:path"); + var fs = require("node:fs"); + var dirname = path.dirname; + var basename = path.basename; + var extname = path.extname; + var join2 = path.join; + var resolve = path.resolve; + module2.exports = View; + function View(name, options) { + var opts = options || {}; + this.defaultEngine = opts.defaultEngine; + this.ext = extname(name); + this.name = name; + this.root = opts.root; + if (!this.ext && !this.defaultEngine) { + throw new Error("No default engine was specified and no extension was provided."); + } + var fileName = name; + if (!this.ext) { + this.ext = this.defaultEngine[0] !== "." ? "." + this.defaultEngine : this.defaultEngine; + fileName += this.ext; + } + if (!opts.engines[this.ext]) { + var mod = this.ext.slice(1); + debug('require "%s"', mod); + var fn = require(mod).__express; + if (typeof fn !== "function") { + throw new Error('Module "' + mod + '" does not provide a view engine.'); + } + opts.engines[this.ext] = fn; + } + this.engine = opts.engines[this.ext]; + this.path = this.lookup(fileName); + } + __name(View, "View"); + View.prototype.lookup = /* @__PURE__ */ __name(function lookup(name) { + var path2; + var roots = [].concat(this.root); + debug('lookup "%s"', name); + for (var i = 0; i < roots.length && !path2; i++) { + var root = roots[i]; + var loc = resolve(root, name); + var dir = dirname(loc); + var file = basename(loc); + path2 = this.resolve(dir, file); + } + return path2; + }, "lookup"); + View.prototype.render = /* @__PURE__ */ __name(function render(options, callback) { + var sync = true; + debug('render "%s"', this.path); + this.engine(this.path, options, /* @__PURE__ */ __name(function onRender() { + if (!sync) { + return callback.apply(this, arguments); + } + var args = new Array(arguments.length); + var cntx = this; + for (var i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } + return process.nextTick(/* @__PURE__ */ __name(function renderTick() { + return callback.apply(cntx, args); + }, "renderTick")); + }, "onRender")); + sync = false; + }, "render"); + View.prototype.resolve = /* @__PURE__ */ __name(function resolve2(dir, file) { + var ext = this.ext; + var path2 = join2(dir, file); + var stat = tryStat(path2); + if (stat && stat.isFile()) { + return path2; + } + path2 = join2(dir, basename(file, ext), "index" + ext); + stat = tryStat(path2); + if (stat && stat.isFile()) { + return path2; + } + }, "resolve"); + function tryStat(path2) { + debug('stat "%s"', path2); + try { + return fs.statSync(path2); + } catch (e) { + return void 0; + } + } + __name(tryStat, "tryStat"); + } +}); + +// node_modules/content-type/index.js +var require_content_type = __commonJS({ + "node_modules/content-type/index.js"(exports2) { + "use strict"; + var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g; + var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/; + var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g; + var QUOTE_REGEXP = /([\\"])/g; + var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; + exports2.format = format; + exports2.parse = parse; + function format(obj) { + if (!obj || typeof obj !== "object") { + throw new TypeError("argument obj is required"); + } + var parameters = obj.parameters; + var type = obj.type; + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError("invalid type"); + } + var string = type; + if (parameters && typeof parameters === "object") { + var param; + var params = Object.keys(parameters).sort(); + for (var i = 0; i < params.length; i++) { + param = params[i]; + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError("invalid parameter name"); + } + string += "; " + param + "=" + qstring(parameters[param]); + } + } + return string; + } + __name(format, "format"); + function parse(string) { + if (!string) { + throw new TypeError("argument string is required"); + } + var header = typeof string === "object" ? getcontenttype(string) : string; + if (typeof header !== "string") { + throw new TypeError("argument string is required to be a string"); + } + var index = header.indexOf(";"); + var type = index !== -1 ? header.slice(0, index).trim() : header.trim(); + if (!TYPE_REGEXP.test(type)) { + throw new TypeError("invalid media type"); + } + var obj = new ContentType(type.toLowerCase()); + if (index !== -1) { + var key; + var match; + var value; + PARAM_REGEXP.lastIndex = index; + while (match = PARAM_REGEXP.exec(header)) { + if (match.index !== index) { + throw new TypeError("invalid parameter format"); + } + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + if (value.charCodeAt(0) === 34) { + value = value.slice(1, -1); + if (value.indexOf("\\") !== -1) { + value = value.replace(QESC_REGEXP, "$1"); + } + } + obj.parameters[key] = value; + } + if (index !== header.length) { + throw new TypeError("invalid parameter format"); + } + } + return obj; + } + __name(parse, "parse"); + function getcontenttype(obj) { + var header; + if (typeof obj.getHeader === "function") { + header = obj.getHeader("content-type"); + } else if (typeof obj.headers === "object") { + header = obj.headers && obj.headers["content-type"]; + } + if (typeof header !== "string") { + throw new TypeError("content-type header is missing from object"); + } + return header; + } + __name(getcontenttype, "getcontenttype"); + function qstring(val) { + var str = String(val); + if (TOKEN_REGEXP.test(str)) { + return str; + } + if (str.length > 0 && !TEXT_REGEXP.test(str)) { + throw new TypeError("invalid parameter value"); + } + return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"'; + } + __name(qstring, "qstring"); + function ContentType(type) { + this.parameters = /* @__PURE__ */ Object.create(null); + this.type = type; + } + __name(ContentType, "ContentType"); + } +}); + +// node_modules/etag/index.js +var require_etag = __commonJS({ + "node_modules/etag/index.js"(exports2, module2) { + "use strict"; + module2.exports = etag; + var crypto2 = require("crypto"); + var Stats = require("fs").Stats; + var toString2 = Object.prototype.toString; + function entitytag(entity) { + if (entity.length === 0) { + return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"'; + } + var hash = crypto2.createHash("sha1").update(entity, "utf8").digest("base64").substring(0, 27); + var len = typeof entity === "string" ? Buffer.byteLength(entity, "utf8") : entity.length; + return '"' + len.toString(16) + "-" + hash + '"'; + } + __name(entitytag, "entitytag"); + function etag(entity, options) { + if (entity == null) { + throw new TypeError("argument entity is required"); + } + var isStats = isstats(entity); + var weak = options && typeof options.weak === "boolean" ? options.weak : isStats; + if (!isStats && typeof entity !== "string" && !Buffer.isBuffer(entity)) { + throw new TypeError("argument entity must be string, Buffer, or fs.Stats"); + } + var tag = isStats ? stattag(entity) : entitytag(entity); + return weak ? "W/" + tag : tag; + } + __name(etag, "etag"); + function isstats(obj) { + if (typeof Stats === "function" && obj instanceof Stats) { + return true; + } + return obj && typeof obj === "object" && "ctime" in obj && toString2.call(obj.ctime) === "[object Date]" && "mtime" in obj && toString2.call(obj.mtime) === "[object Date]" && "ino" in obj && typeof obj.ino === "number" && "size" in obj && typeof obj.size === "number"; + } + __name(isstats, "isstats"); + function stattag(stat) { + var mtime = stat.mtime.getTime().toString(16); + var size = stat.size.toString(16); + return '"' + size + "-" + mtime + '"'; + } + __name(stattag, "stattag"); + } +}); + +// node_modules/forwarded/index.js +var require_forwarded = __commonJS({ + "node_modules/forwarded/index.js"(exports2, module2) { + "use strict"; + module2.exports = forwarded; + function forwarded(req) { + if (!req) { + throw new TypeError("argument req is required"); + } + var proxyAddrs = parse(req.headers["x-forwarded-for"] || ""); + var socketAddr = getSocketAddr(req); + var addrs = [socketAddr].concat(proxyAddrs); + return addrs; + } + __name(forwarded, "forwarded"); + function getSocketAddr(req) { + return req.socket ? req.socket.remoteAddress : req.connection.remoteAddress; + } + __name(getSocketAddr, "getSocketAddr"); + function parse(header) { + var end = header.length; + var list = []; + var start = header.length; + for (var i = header.length - 1; i >= 0; i--) { + switch (header.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i; + } + break; + case 44: + if (start !== end) { + list.push(header.substring(start, end)); + } + start = end = i; + break; + default: + start = i; + break; + } + } + if (start !== end) { + list.push(header.substring(start, end)); + } + return list; + } + __name(parse, "parse"); + } +}); + +// node_modules/ipaddr.js/lib/ipaddr.js +var require_ipaddr = __commonJS({ + "node_modules/ipaddr.js/lib/ipaddr.js"(exports2, module2) { + (function() { + var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex; + ipaddr = {}; + root = this; + if (typeof module2 !== "undefined" && module2 !== null && module2.exports) { + module2.exports = ipaddr; + } else { + root["ipaddr"] = ipaddr; + } + matchCIDR = /* @__PURE__ */ __name(function(first, second, partSize, cidrBits) { + var part, shift; + if (first.length !== second.length) { + throw new Error("ipaddr: cannot match CIDR for objects with different lengths"); + } + part = 0; + while (cidrBits > 0) { + shift = partSize - cidrBits; + if (shift < 0) { + shift = 0; + } + if (first[part] >> shift !== second[part] >> shift) { + return false; + } + cidrBits -= partSize; + part += 1; + } + return true; + }, "matchCIDR"); + ipaddr.subnetMatch = function(address, rangeList, defaultName) { + var k, len, rangeName, rangeSubnets, subnet; + if (defaultName == null) { + defaultName = "unicast"; + } + for (rangeName in rangeList) { + rangeSubnets = rangeList[rangeName]; + if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) { + rangeSubnets = [rangeSubnets]; + } + for (k = 0, len = rangeSubnets.length; k < len; k++) { + subnet = rangeSubnets[k]; + if (address.kind() === subnet[0].kind()) { + if (address.match.apply(address, subnet)) { + return rangeName; + } + } + } + } + return defaultName; + }; + ipaddr.IPv4 = (function() { + function IPv4(octets) { + var k, len, octet; + if (octets.length !== 4) { + throw new Error("ipaddr: ipv4 octet count should be 4"); + } + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!(0 <= octet && octet <= 255)) { + throw new Error("ipaddr: ipv4 octet should fit in 8 bits"); + } + } + this.octets = octets; + } + __name(IPv4, "IPv4"); + IPv4.prototype.kind = function() { + return "ipv4"; + }; + IPv4.prototype.toString = function() { + return this.octets.join("."); + }; + IPv4.prototype.toNormalizedString = function() { + return this.toString(); + }; + IPv4.prototype.toByteArray = function() { + return this.octets.slice(0); + }; + IPv4.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== "ipv4") { + throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one"); + } + return matchCIDR(this.octets, other.octets, 8, cidrRange); + }; + IPv4.prototype.SpecialRanges = { + unspecified: [[new IPv4([0, 0, 0, 0]), 8]], + broadcast: [[new IPv4([255, 255, 255, 255]), 32]], + multicast: [[new IPv4([224, 0, 0, 0]), 4]], + linkLocal: [[new IPv4([169, 254, 0, 0]), 16]], + loopback: [[new IPv4([127, 0, 0, 0]), 8]], + carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]], + "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]], + reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]] + }; + IPv4.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + IPv4.prototype.toIPv4MappedAddress = function() { + return ipaddr.IPv6.parse("::ffff:" + this.toString()); + }; + IPv4.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, octet, stop, zeros, zerotable; + zerotable = { + 0: 8, + 128: 7, + 192: 6, + 224: 5, + 240: 4, + 248: 3, + 252: 2, + 254: 1, + 255: 0 + }; + cidr = 0; + stop = false; + for (i = k = 3; k >= 0; i = k += -1) { + octet = this.octets[i]; + if (octet in zerotable) { + zeros = zerotable[octet]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 8) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 32 - cidr; + }; + return IPv4; + })(); + ipv4Part = "(0?\\d+|0x[a-f0-9]+)"; + ipv4Regexes = { + fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", "i"), + longValue: new RegExp("^" + ipv4Part + "$", "i") + }; + ipaddr.IPv4.parser = function(string) { + var match, parseIntAuto, part, shift, value; + parseIntAuto = /* @__PURE__ */ __name(function(string2) { + if (string2[0] === "0" && string2[1] !== "x") { + return parseInt(string2, 8); + } else { + return parseInt(string2); + } + }, "parseIntAuto"); + if (match = string.match(ipv4Regexes.fourOctet)) { + return (function() { + var k, len, ref, results; + ref = match.slice(1, 6); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseIntAuto(part)); + } + return results; + })(); + } else if (match = string.match(ipv4Regexes.longValue)) { + value = parseIntAuto(match[1]); + if (value > 4294967295 || value < 0) { + throw new Error("ipaddr: address outside defined range"); + } + return (function() { + var k, results; + results = []; + for (shift = k = 0; k <= 24; shift = k += 8) { + results.push(value >> shift & 255); + } + return results; + })().reverse(); + } else { + return null; + } + }; + ipaddr.IPv6 = (function() { + function IPv6(parts, zoneId) { + var i, k, l, len, part, ref; + if (parts.length === 16) { + this.parts = []; + for (i = k = 0; k <= 14; i = k += 2) { + this.parts.push(parts[i] << 8 | parts[i + 1]); + } + } else if (parts.length === 8) { + this.parts = parts; + } else { + throw new Error("ipaddr: ipv6 part count should be 8 or 16"); + } + ref = this.parts; + for (l = 0, len = ref.length; l < len; l++) { + part = ref[l]; + if (!(0 <= part && part <= 65535)) { + throw new Error("ipaddr: ipv6 part should fit in 16 bits"); + } + } + if (zoneId) { + this.zoneId = zoneId; + } + } + __name(IPv6, "IPv6"); + IPv6.prototype.kind = function() { + return "ipv6"; + }; + IPv6.prototype.toString = function() { + return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, "::"); + }; + IPv6.prototype.toRFC5952String = function() { + var bestMatchIndex, bestMatchLength, match, regex, string; + regex = /((^|:)(0(:|$)){2,})/g; + string = this.toNormalizedString(); + bestMatchIndex = 0; + bestMatchLength = -1; + while (match = regex.exec(string)) { + if (match[0].length > bestMatchLength) { + bestMatchIndex = match.index; + bestMatchLength = match[0].length; + } + } + if (bestMatchLength < 0) { + return string; + } + return string.substring(0, bestMatchIndex) + "::" + string.substring(bestMatchIndex + bestMatchLength); + }; + IPv6.prototype.toByteArray = function() { + var bytes, k, len, part, ref; + bytes = []; + ref = this.parts; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + bytes.push(part >> 8); + bytes.push(part & 255); + } + return bytes; + }; + IPv6.prototype.toNormalizedString = function() { + var addr, part, suffix; + addr = (function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16)); + } + return results; + }).call(this).join(":"); + suffix = ""; + if (this.zoneId) { + suffix = "%" + this.zoneId; + } + return addr + suffix; + }; + IPv6.prototype.toFixedLengthString = function() { + var addr, part, suffix; + addr = (function() { + var k, len, ref, results; + ref = this.parts; + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(part.toString(16).padStart(4, "0")); + } + return results; + }).call(this).join(":"); + suffix = ""; + if (this.zoneId) { + suffix = "%" + this.zoneId; + } + return addr + suffix; + }; + IPv6.prototype.match = function(other, cidrRange) { + var ref; + if (cidrRange === void 0) { + ref = other, other = ref[0], cidrRange = ref[1]; + } + if (other.kind() !== "ipv6") { + throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one"); + } + return matchCIDR(this.parts, other.parts, 16, cidrRange); + }; + IPv6.prototype.SpecialRanges = { + unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128], + linkLocal: [new IPv6([65152, 0, 0, 0, 0, 0, 0, 0]), 10], + multicast: [new IPv6([65280, 0, 0, 0, 0, 0, 0, 0]), 8], + loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128], + uniqueLocal: [new IPv6([64512, 0, 0, 0, 0, 0, 0, 0]), 7], + ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 65535, 0, 0]), 96], + rfc6145: [new IPv6([0, 0, 0, 0, 65535, 0, 0, 0]), 96], + rfc6052: [new IPv6([100, 65435, 0, 0, 0, 0, 0, 0]), 96], + "6to4": [new IPv6([8194, 0, 0, 0, 0, 0, 0, 0]), 16], + teredo: [new IPv6([8193, 0, 0, 0, 0, 0, 0, 0]), 32], + reserved: [[new IPv6([8193, 3512, 0, 0, 0, 0, 0, 0]), 32]] + }; + IPv6.prototype.range = function() { + return ipaddr.subnetMatch(this, this.SpecialRanges); + }; + IPv6.prototype.isIPv4MappedAddress = function() { + return this.range() === "ipv4Mapped"; + }; + IPv6.prototype.toIPv4Address = function() { + var high, low, ref; + if (!this.isIPv4MappedAddress()) { + throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4"); + } + ref = this.parts.slice(-2), high = ref[0], low = ref[1]; + return new ipaddr.IPv4([high >> 8, high & 255, low >> 8, low & 255]); + }; + IPv6.prototype.prefixLengthFromSubnetMask = function() { + var cidr, i, k, part, stop, zeros, zerotable; + zerotable = { + 0: 16, + 32768: 15, + 49152: 14, + 57344: 13, + 61440: 12, + 63488: 11, + 64512: 10, + 65024: 9, + 65280: 8, + 65408: 7, + 65472: 6, + 65504: 5, + 65520: 4, + 65528: 3, + 65532: 2, + 65534: 1, + 65535: 0 + }; + cidr = 0; + stop = false; + for (i = k = 7; k >= 0; i = k += -1) { + part = this.parts[i]; + if (part in zerotable) { + zeros = zerotable[part]; + if (stop && zeros !== 0) { + return null; + } + if (zeros !== 16) { + stop = true; + } + cidr += zeros; + } else { + return null; + } + } + return 128 - cidr; + }; + return IPv6; + })(); + ipv6Part = "(?:[0-9a-f]+::?)+"; + zoneIndex = "%[0-9a-z]{1,}"; + ipv6Regexes = { + zoneIndex: new RegExp(zoneIndex, "i"), + "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", "i"), + transitional: new RegExp("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)" + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), "i") + }; + expandIPv6 = /* @__PURE__ */ __name(function(string, parts) { + var colonCount, lastColon, part, replacement, replacementCount, zoneId; + if (string.indexOf("::") !== string.lastIndexOf("::")) { + return null; + } + zoneId = (string.match(ipv6Regexes["zoneIndex"]) || [])[0]; + if (zoneId) { + zoneId = zoneId.substring(1); + string = string.replace(/%.+$/, ""); + } + colonCount = 0; + lastColon = -1; + while ((lastColon = string.indexOf(":", lastColon + 1)) >= 0) { + colonCount++; + } + if (string.substr(0, 2) === "::") { + colonCount--; + } + if (string.substr(-2, 2) === "::") { + colonCount--; + } + if (colonCount > parts) { + return null; + } + replacementCount = parts - colonCount; + replacement = ":"; + while (replacementCount--) { + replacement += "0:"; + } + string = string.replace("::", replacement); + if (string[0] === ":") { + string = string.slice(1); + } + if (string[string.length - 1] === ":") { + string = string.slice(0, -1); + } + parts = (function() { + var k, len, ref, results; + ref = string.split(":"); + results = []; + for (k = 0, len = ref.length; k < len; k++) { + part = ref[k]; + results.push(parseInt(part, 16)); + } + return results; + })(); + return { + parts, + zoneId + }; + }, "expandIPv6"); + ipaddr.IPv6.parser = function(string) { + var addr, k, len, match, octet, octets, zoneId; + if (ipv6Regexes["native"].test(string)) { + return expandIPv6(string, 8); + } else if (match = string.match(ipv6Regexes["transitional"])) { + zoneId = match[6] || ""; + addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6); + if (addr.parts) { + octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])]; + for (k = 0, len = octets.length; k < len; k++) { + octet = octets[k]; + if (!(0 <= octet && octet <= 255)) { + return null; + } + } + addr.parts.push(octets[0] << 8 | octets[1]); + addr.parts.push(octets[2] << 8 | octets[3]); + return { + parts: addr.parts, + zoneId: addr.zoneId + }; + } + } + return null; + }; + ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) { + return this.parser(string) !== null; + }; + ipaddr.IPv4.isValid = function(string) { + var e; + try { + new this(this.parser(string)); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + ipaddr.IPv4.isValidFourPartDecimal = function(string) { + if (ipaddr.IPv4.isValid(string) && string.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) { + return true; + } else { + return false; + } + }; + ipaddr.IPv6.isValid = function(string) { + var addr, e; + if (typeof string === "string" && string.indexOf(":") === -1) { + return false; + } + try { + addr = this.parser(string); + new this(addr.parts, addr.zoneId); + return true; + } catch (error1) { + e = error1; + return false; + } + }; + ipaddr.IPv4.parse = function(string) { + var parts; + parts = this.parser(string); + if (parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(parts); + }; + ipaddr.IPv6.parse = function(string) { + var addr; + addr = this.parser(string); + if (addr.parts === null) { + throw new Error("ipaddr: string is not formatted like ip address"); + } + return new this(addr.parts, addr.zoneId); + }; + ipaddr.IPv4.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 32) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, "toString", { + value: /* @__PURE__ */ __name(function() { + return this.join("/"); + }, "value") + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range"); + }; + ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) { + var filledOctetCount, j, octets; + prefix = parseInt(prefix); + if (prefix < 0 || prefix > 32) { + throw new Error("ipaddr: invalid IPv4 prefix length"); + } + octets = [0, 0, 0, 0]; + j = 0; + filledOctetCount = Math.floor(prefix / 8); + while (j < filledOctetCount) { + octets[j] = 255; + j++; + } + if (filledOctetCount < 4) { + octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - prefix % 8; + } + return new this(octets); + }; + ipaddr.IPv4.broadcastAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error("ipaddr: the address does not have IPv4 CIDR format"); + } + }; + ipaddr.IPv4.networkAddressFromCIDR = function(string) { + var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets; + try { + cidr = this.parseCIDR(string); + ipInterfaceOctets = cidr[0].toByteArray(); + subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray(); + octets = []; + i = 0; + while (i < 4) { + octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10)); + i++; + } + return new this(octets); + } catch (error1) { + error = error1; + throw new Error("ipaddr: the address does not have IPv4 CIDR format"); + } + }; + ipaddr.IPv6.parseCIDR = function(string) { + var maskLength, match, parsed; + if (match = string.match(/^(.+)\/(\d+)$/)) { + maskLength = parseInt(match[2]); + if (maskLength >= 0 && maskLength <= 128) { + parsed = [this.parse(match[1]), maskLength]; + Object.defineProperty(parsed, "toString", { + value: /* @__PURE__ */ __name(function() { + return this.join("/"); + }, "value") + }); + return parsed; + } + } + throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range"); + }; + ipaddr.isValid = function(string) { + return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string); + }; + ipaddr.parse = function(string) { + if (ipaddr.IPv6.isValid(string)) { + return ipaddr.IPv6.parse(string); + } else if (ipaddr.IPv4.isValid(string)) { + return ipaddr.IPv4.parse(string); + } else { + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format"); + } + }; + ipaddr.parseCIDR = function(string) { + var e; + try { + return ipaddr.IPv6.parseCIDR(string); + } catch (error1) { + e = error1; + try { + return ipaddr.IPv4.parseCIDR(string); + } catch (error12) { + e = error12; + throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format"); + } + } + }; + ipaddr.fromByteArray = function(bytes) { + var length; + length = bytes.length; + if (length === 4) { + return new ipaddr.IPv4(bytes); + } else if (length === 16) { + return new ipaddr.IPv6(bytes); + } else { + throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address"); + } + }; + ipaddr.process = function(string) { + var addr; + addr = this.parse(string); + if (addr.kind() === "ipv6" && addr.isIPv4MappedAddress()) { + return addr.toIPv4Address(); + } else { + return addr; + } + }; + }).call(exports2); + } +}); + +// node_modules/proxy-addr/index.js +var require_proxy_addr = __commonJS({ + "node_modules/proxy-addr/index.js"(exports2, module2) { + "use strict"; + module2.exports = proxyaddr; + module2.exports.all = alladdrs; + module2.exports.compile = compile; + var forwarded = require_forwarded(); + var ipaddr = require_ipaddr(); + var DIGIT_REGEXP = /^[0-9]+$/; + var isip = ipaddr.isValid; + var parseip = ipaddr.parse; + var IP_RANGES = { + linklocal: ["169.254.0.0/16", "fe80::/10"], + loopback: ["127.0.0.1/8", "::1/128"], + uniquelocal: ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7"] + }; + function alladdrs(req, trust) { + var addrs = forwarded(req); + if (!trust) { + return addrs; + } + if (typeof trust !== "function") { + trust = compile(trust); + } + for (var i = 0; i < addrs.length - 1; i++) { + if (trust(addrs[i], i)) continue; + addrs.length = i + 1; + } + return addrs; + } + __name(alladdrs, "alladdrs"); + function compile(val) { + if (!val) { + throw new TypeError("argument is required"); + } + var trust; + if (typeof val === "string") { + trust = [val]; + } else if (Array.isArray(val)) { + trust = val.slice(); + } else { + throw new TypeError("unsupported trust argument"); + } + for (var i = 0; i < trust.length; i++) { + val = trust[i]; + if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val)) { + continue; + } + val = IP_RANGES[val]; + trust.splice.apply(trust, [i, 1].concat(val)); + i += val.length - 1; + } + return compileTrust(compileRangeSubnets(trust)); + } + __name(compile, "compile"); + function compileRangeSubnets(arr) { + var rangeSubnets = new Array(arr.length); + for (var i = 0; i < arr.length; i++) { + rangeSubnets[i] = parseipNotation(arr[i]); + } + return rangeSubnets; + } + __name(compileRangeSubnets, "compileRangeSubnets"); + function compileTrust(rangeSubnets) { + var len = rangeSubnets.length; + return len === 0 ? trustNone : len === 1 ? trustSingle(rangeSubnets[0]) : trustMulti(rangeSubnets); + } + __name(compileTrust, "compileTrust"); + function parseipNotation(note) { + var pos = note.lastIndexOf("/"); + var str = pos !== -1 ? note.substring(0, pos) : note; + if (!isip(str)) { + throw new TypeError("invalid IP address: " + str); + } + var ip = parseip(str); + if (pos === -1 && ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) { + ip = ip.toIPv4Address(); + } + var max = ip.kind() === "ipv6" ? 128 : 32; + var range = pos !== -1 ? note.substring(pos + 1, note.length) : null; + if (range === null) { + range = max; + } else if (DIGIT_REGEXP.test(range)) { + range = parseInt(range, 10); + } else if (ip.kind() === "ipv4" && isip(range)) { + range = parseNetmask(range); + } else { + range = null; + } + if (range <= 0 || range > max) { + throw new TypeError("invalid range on address: " + note); + } + return [ip, range]; + } + __name(parseipNotation, "parseipNotation"); + function parseNetmask(netmask) { + var ip = parseip(netmask); + var kind = ip.kind(); + return kind === "ipv4" ? ip.prefixLengthFromSubnetMask() : null; + } + __name(parseNetmask, "parseNetmask"); + function proxyaddr(req, trust) { + if (!req) { + throw new TypeError("req argument is required"); + } + if (!trust) { + throw new TypeError("trust argument is required"); + } + var addrs = alladdrs(req, trust); + var addr = addrs[addrs.length - 1]; + return addr; + } + __name(proxyaddr, "proxyaddr"); + function trustNone() { + return false; + } + __name(trustNone, "trustNone"); + function trustMulti(subnets) { + return /* @__PURE__ */ __name(function trust(addr) { + if (!isip(addr)) return false; + var ip = parseip(addr); + var ipconv; + var kind = ip.kind(); + for (var i = 0; i < subnets.length; i++) { + var subnet = subnets[i]; + var subnetip = subnet[0]; + var subnetkind = subnetip.kind(); + var subnetrange = subnet[1]; + var trusted = ip; + if (kind !== subnetkind) { + if (subnetkind === "ipv4" && !ip.isIPv4MappedAddress()) { + continue; + } + if (!ipconv) { + ipconv = subnetkind === "ipv4" ? ip.toIPv4Address() : ip.toIPv4MappedAddress(); + } + trusted = ipconv; + } + if (trusted.match(subnetip, subnetrange)) { + return true; + } + } + return false; + }, "trust"); + } + __name(trustMulti, "trustMulti"); + function trustSingle(subnet) { + var subnetip = subnet[0]; + var subnetkind = subnetip.kind(); + var subnetisipv4 = subnetkind === "ipv4"; + var subnetrange = subnet[1]; + return /* @__PURE__ */ __name(function trust(addr) { + if (!isip(addr)) return false; + var ip = parseip(addr); + var kind = ip.kind(); + if (kind !== subnetkind) { + if (subnetisipv4 && !ip.isIPv4MappedAddress()) { + return false; + } + ip = subnetisipv4 ? ip.toIPv4Address() : ip.toIPv4MappedAddress(); + } + return ip.match(subnetip, subnetrange); + }, "trust"); + } + __name(trustSingle, "trustSingle"); + } +}); + +// node_modules/express/lib/utils.js +var require_utils11 = __commonJS({ + "node_modules/express/lib/utils.js"(exports2) { + "use strict"; + var { METHODS } = require("node:http"); + var contentType = require_content_type(); + var etag = require_etag(); + var mime = require_mime_types(); + var proxyaddr = require_proxy_addr(); + var qs = require_lib4(); + var querystring = require("node:querystring"); + var { Buffer: Buffer2 } = require("node:buffer"); + exports2.methods = METHODS.map((method) => method.toLowerCase()); + exports2.etag = createETagGenerator({ weak: false }); + exports2.wetag = createETagGenerator({ weak: true }); + exports2.normalizeType = function(type) { + return ~type.indexOf("/") ? acceptParams(type) : { value: mime.lookup(type) || "application/octet-stream", params: {} }; + }; + exports2.normalizeTypes = function(types) { + return types.map(exports2.normalizeType); + }; + function acceptParams(str) { + var length = str.length; + var colonIndex = str.indexOf(";"); + var index = colonIndex === -1 ? length : colonIndex; + var ret = { value: str.slice(0, index).trim(), quality: 1, params: {} }; + while (index < length) { + var splitIndex = str.indexOf("=", index); + if (splitIndex === -1) break; + var colonIndex = str.indexOf(";", index); + var endIndex = colonIndex === -1 ? length : colonIndex; + if (splitIndex > endIndex) { + index = str.lastIndexOf(";", splitIndex - 1) + 1; + continue; + } + var key = str.slice(index, splitIndex).trim(); + var value = str.slice(splitIndex + 1, endIndex).trim(); + if (key === "q") { + ret.quality = parseFloat(value); + } else { + ret.params[key] = value; + } + index = endIndex + 1; + } + return ret; + } + __name(acceptParams, "acceptParams"); + exports2.compileETag = function(val) { + var fn; + if (typeof val === "function") { + return val; + } + switch (val) { + case true: + case "weak": + fn = exports2.wetag; + break; + case false: + break; + case "strong": + fn = exports2.etag; + break; + default: + throw new TypeError("unknown value for etag function: " + val); + } + return fn; + }; + exports2.compileQueryParser = /* @__PURE__ */ __name(function compileQueryParser(val) { + var fn; + if (typeof val === "function") { + return val; + } + switch (val) { + case true: + case "simple": + fn = querystring.parse; + break; + case false: + break; + case "extended": + fn = parseExtendedQueryString; + break; + default: + throw new TypeError("unknown value for query parser function: " + val); + } + return fn; + }, "compileQueryParser"); + exports2.compileTrust = function(val) { + if (typeof val === "function") return val; + if (val === true) { + return function() { + return true; + }; + } + if (typeof val === "number") { + return function(a, i) { + return i < val; + }; + } + if (typeof val === "string") { + val = val.split(",").map(function(v) { + return v.trim(); + }); + } + return proxyaddr.compile(val || []); + }; + exports2.setCharset = /* @__PURE__ */ __name(function setCharset(type, charset) { + if (!type || !charset) { + return type; + } + var parsed = contentType.parse(type); + parsed.parameters.charset = charset; + return contentType.format(parsed); + }, "setCharset"); + function createETagGenerator(options) { + return /* @__PURE__ */ __name(function generateETag(body, encoding) { + var buf = !Buffer2.isBuffer(body) ? Buffer2.from(body, encoding) : body; + return etag(buf, options); + }, "generateETag"); + } + __name(createETagGenerator, "createETagGenerator"); + function parseExtendedQueryString(str) { + return qs.parse(str, { + allowPrototypes: true + }); + } + __name(parseExtendedQueryString, "parseExtendedQueryString"); + } +}); + +// node_modules/wrappy/wrappy.js +var require_wrappy = __commonJS({ + "node_modules/wrappy/wrappy.js"(exports2, module2) { + module2.exports = wrappy; + function wrappy(fn, cb) { + if (fn && cb) return wrappy(fn)(cb); + if (typeof fn !== "function") + throw new TypeError("need wrapper function"); + Object.keys(fn).forEach(function(k) { + wrapper[k] = fn[k]; + }); + return wrapper; + function wrapper() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + var ret = fn.apply(this, args); + var cb2 = args[args.length - 1]; + if (typeof ret === "function" && ret !== cb2) { + Object.keys(cb2).forEach(function(k) { + ret[k] = cb2[k]; + }); + } + return ret; + } + __name(wrapper, "wrapper"); + } + __name(wrappy, "wrappy"); + } +}); + +// node_modules/once/once.js +var require_once = __commonJS({ + "node_modules/once/once.js"(exports2, module2) { + var wrappy = require_wrappy(); + module2.exports = wrappy(once); + module2.exports.strict = wrappy(onceStrict); + once.proto = once(function() { + Object.defineProperty(Function.prototype, "once", { + value: /* @__PURE__ */ __name(function() { + return once(this); + }, "value"), + configurable: true + }); + Object.defineProperty(Function.prototype, "onceStrict", { + value: /* @__PURE__ */ __name(function() { + return onceStrict(this); + }, "value"), + configurable: true + }); + }); + function once(fn) { + var f = /* @__PURE__ */ __name(function() { + if (f.called) return f.value; + f.called = true; + return f.value = fn.apply(this, arguments); + }, "f"); + f.called = false; + return f; + } + __name(once, "once"); + function onceStrict(fn) { + var f = /* @__PURE__ */ __name(function() { + if (f.called) + throw new Error(f.onceError); + f.called = true; + return f.value = fn.apply(this, arguments); + }, "f"); + var name = fn.name || "Function wrapped with `once`"; + f.onceError = name + " shouldn't be called more than once"; + f.called = false; + return f; + } + __name(onceStrict, "onceStrict"); + } +}); + +// node_modules/is-promise/index.js +var require_is_promise = __commonJS({ + "node_modules/is-promise/index.js"(exports2, module2) { + module2.exports = isPromise; + module2.exports.default = isPromise; + function isPromise(obj) { + return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function"; + } + __name(isPromise, "isPromise"); + } +}); + +// node_modules/router/lib/layer.js +var require_layer = __commonJS({ + "node_modules/router/lib/layer.js"(exports2, module2) { + "use strict"; + var isPromise = require_is_promise(); + var pathRegexp = require_dist2(); + var debug = require_src()("router:layer"); + var deprecate = require_depd()("router"); + var TRAILING_SLASH_REGEXP = /\/+$/; + var MATCHING_GROUP_REGEXP = /\((?:\?<(.*?)>)?(?!\?)/g; + module2.exports = Layer; + function Layer(path, options, fn) { + if (!(this instanceof Layer)) { + return new Layer(path, options, fn); + } + debug("new %o", path); + const opts = options || {}; + this.handle = fn; + this.keys = []; + this.name = fn.name || ""; + this.params = void 0; + this.path = void 0; + this.slash = path === "/" && opts.end === false; + function matcher(_path) { + if (_path instanceof RegExp) { + const keys = []; + let name = 0; + let m; + while (m = MATCHING_GROUP_REGEXP.exec(_path.source)) { + keys.push({ + name: m[1] || name++, + offset: m.index + }); + } + return /* @__PURE__ */ __name(function regexpMatcher(p) { + const match = _path.exec(p); + if (!match) { + return false; + } + const params = {}; + for (let i = 1; i < match.length; i++) { + const key = keys[i - 1]; + const prop = key.name; + const val = decodeParam(match[i]); + if (val !== void 0) { + params[prop] = val; + } + } + return { + params, + path: match[0] + }; + }, "regexpMatcher"); + } + return pathRegexp.match(opts.strict ? _path : loosen(_path), { + sensitive: opts.sensitive, + end: opts.end, + trailing: !opts.strict, + decode: decodeParam + }); + } + __name(matcher, "matcher"); + this.matchers = Array.isArray(path) ? path.map(matcher) : [matcher(path)]; + } + __name(Layer, "Layer"); + Layer.prototype.handleError = /* @__PURE__ */ __name(function handleError(error, req, res, next) { + const fn = this.handle; + if (fn.length !== 4) { + return next(error); + } + try { + const ret = fn(error, req, res, next); + if (isPromise(ret)) { + if (!(ret instanceof Promise)) { + deprecate("handlers that are Promise-like are deprecated, use a native Promise instead"); + } + ret.then(null, function(error2) { + next(error2 || new Error("Rejected promise")); + }); + } + } catch (err) { + next(err); + } + }, "handleError"); + Layer.prototype.handleRequest = /* @__PURE__ */ __name(function handleRequest(req, res, next) { + const fn = this.handle; + if (fn.length > 3) { + return next(); + } + try { + const ret = fn(req, res, next); + if (isPromise(ret)) { + if (!(ret instanceof Promise)) { + deprecate("handlers that are Promise-like are deprecated, use a native Promise instead"); + } + ret.then(null, function(error) { + next(error || new Error("Rejected promise")); + }); + } + } catch (err) { + next(err); + } + }, "handleRequest"); + Layer.prototype.match = /* @__PURE__ */ __name(function match(path) { + let match2; + if (path != null) { + if (this.slash) { + this.params = {}; + this.path = ""; + return true; + } + let i = 0; + while (!match2 && i < this.matchers.length) { + match2 = this.matchers[i](path); + i++; + } + } + if (!match2) { + this.params = void 0; + this.path = void 0; + return false; + } + this.params = match2.params; + this.path = match2.path; + this.keys = Object.keys(match2.params); + return true; + }, "match"); + function decodeParam(val) { + if (typeof val !== "string" || val.length === 0) { + return val; + } + try { + return decodeURIComponent(val); + } catch (err) { + if (err instanceof URIError) { + err.message = "Failed to decode param '" + val + "'"; + err.status = 400; + } + throw err; + } + } + __name(decodeParam, "decodeParam"); + function loosen(path) { + if (path instanceof RegExp || path === "/") { + return path; + } + return Array.isArray(path) ? path.map(function(p) { + return loosen(p); + }) : String(path).replace(TRAILING_SLASH_REGEXP, ""); + } + __name(loosen, "loosen"); + } +}); + +// node_modules/router/lib/route.js +var require_route = __commonJS({ + "node_modules/router/lib/route.js"(exports2, module2) { + "use strict"; + var debug = require_src()("router:route"); + var Layer = require_layer(); + var { METHODS } = require("node:http"); + var slice = Array.prototype.slice; + var flatten = Array.prototype.flat; + var methods = METHODS.map((method) => method.toLowerCase()); + module2.exports = Route; + function Route(path) { + debug("new %o", path); + this.path = path; + this.stack = []; + this.methods = /* @__PURE__ */ Object.create(null); + } + __name(Route, "Route"); + Route.prototype._handlesMethod = /* @__PURE__ */ __name(function _handlesMethod(method) { + if (this.methods._all) { + return true; + } + let name = typeof method === "string" ? method.toLowerCase() : method; + if (name === "head" && !this.methods.head) { + name = "get"; + } + return Boolean(this.methods[name]); + }, "_handlesMethod"); + Route.prototype._methods = /* @__PURE__ */ __name(function _methods() { + const methods2 = Object.keys(this.methods); + if (this.methods.get && !this.methods.head) { + methods2.push("head"); + } + for (let i = 0; i < methods2.length; i++) { + methods2[i] = methods2[i].toUpperCase(); + } + return methods2; + }, "_methods"); + Route.prototype.dispatch = /* @__PURE__ */ __name(function dispatch(req, res, done) { + let idx = 0; + const stack = this.stack; + let sync = 0; + if (stack.length === 0) { + return done(); + } + let method = typeof req.method === "string" ? req.method.toLowerCase() : req.method; + if (method === "head" && !this.methods.head) { + method = "get"; + } + req.route = this; + next(); + function next(err) { + if (err && err === "route") { + return done(); + } + if (err && err === "router") { + return done(err); + } + if (idx >= stack.length) { + return done(err); + } + if (++sync > 100) { + return setImmediate(next, err); + } + let layer; + let match; + while (match !== true && idx < stack.length) { + layer = stack[idx++]; + match = !layer.method || layer.method === method; + } + if (match !== true) { + return done(err); + } + if (err) { + layer.handleError(err, req, res, next); + } else { + layer.handleRequest(req, res, next); + } + sync = 0; + } + __name(next, "next"); + }, "dispatch"); + Route.prototype.all = /* @__PURE__ */ __name(function all(handler) { + const callbacks = flatten.call(slice.call(arguments), Infinity); + if (callbacks.length === 0) { + throw new TypeError("argument handler is required"); + } + for (let i = 0; i < callbacks.length; i++) { + const fn = callbacks[i]; + if (typeof fn !== "function") { + throw new TypeError("argument handler must be a function"); + } + const layer = Layer("/", {}, fn); + layer.method = void 0; + this.methods._all = true; + this.stack.push(layer); + } + return this; + }, "all"); + methods.forEach(function(method) { + Route.prototype[method] = function(handler) { + const callbacks = flatten.call(slice.call(arguments), Infinity); + if (callbacks.length === 0) { + throw new TypeError("argument handler is required"); + } + for (let i = 0; i < callbacks.length; i++) { + const fn = callbacks[i]; + if (typeof fn !== "function") { + throw new TypeError("argument handler must be a function"); + } + debug("%s %s", method, this.path); + const layer = Layer("/", {}, fn); + layer.method = method; + this.methods[method] = true; + this.stack.push(layer); + } + return this; + }; + }); + } +}); + +// node_modules/router/index.js +var require_router = __commonJS({ + "node_modules/router/index.js"(exports2, module2) { + "use strict"; + var isPromise = require_is_promise(); + var Layer = require_layer(); + var { METHODS } = require("node:http"); + var parseUrl = require_parseurl(); + var Route = require_route(); + var debug = require_src()("router"); + var deprecate = require_depd()("router"); + var slice = Array.prototype.slice; + var flatten = Array.prototype.flat; + var methods = METHODS.map((method) => method.toLowerCase()); + module2.exports = Router; + module2.exports.Route = Route; + function Router(options) { + if (!(this instanceof Router)) { + return new Router(options); + } + const opts = options || {}; + function router(req, res, next) { + router.handle(req, res, next); + } + __name(router, "router"); + Object.setPrototypeOf(router, this); + router.caseSensitive = opts.caseSensitive; + router.mergeParams = opts.mergeParams; + router.params = {}; + router.strict = opts.strict; + router.stack = []; + return router; + } + __name(Router, "Router"); + Router.prototype = function() { + }; + Router.prototype.param = /* @__PURE__ */ __name(function param(name, fn) { + if (!name) { + throw new TypeError("argument name is required"); + } + if (typeof name !== "string") { + throw new TypeError("argument name must be a string"); + } + if (!fn) { + throw new TypeError("argument fn is required"); + } + if (typeof fn !== "function") { + throw new TypeError("argument fn must be a function"); + } + let params = this.params[name]; + if (!params) { + params = this.params[name] = []; + } + params.push(fn); + return this; + }, "param"); + Router.prototype.handle = /* @__PURE__ */ __name(function handle(req, res, callback) { + if (!callback) { + throw new TypeError("argument callback is required"); + } + debug("dispatching %s %s", req.method, req.url); + let idx = 0; + let methods2; + const protohost = getProtohost(req.url) || ""; + let removed = ""; + const self2 = this; + let slashAdded = false; + let sync = 0; + const paramcalled = {}; + const stack = this.stack; + const parentParams = req.params; + const parentUrl = req.baseUrl || ""; + let done = restore(callback, req, "baseUrl", "next", "params"); + req.next = next; + if (req.method === "OPTIONS") { + methods2 = []; + done = wrap(done, generateOptionsResponder(res, methods2)); + } + req.baseUrl = parentUrl; + req.originalUrl = req.originalUrl || req.url; + next(); + function next(err) { + let layerError = err === "route" ? null : err; + if (slashAdded) { + req.url = req.url.slice(1); + slashAdded = false; + } + if (removed.length !== 0) { + req.baseUrl = parentUrl; + req.url = protohost + removed + req.url.slice(protohost.length); + removed = ""; + } + if (layerError === "router") { + setImmediate(done, null); + return; + } + if (idx >= stack.length) { + setImmediate(done, layerError); + return; + } + if (++sync > 100) { + return setImmediate(next, err); + } + const path = getPathname(req); + if (path == null) { + return done(layerError); + } + let layer; + let match; + let route; + while (match !== true && idx < stack.length) { + layer = stack[idx++]; + match = matchLayer(layer, path); + route = layer.route; + if (typeof match !== "boolean") { + layerError = layerError || match; + } + if (match !== true) { + continue; + } + if (!route) { + continue; + } + if (layerError) { + match = false; + continue; + } + const method = req.method; + const hasMethod = route._handlesMethod(method); + if (!hasMethod && method === "OPTIONS" && methods2) { + methods2.push.apply(methods2, route._methods()); + } + if (!hasMethod && method !== "HEAD") { + match = false; + } + } + if (match !== true) { + return done(layerError); + } + if (route) { + req.route = route; + } + req.params = self2.mergeParams ? mergeParams(layer.params, parentParams) : layer.params; + const layerPath = layer.path; + processParams(self2.params, layer, paramcalled, req, res, function(err2) { + if (err2) { + next(layerError || err2); + } else if (route) { + layer.handleRequest(req, res, next); + } else { + trimPrefix(layer, layerError, layerPath, path); + } + sync = 0; + }); + } + __name(next, "next"); + function trimPrefix(layer, layerError, layerPath, path) { + if (layerPath.length !== 0) { + if (layerPath !== path.substring(0, layerPath.length)) { + next(layerError); + return; + } + const c = path[layerPath.length]; + if (c && c !== "/") { + next(layerError); + return; + } + debug("trim prefix (%s) from url %s", layerPath, req.url); + removed = layerPath; + req.url = protohost + req.url.slice(protohost.length + removed.length); + if (!protohost && req.url[0] !== "/") { + req.url = "/" + req.url; + slashAdded = true; + } + req.baseUrl = parentUrl + (removed[removed.length - 1] === "/" ? removed.substring(0, removed.length - 1) : removed); + } + debug("%s %s : %s", layer.name, layerPath, req.originalUrl); + if (layerError) { + layer.handleError(layerError, req, res, next); + } else { + layer.handleRequest(req, res, next); + } + } + __name(trimPrefix, "trimPrefix"); + }, "handle"); + Router.prototype.use = /* @__PURE__ */ __name(function use(handler) { + let offset = 0; + let path = "/"; + if (typeof handler !== "function") { + let arg = handler; + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + if (typeof arg !== "function") { + offset = 1; + path = handler; + } + } + const callbacks = flatten.call(slice.call(arguments, offset), Infinity); + if (callbacks.length === 0) { + throw new TypeError("argument handler is required"); + } + for (let i = 0; i < callbacks.length; i++) { + const fn = callbacks[i]; + if (typeof fn !== "function") { + throw new TypeError("argument handler must be a function"); + } + debug("use %o %s", path, fn.name || ""); + const layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: false, + end: false + }, fn); + layer.route = void 0; + this.stack.push(layer); + } + return this; + }, "use"); + Router.prototype.route = /* @__PURE__ */ __name(function route(path) { + const route2 = new Route(path); + const layer = new Layer(path, { + sensitive: this.caseSensitive, + strict: this.strict, + end: true + }, handle); + function handle(req, res, next) { + route2.dispatch(req, res, next); + } + __name(handle, "handle"); + layer.route = route2; + this.stack.push(layer); + return route2; + }, "route"); + methods.concat("all").forEach(function(method) { + Router.prototype[method] = function(path) { + const route = this.route(path); + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; + }); + function generateOptionsResponder(res, methods2) { + return /* @__PURE__ */ __name(function onDone(fn, err) { + if (err || methods2.length === 0) { + return fn(err); + } + trySendOptionsResponse(res, methods2, fn); + }, "onDone"); + } + __name(generateOptionsResponder, "generateOptionsResponder"); + function getPathname(req) { + try { + return parseUrl(req).pathname; + } catch (err) { + return void 0; + } + } + __name(getPathname, "getPathname"); + function getProtohost(url) { + if (typeof url !== "string" || url.length === 0 || url[0] === "/") { + return void 0; + } + const searchIndex = url.indexOf("?"); + const pathLength = searchIndex !== -1 ? searchIndex : url.length; + const fqdnIndex = url.substring(0, pathLength).indexOf("://"); + return fqdnIndex !== -1 ? url.substring(0, url.indexOf("/", 3 + fqdnIndex)) : void 0; + } + __name(getProtohost, "getProtohost"); + function matchLayer(layer, path) { + try { + return layer.match(path); + } catch (err) { + return err; + } + } + __name(matchLayer, "matchLayer"); + function mergeParams(params, parent) { + if (typeof parent !== "object" || !parent) { + return params; + } + const obj = Object.assign({}, parent); + if (!(0 in params) || !(0 in parent)) { + return Object.assign(obj, params); + } + let i = 0; + let o = 0; + while (i in params) { + i++; + } + while (o in parent) { + o++; + } + for (i--; i >= 0; i--) { + params[i + o] = params[i]; + if (i < o) { + delete params[i]; + } + } + return Object.assign(obj, params); + } + __name(mergeParams, "mergeParams"); + function processParams(params, layer, called, req, res, done) { + const keys = layer.keys; + if (!keys || keys.length === 0) { + return done(); + } + let i = 0; + let paramIndex = 0; + let key; + let paramVal; + let paramCallbacks; + let paramCalled; + function param(err) { + if (err) { + return done(err); + } + if (i >= keys.length) { + return done(); + } + paramIndex = 0; + key = keys[i++]; + paramVal = req.params[key]; + paramCallbacks = params[key]; + paramCalled = called[key]; + if (paramVal === void 0 || !paramCallbacks) { + return param(); + } + if (paramCalled && (paramCalled.match === paramVal || paramCalled.error && paramCalled.error !== "route")) { + req.params[key] = paramCalled.value; + return param(paramCalled.error); + } + called[key] = paramCalled = { + error: null, + match: paramVal, + value: paramVal + }; + paramCallback(); + } + __name(param, "param"); + function paramCallback(err) { + const fn = paramCallbacks[paramIndex++]; + paramCalled.value = req.params[key]; + if (err) { + paramCalled.error = err; + param(err); + return; + } + if (!fn) return param(); + try { + const ret = fn(req, res, paramCallback, paramVal, key); + if (isPromise(ret)) { + if (!(ret instanceof Promise)) { + deprecate("parameters that are Promise-like are deprecated, use a native Promise instead"); + } + ret.then(null, function(error) { + paramCallback(error || new Error("Rejected promise")); + }); + } + } catch (e) { + paramCallback(e); + } + } + __name(paramCallback, "paramCallback"); + param(); + } + __name(processParams, "processParams"); + function restore(fn, obj) { + const props = new Array(arguments.length - 2); + const vals = new Array(arguments.length - 2); + for (let i = 0; i < props.length; i++) { + props[i] = arguments[i + 2]; + vals[i] = obj[props[i]]; + } + return function() { + for (let i = 0; i < props.length; i++) { + obj[props[i]] = vals[i]; + } + return fn.apply(this, arguments); + }; + } + __name(restore, "restore"); + function sendOptionsResponse(res, methods2) { + const options = /* @__PURE__ */ Object.create(null); + for (let i = 0; i < methods2.length; i++) { + options[methods2[i]] = true; + } + const allow = Object.keys(options).sort().join(", "); + res.setHeader("Allow", allow); + res.setHeader("Content-Length", Buffer.byteLength(allow)); + res.setHeader("Content-Type", "text/plain"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.end(allow); + } + __name(sendOptionsResponse, "sendOptionsResponse"); + function trySendOptionsResponse(res, methods2, next) { + try { + sendOptionsResponse(res, methods2); + } catch (err) { + next(err); + } + } + __name(trySendOptionsResponse, "trySendOptionsResponse"); + function wrap(old, fn) { + return /* @__PURE__ */ __name(function proxy() { + const args = new Array(arguments.length + 1); + args[0] = old; + for (let i = 0, len = arguments.length; i < len; i++) { + args[i + 1] = arguments[i]; + } + fn.apply(this, args); + }, "proxy"); + } + __name(wrap, "wrap"); + } +}); + +// node_modules/express/lib/application.js +var require_application = __commonJS({ + "node_modules/express/lib/application.js"(exports2, module2) { + "use strict"; + var finalhandler = require_finalhandler(); + var debug = require_src()("express:application"); + var View = require_view(); + var http = require("node:http"); + var methods = require_utils11().methods; + var compileETag = require_utils11().compileETag; + var compileQueryParser = require_utils11().compileQueryParser; + var compileTrust = require_utils11().compileTrust; + var resolve = require("node:path").resolve; + var once = require_once(); + var Router = require_router(); + var slice = Array.prototype.slice; + var flatten = Array.prototype.flat; + var app = exports2 = module2.exports = {}; + var trustProxyDefaultSymbol = "@@symbol:trust_proxy_default"; + app.init = /* @__PURE__ */ __name(function init() { + var router = null; + this.cache = /* @__PURE__ */ Object.create(null); + this.engines = /* @__PURE__ */ Object.create(null); + this.settings = /* @__PURE__ */ Object.create(null); + this.defaultConfiguration(); + Object.defineProperty(this, "router", { + configurable: true, + enumerable: true, + get: /* @__PURE__ */ __name(function getrouter() { + if (router === null) { + router = new Router({ + caseSensitive: this.enabled("case sensitive routing"), + strict: this.enabled("strict routing") + }); + } + return router; + }, "getrouter") + }); + }, "init"); + app.defaultConfiguration = /* @__PURE__ */ __name(function defaultConfiguration() { + var env = process.env.NODE_ENV || "development"; + this.enable("x-powered-by"); + this.set("etag", "weak"); + this.set("env", env); + this.set("query parser", "simple"); + this.set("subdomain offset", 2); + this.set("trust proxy", false); + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: true + }); + debug("booting in %s mode", env); + this.on("mount", /* @__PURE__ */ __name(function onmount(parent) { + if (this.settings[trustProxyDefaultSymbol] === true && typeof parent.settings["trust proxy fn"] === "function") { + delete this.settings["trust proxy"]; + delete this.settings["trust proxy fn"]; + } + Object.setPrototypeOf(this.request, parent.request); + Object.setPrototypeOf(this.response, parent.response); + Object.setPrototypeOf(this.engines, parent.engines); + Object.setPrototypeOf(this.settings, parent.settings); + }, "onmount")); + this.locals = /* @__PURE__ */ Object.create(null); + this.mountpath = "/"; + this.locals.settings = this.settings; + this.set("view", View); + this.set("views", resolve("views")); + this.set("jsonp callback name", "callback"); + if (env === "production") { + this.enable("view cache"); + } + }, "defaultConfiguration"); + app.handle = /* @__PURE__ */ __name(function handle(req, res, callback) { + var done = callback || finalhandler(req, res, { + env: this.get("env"), + onerror: logerror.bind(this) + }); + if (this.enabled("x-powered-by")) { + res.setHeader("X-Powered-By", "Express"); + } + req.res = res; + res.req = req; + Object.setPrototypeOf(req, this.request); + Object.setPrototypeOf(res, this.response); + if (!res.locals) { + res.locals = /* @__PURE__ */ Object.create(null); + } + this.router.handle(req, res, done); + }, "handle"); + app.use = /* @__PURE__ */ __name(function use(fn) { + var offset = 0; + var path = "/"; + if (typeof fn !== "function") { + var arg = fn; + while (Array.isArray(arg) && arg.length !== 0) { + arg = arg[0]; + } + if (typeof arg !== "function") { + offset = 1; + path = fn; + } + } + var fns = flatten.call(slice.call(arguments, offset), Infinity); + if (fns.length === 0) { + throw new TypeError("app.use() requires a middleware function"); + } + var router = this.router; + fns.forEach(function(fn2) { + if (!fn2 || !fn2.handle || !fn2.set) { + return router.use(path, fn2); + } + debug(".use app under %s", path); + fn2.mountpath = path; + fn2.parent = this; + router.use(path, /* @__PURE__ */ __name(function mounted_app(req, res, next) { + var orig = req.app; + fn2.handle(req, res, function(err) { + Object.setPrototypeOf(req, orig.request); + Object.setPrototypeOf(res, orig.response); + next(err); + }); + }, "mounted_app")); + fn2.emit("mount", this); + }, this); + return this; + }, "use"); + app.route = /* @__PURE__ */ __name(function route(path) { + return this.router.route(path); + }, "route"); + app.engine = /* @__PURE__ */ __name(function engine(ext, fn) { + if (typeof fn !== "function") { + throw new Error("callback function required"); + } + var extension = ext[0] !== "." ? "." + ext : ext; + this.engines[extension] = fn; + return this; + }, "engine"); + app.param = /* @__PURE__ */ __name(function param(name, fn) { + if (Array.isArray(name)) { + for (var i = 0; i < name.length; i++) { + this.param(name[i], fn); + } + return this; + } + this.router.param(name, fn); + return this; + }, "param"); + app.set = /* @__PURE__ */ __name(function set(setting, val) { + if (arguments.length === 1) { + return this.settings[setting]; + } + debug('set "%s" to %o', setting, val); + this.settings[setting] = val; + switch (setting) { + case "etag": + this.set("etag fn", compileETag(val)); + break; + case "query parser": + this.set("query parser fn", compileQueryParser(val)); + break; + case "trust proxy": + this.set("trust proxy fn", compileTrust(val)); + Object.defineProperty(this.settings, trustProxyDefaultSymbol, { + configurable: true, + value: false + }); + break; + } + return this; + }, "set"); + app.path = /* @__PURE__ */ __name(function path() { + return this.parent ? this.parent.path() + this.mountpath : ""; + }, "path"); + app.enabled = /* @__PURE__ */ __name(function enabled(setting) { + return Boolean(this.set(setting)); + }, "enabled"); + app.disabled = /* @__PURE__ */ __name(function disabled(setting) { + return !this.set(setting); + }, "disabled"); + app.enable = /* @__PURE__ */ __name(function enable(setting) { + return this.set(setting, true); + }, "enable"); + app.disable = /* @__PURE__ */ __name(function disable(setting) { + return this.set(setting, false); + }, "disable"); + methods.forEach(function(method) { + app[method] = function(path) { + if (method === "get" && arguments.length === 1) { + return this.set(path); + } + var route = this.route(path); + route[method].apply(route, slice.call(arguments, 1)); + return this; + }; + }); + app.all = /* @__PURE__ */ __name(function all(path) { + var route = this.route(path); + var args = slice.call(arguments, 1); + for (var i = 0; i < methods.length; i++) { + route[methods[i]].apply(route, args); + } + return this; + }, "all"); + app.render = /* @__PURE__ */ __name(function render(name, options, callback) { + var cache = this.cache; + var done = callback; + var engines = this.engines; + var opts = options; + var view; + if (typeof options === "function") { + done = options; + opts = {}; + } + var renderOptions = { ...this.locals, ...opts._locals, ...opts }; + if (renderOptions.cache == null) { + renderOptions.cache = this.enabled("view cache"); + } + if (renderOptions.cache) { + view = cache[name]; + } + if (!view) { + var View2 = this.get("view"); + view = new View2(name, { + defaultEngine: this.get("view engine"), + root: this.get("views"), + engines + }); + if (!view.path) { + var dirs = Array.isArray(view.root) && view.root.length > 1 ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' : 'directory "' + view.root + '"'; + var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs); + err.view = view; + return done(err); + } + if (renderOptions.cache) { + cache[name] = view; + } + } + tryRender(view, renderOptions, done); + }, "render"); + app.listen = /* @__PURE__ */ __name(function listen() { + var server = http.createServer(this); + var args = slice.call(arguments); + if (typeof args[args.length - 1] === "function") { + var done = args[args.length - 1] = once(args[args.length - 1]); + server.once("error", done); + } + return server.listen.apply(server, args); + }, "listen"); + function logerror(err) { + if (this.get("env") !== "test") console.error(err.stack || err.toString()); + } + __name(logerror, "logerror"); + function tryRender(view, options, callback) { + try { + view.render(options, callback); + } catch (err) { + callback(err); + } + } + __name(tryRender, "tryRender"); + } +}); + +// node_modules/negotiator/lib/charset.js +var require_charset = __commonJS({ + "node_modules/negotiator/lib/charset.js"(exports2, module2) { + "use strict"; + module2.exports = preferredCharsets; + module2.exports.preferredCharsets = preferredCharsets; + var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/; + function parseAcceptCharset(accept) { + var accepts = accept.split(","); + for (var i = 0, j = 0; i < accepts.length; i++) { + var charset = parseCharset(accepts[i].trim(), i); + if (charset) { + accepts[j++] = charset; + } + } + accepts.length = j; + return accepts; + } + __name(parseAcceptCharset, "parseAcceptCharset"); + function parseCharset(str, i) { + var match = simpleCharsetRegExp.exec(str); + if (!match) return null; + var charset = match[1]; + var q = 1; + if (match[2]) { + var params = match[2].split(";"); + for (var j = 0; j < params.length; j++) { + var p = params[j].trim().split("="); + if (p[0] === "q") { + q = parseFloat(p[1]); + break; + } + } + } + return { + charset, + q, + i + }; + } + __name(parseCharset, "parseCharset"); + function getCharsetPriority(charset, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(charset, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + __name(getCharsetPriority, "getCharsetPriority"); + function specify(charset, spec, index) { + var s = 0; + if (spec.charset.toLowerCase() === charset.toLowerCase()) { + s |= 1; + } else if (spec.charset !== "*") { + return null; + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + __name(specify, "specify"); + function preferredCharsets(accept, provided) { + var accepts = parseAcceptCharset(accept === void 0 ? "*" : accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullCharset); + } + var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) { + return getCharsetPriority(type, accepts, index); + }, "getPriority")); + return priorities.filter(isQuality).sort(compareSpecs).map(/* @__PURE__ */ __name(function getCharset(priority) { + return provided[priorities.indexOf(priority)]; + }, "getCharset")); + } + __name(preferredCharsets, "preferredCharsets"); + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + __name(compareSpecs, "compareSpecs"); + function getFullCharset(spec) { + return spec.charset; + } + __name(getFullCharset, "getFullCharset"); + function isQuality(spec) { + return spec.q > 0; + } + __name(isQuality, "isQuality"); + } +}); + +// node_modules/negotiator/lib/encoding.js +var require_encoding = __commonJS({ + "node_modules/negotiator/lib/encoding.js"(exports2, module2) { + "use strict"; + module2.exports = preferredEncodings; + module2.exports.preferredEncodings = preferredEncodings; + var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/; + function parseAcceptEncoding(accept) { + var accepts = accept.split(","); + var hasIdentity = false; + var minQuality = 1; + for (var i = 0, j = 0; i < accepts.length; i++) { + var encoding = parseEncoding(accepts[i].trim(), i); + if (encoding) { + accepts[j++] = encoding; + hasIdentity = hasIdentity || specify("identity", encoding); + minQuality = Math.min(minQuality, encoding.q || 1); + } + } + if (!hasIdentity) { + accepts[j++] = { + encoding: "identity", + q: minQuality, + i + }; + } + accepts.length = j; + return accepts; + } + __name(parseAcceptEncoding, "parseAcceptEncoding"); + function parseEncoding(str, i) { + var match = simpleEncodingRegExp.exec(str); + if (!match) return null; + var encoding = match[1]; + var q = 1; + if (match[2]) { + var params = match[2].split(";"); + for (var j = 0; j < params.length; j++) { + var p = params[j].trim().split("="); + if (p[0] === "q") { + q = parseFloat(p[1]); + break; + } + } + } + return { + encoding, + q, + i + }; + } + __name(parseEncoding, "parseEncoding"); + function getEncodingPriority(encoding, accepted, index) { + var priority = { encoding, o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(encoding, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + __name(getEncodingPriority, "getEncodingPriority"); + function specify(encoding, spec, index) { + var s = 0; + if (spec.encoding.toLowerCase() === encoding.toLowerCase()) { + s |= 1; + } else if (spec.encoding !== "*") { + return null; + } + return { + encoding, + i: index, + o: spec.i, + q: spec.q, + s + }; + } + __name(specify, "specify"); + function preferredEncodings(accept, provided, preferred) { + var accepts = parseAcceptEncoding(accept || ""); + var comparator = preferred ? /* @__PURE__ */ __name(function comparator2(a, b) { + if (a.q !== b.q) { + return b.q - a.q; + } + var aPreferred = preferred.indexOf(a.encoding); + var bPreferred = preferred.indexOf(b.encoding); + if (aPreferred === -1 && bPreferred === -1) { + return b.s - a.s || a.o - b.o || a.i - b.i; + } + if (aPreferred !== -1 && bPreferred !== -1) { + return aPreferred - bPreferred; + } + return aPreferred === -1 ? 1 : -1; + }, "comparator") : compareSpecs; + if (!provided) { + return accepts.filter(isQuality).sort(comparator).map(getFullEncoding); + } + var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) { + return getEncodingPriority(type, accepts, index); + }, "getPriority")); + return priorities.filter(isQuality).sort(comparator).map(/* @__PURE__ */ __name(function getEncoding(priority) { + return provided[priorities.indexOf(priority)]; + }, "getEncoding")); + } + __name(preferredEncodings, "preferredEncodings"); + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i; + } + __name(compareSpecs, "compareSpecs"); + function getFullEncoding(spec) { + return spec.encoding; + } + __name(getFullEncoding, "getFullEncoding"); + function isQuality(spec) { + return spec.q > 0; + } + __name(isQuality, "isQuality"); + } +}); + +// node_modules/negotiator/lib/language.js +var require_language = __commonJS({ + "node_modules/negotiator/lib/language.js"(exports2, module2) { + "use strict"; + module2.exports = preferredLanguages; + module2.exports.preferredLanguages = preferredLanguages; + var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/; + function parseAcceptLanguage(accept) { + var accepts = accept.split(","); + for (var i = 0, j = 0; i < accepts.length; i++) { + var language = parseLanguage(accepts[i].trim(), i); + if (language) { + accepts[j++] = language; + } + } + accepts.length = j; + return accepts; + } + __name(parseAcceptLanguage, "parseAcceptLanguage"); + function parseLanguage(str, i) { + var match = simpleLanguageRegExp.exec(str); + if (!match) return null; + var prefix = match[1]; + var suffix = match[2]; + var full = prefix; + if (suffix) full += "-" + suffix; + var q = 1; + if (match[3]) { + var params = match[3].split(";"); + for (var j = 0; j < params.length; j++) { + var p = params[j].split("="); + if (p[0] === "q") q = parseFloat(p[1]); + } + } + return { + prefix, + suffix, + q, + i, + full + }; + } + __name(parseLanguage, "parseLanguage"); + function getLanguagePriority(language, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(language, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + __name(getLanguagePriority, "getLanguagePriority"); + function specify(language, spec, index) { + var p = parseLanguage(language); + if (!p) return null; + var s = 0; + if (spec.full.toLowerCase() === p.full.toLowerCase()) { + s |= 4; + } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) { + s |= 2; + } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) { + s |= 1; + } else if (spec.full !== "*") { + return null; + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + __name(specify, "specify"); + function preferredLanguages(accept, provided) { + var accepts = parseAcceptLanguage(accept === void 0 ? "*" : accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullLanguage); + } + var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) { + return getLanguagePriority(type, accepts, index); + }, "getPriority")); + return priorities.filter(isQuality).sort(compareSpecs).map(/* @__PURE__ */ __name(function getLanguage(priority) { + return provided[priorities.indexOf(priority)]; + }, "getLanguage")); + } + __name(preferredLanguages, "preferredLanguages"); + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + __name(compareSpecs, "compareSpecs"); + function getFullLanguage(spec) { + return spec.full; + } + __name(getFullLanguage, "getFullLanguage"); + function isQuality(spec) { + return spec.q > 0; + } + __name(isQuality, "isQuality"); + } +}); + +// node_modules/negotiator/lib/mediaType.js +var require_mediaType = __commonJS({ + "node_modules/negotiator/lib/mediaType.js"(exports2, module2) { + "use strict"; + module2.exports = preferredMediaTypes; + module2.exports.preferredMediaTypes = preferredMediaTypes; + var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/; + function parseAccept(accept) { + var accepts = splitMediaTypes(accept); + for (var i = 0, j = 0; i < accepts.length; i++) { + var mediaType = parseMediaType(accepts[i].trim(), i); + if (mediaType) { + accepts[j++] = mediaType; + } + } + accepts.length = j; + return accepts; + } + __name(parseAccept, "parseAccept"); + function parseMediaType(str, i) { + var match = simpleMediaTypeRegExp.exec(str); + if (!match) return null; + var params = /* @__PURE__ */ Object.create(null); + var q = 1; + var subtype = match[2]; + var type = match[1]; + if (match[3]) { + var kvps = splitParameters(match[3]).map(splitKeyValuePair); + for (var j = 0; j < kvps.length; j++) { + var pair = kvps[j]; + var key = pair[0].toLowerCase(); + var val = pair[1]; + var value = val && val[0] === '"' && val[val.length - 1] === '"' ? val.slice(1, -1) : val; + if (key === "q") { + q = parseFloat(value); + break; + } + params[key] = value; + } + } + return { + type, + subtype, + params, + q, + i + }; + } + __name(parseMediaType, "parseMediaType"); + function getMediaTypePriority(type, accepted, index) { + var priority = { o: -1, q: 0, s: 0 }; + for (var i = 0; i < accepted.length; i++) { + var spec = specify(type, accepted[i], index); + if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { + priority = spec; + } + } + return priority; + } + __name(getMediaTypePriority, "getMediaTypePriority"); + function specify(type, spec, index) { + var p = parseMediaType(type); + var s = 0; + if (!p) { + return null; + } + if (spec.type.toLowerCase() == p.type.toLowerCase()) { + s |= 4; + } else if (spec.type != "*") { + return null; + } + if (spec.subtype.toLowerCase() == p.subtype.toLowerCase()) { + s |= 2; + } else if (spec.subtype != "*") { + return null; + } + var keys = Object.keys(spec.params); + if (keys.length > 0) { + if (keys.every(function(k) { + return spec.params[k] == "*" || (spec.params[k] || "").toLowerCase() == (p.params[k] || "").toLowerCase(); + })) { + s |= 1; + } else { + return null; + } + } + return { + i: index, + o: spec.i, + q: spec.q, + s + }; + } + __name(specify, "specify"); + function preferredMediaTypes(accept, provided) { + var accepts = parseAccept(accept === void 0 ? "*/*" : accept || ""); + if (!provided) { + return accepts.filter(isQuality).sort(compareSpecs).map(getFullType); + } + var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) { + return getMediaTypePriority(type, accepts, index); + }, "getPriority")); + return priorities.filter(isQuality).sort(compareSpecs).map(/* @__PURE__ */ __name(function getType(priority) { + return provided[priorities.indexOf(priority)]; + }, "getType")); + } + __name(preferredMediaTypes, "preferredMediaTypes"); + function compareSpecs(a, b) { + return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0; + } + __name(compareSpecs, "compareSpecs"); + function getFullType(spec) { + return spec.type + "/" + spec.subtype; + } + __name(getFullType, "getFullType"); + function isQuality(spec) { + return spec.q > 0; + } + __name(isQuality, "isQuality"); + function quoteCount(string) { + var count = 0; + var index = 0; + while ((index = string.indexOf('"', index)) !== -1) { + count++; + index++; + } + return count; + } + __name(quoteCount, "quoteCount"); + function splitKeyValuePair(str) { + var index = str.indexOf("="); + var key; + var val; + if (index === -1) { + key = str; + } else { + key = str.slice(0, index); + val = str.slice(index + 1); + } + return [key, val]; + } + __name(splitKeyValuePair, "splitKeyValuePair"); + function splitMediaTypes(accept) { + var accepts = accept.split(","); + for (var i = 1, j = 0; i < accepts.length; i++) { + if (quoteCount(accepts[j]) % 2 == 0) { + accepts[++j] = accepts[i]; + } else { + accepts[j] += "," + accepts[i]; + } + } + accepts.length = j + 1; + return accepts; + } + __name(splitMediaTypes, "splitMediaTypes"); + function splitParameters(str) { + var parameters = str.split(";"); + for (var i = 1, j = 0; i < parameters.length; i++) { + if (quoteCount(parameters[j]) % 2 == 0) { + parameters[++j] = parameters[i]; + } else { + parameters[j] += ";" + parameters[i]; + } + } + parameters.length = j + 1; + for (var i = 0; i < parameters.length; i++) { + parameters[i] = parameters[i].trim(); + } + return parameters; + } + __name(splitParameters, "splitParameters"); + } +}); + +// node_modules/negotiator/index.js +var require_negotiator = __commonJS({ + "node_modules/negotiator/index.js"(exports2, module2) { + "use strict"; + var preferredCharsets = require_charset(); + var preferredEncodings = require_encoding(); + var preferredLanguages = require_language(); + var preferredMediaTypes = require_mediaType(); + module2.exports = Negotiator; + module2.exports.Negotiator = Negotiator; + function Negotiator(request) { + if (!(this instanceof Negotiator)) { + return new Negotiator(request); + } + this.request = request; + } + __name(Negotiator, "Negotiator"); + Negotiator.prototype.charset = /* @__PURE__ */ __name(function charset(available) { + var set = this.charsets(available); + return set && set[0]; + }, "charset"); + Negotiator.prototype.charsets = /* @__PURE__ */ __name(function charsets(available) { + return preferredCharsets(this.request.headers["accept-charset"], available); + }, "charsets"); + Negotiator.prototype.encoding = /* @__PURE__ */ __name(function encoding(available, opts) { + var set = this.encodings(available, opts); + return set && set[0]; + }, "encoding"); + Negotiator.prototype.encodings = /* @__PURE__ */ __name(function encodings(available, options) { + var opts = options || {}; + return preferredEncodings(this.request.headers["accept-encoding"], available, opts.preferred); + }, "encodings"); + Negotiator.prototype.language = /* @__PURE__ */ __name(function language(available) { + var set = this.languages(available); + return set && set[0]; + }, "language"); + Negotiator.prototype.languages = /* @__PURE__ */ __name(function languages(available) { + return preferredLanguages(this.request.headers["accept-language"], available); + }, "languages"); + Negotiator.prototype.mediaType = /* @__PURE__ */ __name(function mediaType(available) { + var set = this.mediaTypes(available); + return set && set[0]; + }, "mediaType"); + Negotiator.prototype.mediaTypes = /* @__PURE__ */ __name(function mediaTypes(available) { + return preferredMediaTypes(this.request.headers.accept, available); + }, "mediaTypes"); + Negotiator.prototype.preferredCharset = Negotiator.prototype.charset; + Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets; + Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding; + Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings; + Negotiator.prototype.preferredLanguage = Negotiator.prototype.language; + Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages; + Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType; + Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes; + } +}); + +// node_modules/accepts/index.js +var require_accepts = __commonJS({ + "node_modules/accepts/index.js"(exports2, module2) { + "use strict"; + var Negotiator = require_negotiator(); + var mime = require_mime_types(); + module2.exports = Accepts; + function Accepts(req) { + if (!(this instanceof Accepts)) { + return new Accepts(req); + } + this.headers = req.headers; + this.negotiator = new Negotiator(req); + } + __name(Accepts, "Accepts"); + Accepts.prototype.type = Accepts.prototype.types = function(types_) { + var types = types_; + if (types && !Array.isArray(types)) { + types = new Array(arguments.length); + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i]; + } + } + if (!types || types.length === 0) { + return this.negotiator.mediaTypes(); + } + if (!this.headers.accept) { + return types[0]; + } + var mimes = types.map(extToMime); + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)); + var first = accepts[0]; + return first ? types[mimes.indexOf(first)] : false; + }; + Accepts.prototype.encoding = Accepts.prototype.encodings = function(encodings_) { + var encodings = encodings_; + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length); + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i]; + } + } + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings(); + } + return this.negotiator.encodings(encodings)[0] || false; + }; + Accepts.prototype.charset = Accepts.prototype.charsets = function(charsets_) { + var charsets = charsets_; + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length); + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i]; + } + } + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets(); + } + return this.negotiator.charsets(charsets)[0] || false; + }; + Accepts.prototype.lang = Accepts.prototype.langs = Accepts.prototype.language = Accepts.prototype.languages = function(languages_) { + var languages = languages_; + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length); + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i]; + } + } + if (!languages || languages.length === 0) { + return this.negotiator.languages(); + } + return this.negotiator.languages(languages)[0] || false; + }; + function extToMime(type) { + return type.indexOf("/") === -1 ? mime.lookup(type) : type; + } + __name(extToMime, "extToMime"); + function validMime(type) { + return typeof type === "string"; + } + __name(validMime, "validMime"); + } +}); + +// node_modules/fresh/index.js +var require_fresh = __commonJS({ + "node_modules/fresh/index.js"(exports2, module2) { + "use strict"; + var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/; + module2.exports = fresh; + function fresh(reqHeaders, resHeaders) { + var modifiedSince = reqHeaders["if-modified-since"]; + var noneMatch = reqHeaders["if-none-match"]; + if (!modifiedSince && !noneMatch) { + return false; + } + var cacheControl = reqHeaders["cache-control"]; + if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) { + return false; + } + if (noneMatch) { + if (noneMatch === "*") { + return true; + } + var etag = resHeaders.etag; + if (!etag) { + return false; + } + var matches = parseTokenList(noneMatch); + for (var i = 0; i < matches.length; i++) { + var match = matches[i]; + if (match === etag || match === "W/" + etag || "W/" + match === etag) { + return true; + } + } + return false; + } + if (modifiedSince) { + var lastModified = resHeaders["last-modified"]; + var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince)); + if (modifiedStale) { + return false; + } + } + return true; + } + __name(fresh, "fresh"); + function parseHttpDate(date) { + var timestamp = date && Date.parse(date); + return typeof timestamp === "number" ? timestamp : NaN; + } + __name(parseHttpDate, "parseHttpDate"); + function parseTokenList(str) { + var end = 0; + var list = []; + var start = 0; + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i + 1; + } + break; + case 44: + list.push(str.substring(start, end)); + start = end = i + 1; + break; + default: + end = i + 1; + break; + } + } + list.push(str.substring(start, end)); + return list; + } + __name(parseTokenList, "parseTokenList"); + } +}); + +// node_modules/range-parser/index.js +var require_range_parser = __commonJS({ + "node_modules/range-parser/index.js"(exports2, module2) { + "use strict"; + module2.exports = rangeParser; + function rangeParser(size, str, options) { + if (typeof str !== "string") { + throw new TypeError("argument str must be a string"); + } + var index = str.indexOf("="); + if (index === -1) { + return -2; + } + var arr = str.slice(index + 1).split(","); + var ranges = []; + ranges.type = str.slice(0, index); + for (var i = 0; i < arr.length; i++) { + var indexOf = arr[i].indexOf("-"); + if (indexOf === -1) { + return -2; + } + var startStr = arr[i].slice(0, indexOf).trim(); + var endStr = arr[i].slice(indexOf + 1).trim(); + var start = parsePos(startStr); + var end = parsePos(endStr); + if (startStr.length === 0) { + start = size - end; + end = size - 1; + } else if (endStr.length === 0) { + end = size - 1; + } + if (end > size - 1) { + end = size - 1; + } + if (isNaN(start) || isNaN(end)) { + return -2; + } + if (start > end || start < 0) { + continue; + } + ranges.push({ + start, + end + }); + } + if (ranges.length < 1) { + return -1; + } + return options && options.combine ? combineRanges(ranges) : ranges; + } + __name(rangeParser, "rangeParser"); + function parsePos(str) { + if (/^\d+$/.test(str)) return Number(str); + return NaN; + } + __name(parsePos, "parsePos"); + function combineRanges(ranges) { + var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart); + for (var j = 0, i = 1; i < ordered.length; i++) { + var range = ordered[i]; + var current = ordered[j]; + if (range.start > current.end + 1) { + ordered[++j] = range; + } else if (range.end > current.end) { + current.end = range.end; + current.index = Math.min(current.index, range.index); + } + } + ordered.length = j + 1; + var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex); + combined.type = ranges.type; + return combined; + } + __name(combineRanges, "combineRanges"); + function mapWithIndex(range, index) { + return { + start: range.start, + end: range.end, + index + }; + } + __name(mapWithIndex, "mapWithIndex"); + function mapWithoutIndex(range) { + return { + start: range.start, + end: range.end + }; + } + __name(mapWithoutIndex, "mapWithoutIndex"); + function sortByRangeIndex(a, b) { + return a.index - b.index; + } + __name(sortByRangeIndex, "sortByRangeIndex"); + function sortByRangeStart(a, b) { + return a.start - b.start; + } + __name(sortByRangeStart, "sortByRangeStart"); + } +}); + +// node_modules/express/lib/request.js +var require_request = __commonJS({ + "node_modules/express/lib/request.js"(exports2, module2) { + "use strict"; + var accepts = require_accepts(); + var isIP = require("node:net").isIP; + var typeis = require_type_is(); + var http = require("node:http"); + var fresh = require_fresh(); + var parseRange = require_range_parser(); + var parse = require_parseurl(); + var proxyaddr = require_proxy_addr(); + var req = Object.create(http.IncomingMessage.prototype); + module2.exports = req; + req.get = req.header = /* @__PURE__ */ __name(function header(name) { + if (!name) { + throw new TypeError("name argument is required to req.get"); + } + if (typeof name !== "string") { + throw new TypeError("name must be a string to req.get"); + } + var lc = name.toLowerCase(); + switch (lc) { + case "referer": + case "referrer": + return this.headers.referrer || this.headers.referer; + default: + return this.headers[lc]; + } + }, "header"); + req.accepts = function() { + var accept = accepts(this); + return accept.types.apply(accept, arguments); + }; + req.acceptsEncodings = function() { + var accept = accepts(this); + return accept.encodings.apply(accept, arguments); + }; + req.acceptsCharsets = function() { + var accept = accepts(this); + return accept.charsets.apply(accept, arguments); + }; + req.acceptsLanguages = function(...languages) { + return accepts(this).languages(...languages); + }; + req.range = /* @__PURE__ */ __name(function range(size, options) { + var range2 = this.get("Range"); + if (!range2) return; + return parseRange(size, range2, options); + }, "range"); + defineGetter(req, "query", /* @__PURE__ */ __name(function query() { + var queryparse = this.app.get("query parser fn"); + if (!queryparse) { + return /* @__PURE__ */ Object.create(null); + } + var querystring = parse(this).query; + return queryparse(querystring); + }, "query")); + req.is = /* @__PURE__ */ __name(function is(types) { + var arr = types; + if (!Array.isArray(types)) { + arr = new Array(arguments.length); + for (var i = 0; i < arr.length; i++) { + arr[i] = arguments[i]; + } + } + return typeis(this, arr); + }, "is"); + defineGetter(req, "protocol", /* @__PURE__ */ __name(function protocol() { + var proto = this.socket.encrypted ? "https" : "http"; + var trust = this.app.get("trust proxy fn"); + if (!trust(this.socket.remoteAddress, 0)) { + return proto; + } + var header = this.get("X-Forwarded-Proto") || proto; + var index = header.indexOf(","); + return index !== -1 ? header.substring(0, index).trim() : header.trim(); + }, "protocol")); + defineGetter(req, "secure", /* @__PURE__ */ __name(function secure() { + return this.protocol === "https"; + }, "secure")); + defineGetter(req, "ip", /* @__PURE__ */ __name(function ip() { + var trust = this.app.get("trust proxy fn"); + return proxyaddr(this, trust); + }, "ip")); + defineGetter(req, "ips", /* @__PURE__ */ __name(function ips() { + var trust = this.app.get("trust proxy fn"); + var addrs = proxyaddr.all(this, trust); + addrs.reverse().pop(); + return addrs; + }, "ips")); + defineGetter(req, "subdomains", /* @__PURE__ */ __name(function subdomains() { + var hostname = this.hostname; + if (!hostname) return []; + var offset = this.app.get("subdomain offset"); + var subdomains2 = !isIP(hostname) ? hostname.split(".").reverse() : [hostname]; + return subdomains2.slice(offset); + }, "subdomains")); + defineGetter(req, "path", /* @__PURE__ */ __name(function path() { + return parse(this).pathname; + }, "path")); + defineGetter(req, "host", /* @__PURE__ */ __name(function host() { + var trust = this.app.get("trust proxy fn"); + var val = this.get("X-Forwarded-Host"); + if (!val || !trust(this.socket.remoteAddress, 0)) { + val = this.get("Host"); + } else if (val.indexOf(",") !== -1) { + val = val.substring(0, val.indexOf(",")).trimRight(); + } + return val || void 0; + }, "host")); + defineGetter(req, "hostname", /* @__PURE__ */ __name(function hostname() { + var host = this.host; + if (!host) return; + var offset = host[0] === "[" ? host.indexOf("]") + 1 : 0; + var index = host.indexOf(":", offset); + return index !== -1 ? host.substring(0, index) : host; + }, "hostname")); + defineGetter(req, "fresh", function() { + var method = this.method; + var res = this.res; + var status = res.statusCode; + if ("GET" !== method && "HEAD" !== method) return false; + if (status >= 200 && status < 300 || 304 === status) { + return fresh(this.headers, { + "etag": res.get("ETag"), + "last-modified": res.get("Last-Modified") + }); + } + return false; + }); + defineGetter(req, "stale", /* @__PURE__ */ __name(function stale() { + return !this.fresh; + }, "stale")); + defineGetter(req, "xhr", /* @__PURE__ */ __name(function xhr() { + var val = this.get("X-Requested-With") || ""; + return val.toLowerCase() === "xmlhttprequest"; + }, "xhr")); + function defineGetter(obj, name, getter) { + Object.defineProperty(obj, name, { + configurable: true, + enumerable: true, + get: getter + }); + } + __name(defineGetter, "defineGetter"); + } +}); + +// node_modules/content-disposition/index.js +var require_content_disposition = __commonJS({ + "node_modules/content-disposition/index.js"(exports2, module2) { + "use strict"; + module2.exports = contentDisposition; + module2.exports.parse = parse; + var utf8Decoder = new TextDecoder("utf-8"); + var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g; + var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g; + var QESC_REGEXP = /\\([\u0000-\u007f])/g; + var QUOTE_REGEXP = /([\\"])/g; + var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g; + var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/; + var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/; + var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/; + var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/; + function contentDisposition(filename, options) { + var opts = options || {}; + var type = opts.type || "attachment"; + var params = createparams(filename, opts.fallback); + return format(new ContentDisposition(type, params)); + } + __name(contentDisposition, "contentDisposition"); + function createparams(filename, fallback) { + if (filename === void 0) { + return; + } + var params = {}; + if (typeof filename !== "string") { + throw new TypeError("filename must be a string"); + } + if (fallback === void 0) { + fallback = true; + } + if (typeof fallback !== "string" && typeof fallback !== "boolean") { + throw new TypeError("fallback must be a string or boolean"); + } + if (typeof fallback === "string" && NON_LATIN1_REGEXP.test(fallback)) { + throw new TypeError("fallback must be ISO-8859-1 string"); + } + var name = basename(filename); + var isQuotedString = TEXT_REGEXP.test(name); + var fallbackName = typeof fallback !== "string" ? fallback && getlatin1(name) : basename(fallback); + var hasFallback = typeof fallbackName === "string" && fallbackName !== name; + if (hasFallback || !isQuotedString || hasHexEscape(name)) { + params["filename*"] = name; + } + if (isQuotedString || hasFallback) { + params.filename = hasFallback ? fallbackName : name; + } + return params; + } + __name(createparams, "createparams"); + function format(obj) { + var parameters = obj.parameters; + var type = obj.type; + if (!type || typeof type !== "string" || !TOKEN_REGEXP.test(type)) { + throw new TypeError("invalid type"); + } + var string = String(type).toLowerCase(); + if (parameters && typeof parameters === "object") { + var param; + var params = Object.keys(parameters).sort(); + for (var i = 0; i < params.length; i++) { + param = params[i]; + var val = param.slice(-1) === "*" ? ustring(parameters[param]) : qstring(parameters[param]); + string += "; " + param + "=" + val; + } + } + return string; + } + __name(format, "format"); + function decodefield(str) { + const match = EXT_VALUE_REGEXP.exec(str); + if (!match) { + throw new TypeError("invalid extended field value"); + } + const charset = match[1].toLowerCase(); + const encoded = match[2]; + switch (charset) { + case "iso-8859-1": { + const binary = decodeHexEscapes(encoded); + return getlatin1(binary); + } + case "utf-8": + case "utf8": { + try { + return decodeURIComponent(encoded); + } catch { + const binary = decodeHexEscapes(encoded); + const bytes = new Uint8Array(binary.length); + for (let idx = 0; idx < binary.length; idx++) { + bytes[idx] = binary.charCodeAt(idx); + } + return utf8Decoder.decode(bytes); + } + } + } + throw new TypeError("unsupported charset in extended field"); + } + __name(decodefield, "decodefield"); + function getlatin1(val) { + return String(val).replace(NON_LATIN1_REGEXP, "?"); + } + __name(getlatin1, "getlatin1"); + function parse(string) { + if (!string || typeof string !== "string") { + throw new TypeError("argument string is required"); + } + var match = DISPOSITION_TYPE_REGEXP.exec(string); + if (!match) { + throw new TypeError("invalid type format"); + } + var index = match[0].length; + var type = match[1].toLowerCase(); + var key; + var names = []; + var params = {}; + var value; + index = PARAM_REGEXP.lastIndex = match[0].slice(-1) === ";" ? index - 1 : index; + while (match = PARAM_REGEXP.exec(string)) { + if (match.index !== index) { + throw new TypeError("invalid parameter format"); + } + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + if (names.indexOf(key) !== -1) { + throw new TypeError("invalid duplicate parameter"); + } + names.push(key); + if (key.indexOf("*") + 1 === key.length) { + key = key.slice(0, -1); + value = decodefield(value); + params[key] = value; + continue; + } + if (typeof params[key] === "string") { + continue; + } + if (value[0] === '"') { + value = value.slice(1, -1).replace(QESC_REGEXP, "$1"); + } + params[key] = value; + } + if (index !== -1 && index !== string.length) { + throw new TypeError("invalid parameter format"); + } + return new ContentDisposition(type, params); + } + __name(parse, "parse"); + function pencode(char) { + return "%" + String(char).charCodeAt(0).toString(16).toUpperCase(); + } + __name(pencode, "pencode"); + function qstring(val) { + var str = String(val); + return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"'; + } + __name(qstring, "qstring"); + function ustring(val) { + var str = String(val); + var encoded = encodeURIComponent(str).replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode); + return "UTF-8''" + encoded; + } + __name(ustring, "ustring"); + function ContentDisposition(type, parameters) { + this.type = type; + this.parameters = parameters; + } + __name(ContentDisposition, "ContentDisposition"); + function basename(path) { + const normalized = path.replaceAll("\\", "/"); + let end = normalized.length; + while (end > 0 && normalized[end - 1] === "/") { + end--; + } + if (end === 0) { + return ""; + } + let start = end - 1; + while (start >= 0 && normalized[start] !== "/") { + start--; + } + return normalized.slice(start + 1, end); + } + __name(basename, "basename"); + function isHexDigit(char) { + const code = char.charCodeAt(0); + return code >= 48 && code <= 57 || // 0-9 + code >= 65 && code <= 70 || // A-F + code >= 97 && code <= 102; + } + __name(isHexDigit, "isHexDigit"); + function hasHexEscape(str) { + const maxIndex = str.length - 3; + let lastIndex = -1; + while ((lastIndex = str.indexOf("%", lastIndex + 1)) !== -1 && lastIndex <= maxIndex) { + if (isHexDigit(str[lastIndex + 1]) && isHexDigit(str[lastIndex + 2])) { + return true; + } + } + return false; + } + __name(hasHexEscape, "hasHexEscape"); + function decodeHexEscapes(str) { + const firstEscape = str.indexOf("%"); + if (firstEscape === -1) return str; + let result = str.slice(0, firstEscape); + for (let idx = firstEscape; idx < str.length; idx++) { + if (str[idx] === "%" && idx + 2 < str.length && isHexDigit(str[idx + 1]) && isHexDigit(str[idx + 2])) { + result += String.fromCharCode(Number.parseInt(str[idx + 1] + str[idx + 2], 16)); + idx += 2; + } else { + result += str[idx]; + } + } + return result; + } + __name(decodeHexEscapes, "decodeHexEscapes"); + } +}); + +// node_modules/cookie-signature/index.js +var require_cookie_signature = __commonJS({ + "node_modules/cookie-signature/index.js"(exports2) { + var crypto2 = require("crypto"); + exports2.sign = function(val, secret) { + if ("string" != typeof val) throw new TypeError("Cookie value must be provided as a string."); + if (null == secret) throw new TypeError("Secret key must be provided."); + return val + "." + crypto2.createHmac("sha256", secret).update(val).digest("base64").replace(/\=+$/, ""); + }; + exports2.unsign = function(input, secret) { + if ("string" != typeof input) throw new TypeError("Signed cookie string must be provided."); + if (null == secret) throw new TypeError("Secret key must be provided."); + var tentativeValue = input.slice(0, input.lastIndexOf(".")), expectedInput = exports2.sign(tentativeValue, secret), expectedBuffer = Buffer.from(expectedInput), inputBuffer = Buffer.from(input); + return expectedBuffer.length === inputBuffer.length && crypto2.timingSafeEqual(expectedBuffer, inputBuffer) ? tentativeValue : false; + }; + } +}); + +// node_modules/cookie/index.js +var require_cookie = __commonJS({ + "node_modules/cookie/index.js"(exports2) { + "use strict"; + exports2.parse = parse; + exports2.serialize = serialize; + var __toString = Object.prototype.toString; + var __hasOwnProperty = Object.prototype.hasOwnProperty; + var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/; + var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i; + var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/; + function parse(str, opt) { + if (typeof str !== "string") { + throw new TypeError("argument str must be a string"); + } + var obj = {}; + var len = str.length; + if (len < 2) return obj; + var dec = opt && opt.decode || decode; + var index = 0; + var eqIdx = 0; + var endIdx = 0; + do { + eqIdx = str.indexOf("=", index); + if (eqIdx === -1) break; + endIdx = str.indexOf(";", index); + if (endIdx === -1) { + endIdx = len; + } else if (eqIdx > endIdx) { + index = str.lastIndexOf(";", eqIdx - 1) + 1; + continue; + } + var keyStartIdx = startIndex(str, index, eqIdx); + var keyEndIdx = endIndex(str, eqIdx, keyStartIdx); + var key = str.slice(keyStartIdx, keyEndIdx); + if (!__hasOwnProperty.call(obj, key)) { + var valStartIdx = startIndex(str, eqIdx + 1, endIdx); + var valEndIdx = endIndex(str, endIdx, valStartIdx); + if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) { + valStartIdx++; + valEndIdx--; + } + var val = str.slice(valStartIdx, valEndIdx); + obj[key] = tryDecode(val, dec); + } + index = endIdx + 1; + } while (index < len); + return obj; + } + __name(parse, "parse"); + function startIndex(str, index, max) { + do { + var code = str.charCodeAt(index); + if (code !== 32 && code !== 9) return index; + } while (++index < max); + return max; + } + __name(startIndex, "startIndex"); + function endIndex(str, index, min) { + while (index > min) { + var code = str.charCodeAt(--index); + if (code !== 32 && code !== 9) return index + 1; + } + return min; + } + __name(endIndex, "endIndex"); + function serialize(name, val, opt) { + var enc = opt && opt.encode || encodeURIComponent; + if (typeof enc !== "function") { + throw new TypeError("option encode is invalid"); + } + if (!cookieNameRegExp.test(name)) { + throw new TypeError("argument name is invalid"); + } + var value = enc(val); + if (!cookieValueRegExp.test(value)) { + throw new TypeError("argument val is invalid"); + } + var str = name + "=" + value; + if (!opt) return str; + if (null != opt.maxAge) { + var maxAge = Math.floor(opt.maxAge); + if (!isFinite(maxAge)) { + throw new TypeError("option maxAge is invalid"); + } + str += "; Max-Age=" + maxAge; + } + if (opt.domain) { + if (!domainValueRegExp.test(opt.domain)) { + throw new TypeError("option domain is invalid"); + } + str += "; Domain=" + opt.domain; + } + if (opt.path) { + if (!pathValueRegExp.test(opt.path)) { + throw new TypeError("option path is invalid"); + } + str += "; Path=" + opt.path; + } + if (opt.expires) { + var expires = opt.expires; + if (!isDate(expires) || isNaN(expires.valueOf())) { + throw new TypeError("option expires is invalid"); + } + str += "; Expires=" + expires.toUTCString(); + } + if (opt.httpOnly) { + str += "; HttpOnly"; + } + if (opt.secure) { + str += "; Secure"; + } + if (opt.partitioned) { + str += "; Partitioned"; + } + if (opt.priority) { + var priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority; + switch (priority) { + case "low": + str += "; Priority=Low"; + break; + case "medium": + str += "; Priority=Medium"; + break; + case "high": + str += "; Priority=High"; + break; + default: + throw new TypeError("option priority is invalid"); + } + } + if (opt.sameSite) { + var sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite; + switch (sameSite) { + case true: + str += "; SameSite=Strict"; + break; + case "lax": + str += "; SameSite=Lax"; + break; + case "strict": + str += "; SameSite=Strict"; + break; + case "none": + str += "; SameSite=None"; + break; + default: + throw new TypeError("option sameSite is invalid"); + } + } + return str; + } + __name(serialize, "serialize"); + function decode(str) { + return str.indexOf("%") !== -1 ? decodeURIComponent(str) : str; + } + __name(decode, "decode"); + function isDate(val) { + return __toString.call(val) === "[object Date]"; + } + __name(isDate, "isDate"); + function tryDecode(str, decode2) { + try { + return decode2(str); + } catch (e) { + return str; + } + } + __name(tryDecode, "tryDecode"); + } +}); + +// node_modules/send/index.js +var require_send = __commonJS({ + "node_modules/send/index.js"(exports2, module2) { + "use strict"; + var createError = require_http_errors(); + var debug = require_src()("send"); + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var etag = require_etag(); + var fresh = require_fresh(); + var fs = require("fs"); + var mime = require_mime_types(); + var ms = require_ms(); + var onFinished = require_on_finished(); + var parseRange = require_range_parser(); + var path = require("path"); + var statuses = require_statuses(); + var Stream = require("stream"); + var util2 = require("util"); + var extname = path.extname; + var join2 = path.join; + var normalize = path.normalize; + var resolve = path.resolve; + var sep = path.sep; + var BYTES_RANGE_REGEXP = /^ *bytes=/; + var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3; + var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/; + module2.exports = send; + function send(req, path2, options) { + return new SendStream(req, path2, options); + } + __name(send, "send"); + function SendStream(req, path2, options) { + Stream.call(this); + var opts = options || {}; + this.options = opts; + this.path = path2; + this.req = req; + this._acceptRanges = opts.acceptRanges !== void 0 ? Boolean(opts.acceptRanges) : true; + this._cacheControl = opts.cacheControl !== void 0 ? Boolean(opts.cacheControl) : true; + this._etag = opts.etag !== void 0 ? Boolean(opts.etag) : true; + this._dotfiles = opts.dotfiles !== void 0 ? opts.dotfiles : "ignore"; + if (this._dotfiles !== "ignore" && this._dotfiles !== "allow" && this._dotfiles !== "deny") { + throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"'); + } + this._extensions = opts.extensions !== void 0 ? normalizeList(opts.extensions, "extensions option") : []; + this._immutable = opts.immutable !== void 0 ? Boolean(opts.immutable) : false; + this._index = opts.index !== void 0 ? normalizeList(opts.index, "index option") : ["index.html"]; + this._lastModified = opts.lastModified !== void 0 ? Boolean(opts.lastModified) : true; + this._maxage = opts.maxAge || opts.maxage; + this._maxage = typeof this._maxage === "string" ? ms(this._maxage) : Number(this._maxage); + this._maxage = !isNaN(this._maxage) ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) : 0; + this._root = opts.root ? resolve(opts.root) : null; + } + __name(SendStream, "SendStream"); + util2.inherits(SendStream, Stream); + SendStream.prototype.error = /* @__PURE__ */ __name(function error(status, err) { + if (hasListeners(this, "error")) { + return this.emit("error", createHttpError(status, err)); + } + var res = this.res; + var msg = statuses.message[status] || String(status); + var doc = createHtmlDocument("Error", escapeHtml(msg)); + clearHeaders(res); + if (err && err.headers) { + setHeaders(res, err.headers); + } + res.statusCode = status; + res.setHeader("Content-Type", "text/html; charset=UTF-8"); + res.setHeader("Content-Length", Buffer.byteLength(doc)); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.end(doc); + }, "error"); + SendStream.prototype.hasTrailingSlash = /* @__PURE__ */ __name(function hasTrailingSlash() { + return this.path[this.path.length - 1] === "/"; + }, "hasTrailingSlash"); + SendStream.prototype.isConditionalGET = /* @__PURE__ */ __name(function isConditionalGET() { + return this.req.headers["if-match"] || this.req.headers["if-unmodified-since"] || this.req.headers["if-none-match"] || this.req.headers["if-modified-since"]; + }, "isConditionalGET"); + SendStream.prototype.isPreconditionFailure = /* @__PURE__ */ __name(function isPreconditionFailure() { + var req = this.req; + var res = this.res; + var match = req.headers["if-match"]; + if (match) { + var etag2 = res.getHeader("ETag"); + return !etag2 || match !== "*" && parseTokenList(match).every(function(match2) { + return match2 !== etag2 && match2 !== "W/" + etag2 && "W/" + match2 !== etag2; + }); + } + var unmodifiedSince = parseHttpDate(req.headers["if-unmodified-since"]); + if (!isNaN(unmodifiedSince)) { + var lastModified = parseHttpDate(res.getHeader("Last-Modified")); + return isNaN(lastModified) || lastModified > unmodifiedSince; + } + return false; + }, "isPreconditionFailure"); + SendStream.prototype.removeContentHeaderFields = /* @__PURE__ */ __name(function removeContentHeaderFields() { + var res = this.res; + res.removeHeader("Content-Encoding"); + res.removeHeader("Content-Language"); + res.removeHeader("Content-Length"); + res.removeHeader("Content-Range"); + res.removeHeader("Content-Type"); + }, "removeContentHeaderFields"); + SendStream.prototype.notModified = /* @__PURE__ */ __name(function notModified() { + var res = this.res; + debug("not modified"); + this.removeContentHeaderFields(); + res.statusCode = 304; + res.end(); + }, "notModified"); + SendStream.prototype.headersAlreadySent = /* @__PURE__ */ __name(function headersAlreadySent() { + var err = new Error("Can't set headers after they are sent."); + debug("headers already sent"); + this.error(500, err); + }, "headersAlreadySent"); + SendStream.prototype.isCachable = /* @__PURE__ */ __name(function isCachable() { + var statusCode = this.res.statusCode; + return statusCode >= 200 && statusCode < 300 || statusCode === 304; + }, "isCachable"); + SendStream.prototype.onStatError = /* @__PURE__ */ __name(function onStatError(error) { + switch (error.code) { + case "ENAMETOOLONG": + case "ENOENT": + case "ENOTDIR": + this.error(404, error); + break; + default: + this.error(500, error); + break; + } + }, "onStatError"); + SendStream.prototype.isFresh = /* @__PURE__ */ __name(function isFresh() { + return fresh(this.req.headers, { + etag: this.res.getHeader("ETag"), + "last-modified": this.res.getHeader("Last-Modified") + }); + }, "isFresh"); + SendStream.prototype.isRangeFresh = /* @__PURE__ */ __name(function isRangeFresh() { + var ifRange = this.req.headers["if-range"]; + if (!ifRange) { + return true; + } + if (ifRange.indexOf('"') !== -1) { + var etag2 = this.res.getHeader("ETag"); + return Boolean(etag2 && ifRange.indexOf(etag2) !== -1); + } + var lastModified = this.res.getHeader("Last-Modified"); + return parseHttpDate(lastModified) <= parseHttpDate(ifRange); + }, "isRangeFresh"); + SendStream.prototype.redirect = /* @__PURE__ */ __name(function redirect(path2) { + var res = this.res; + if (hasListeners(this, "directory")) { + this.emit("directory", res, path2); + return; + } + if (this.hasTrailingSlash()) { + this.error(403); + return; + } + var loc = encodeUrl(collapseLeadingSlashes(this.path + "/")); + var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc)); + res.statusCode = 301; + res.setHeader("Content-Type", "text/html; charset=UTF-8"); + res.setHeader("Content-Length", Buffer.byteLength(doc)); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.setHeader("Location", loc); + res.end(doc); + }, "redirect"); + SendStream.prototype.pipe = /* @__PURE__ */ __name(function pipe(res) { + var root = this._root; + this.res = res; + var path2 = decode(this.path); + if (path2 === -1) { + this.error(400); + return res; + } + if (~path2.indexOf("\0")) { + this.error(400); + return res; + } + var parts; + if (root !== null) { + if (path2) { + path2 = normalize("." + sep + path2); + } + if (UP_PATH_REGEXP.test(path2)) { + debug('malicious path "%s"', path2); + this.error(403); + return res; + } + parts = path2.split(sep); + path2 = normalize(join2(root, path2)); + } else { + if (UP_PATH_REGEXP.test(path2)) { + debug('malicious path "%s"', path2); + this.error(403); + return res; + } + parts = normalize(path2).split(sep); + path2 = resolve(path2); + } + if (containsDotFile(parts)) { + debug('%s dotfile "%s"', this._dotfiles, path2); + switch (this._dotfiles) { + case "allow": + break; + case "deny": + this.error(403); + return res; + case "ignore": + default: + this.error(404); + return res; + } + } + if (this._index.length && this.hasTrailingSlash()) { + this.sendIndex(path2); + return res; + } + this.sendFile(path2); + return res; + }, "pipe"); + SendStream.prototype.send = /* @__PURE__ */ __name(function send2(path2, stat) { + var len = stat.size; + var options = this.options; + var opts = {}; + var res = this.res; + var req = this.req; + var ranges = req.headers.range; + var offset = options.start || 0; + if (res.headersSent) { + this.headersAlreadySent(); + return; + } + debug('pipe "%s"', path2); + this.setHeader(path2, stat); + this.type(path2); + if (this.isConditionalGET()) { + if (this.isPreconditionFailure()) { + this.error(412); + return; + } + if (this.isCachable() && this.isFresh()) { + this.notModified(); + return; + } + } + len = Math.max(0, len - offset); + if (options.end !== void 0) { + var bytes = options.end - offset + 1; + if (len > bytes) len = bytes; + } + if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) { + ranges = parseRange(len, ranges, { + combine: true + }); + if (!this.isRangeFresh()) { + debug("range stale"); + ranges = -2; + } + if (ranges === -1) { + debug("range unsatisfiable"); + res.setHeader("Content-Range", contentRange("bytes", len)); + return this.error(416, { + headers: { "Content-Range": res.getHeader("Content-Range") } + }); + } + if (ranges !== -2 && ranges.length === 1) { + debug("range %j", ranges); + res.statusCode = 206; + res.setHeader("Content-Range", contentRange("bytes", len, ranges[0])); + offset += ranges[0].start; + len = ranges[0].end - ranges[0].start + 1; + } + } + for (var prop in options) { + opts[prop] = options[prop]; + } + opts.start = offset; + opts.end = Math.max(offset, offset + len - 1); + res.setHeader("Content-Length", len); + if (req.method === "HEAD") { + res.end(); + return; + } + this.stream(path2, opts); + }, "send"); + SendStream.prototype.sendFile = /* @__PURE__ */ __name(function sendFile(path2) { + var i = 0; + var self2 = this; + debug('stat "%s"', path2); + fs.stat(path2, /* @__PURE__ */ __name(function onstat(err, stat) { + var pathEndsWithSep = path2[path2.length - 1] === sep; + if (err && err.code === "ENOENT" && !extname(path2) && !pathEndsWithSep) { + return next(err); + } + if (err) return self2.onStatError(err); + if (stat.isDirectory()) return self2.redirect(path2); + if (pathEndsWithSep) return self2.error(404); + self2.emit("file", path2, stat); + self2.send(path2, stat); + }, "onstat")); + function next(err) { + if (self2._extensions.length <= i) { + return err ? self2.onStatError(err) : self2.error(404); + } + var p = path2 + "." + self2._extensions[i++]; + debug('stat "%s"', p); + fs.stat(p, function(err2, stat) { + if (err2) return next(err2); + if (stat.isDirectory()) return next(); + self2.emit("file", p, stat); + self2.send(p, stat); + }); + } + __name(next, "next"); + }, "sendFile"); + SendStream.prototype.sendIndex = /* @__PURE__ */ __name(function sendIndex(path2) { + var i = -1; + var self2 = this; + function next(err) { + if (++i >= self2._index.length) { + if (err) return self2.onStatError(err); + return self2.error(404); + } + var p = join2(path2, self2._index[i]); + debug('stat "%s"', p); + fs.stat(p, function(err2, stat) { + if (err2) return next(err2); + if (stat.isDirectory()) return next(); + self2.emit("file", p, stat); + self2.send(p, stat); + }); + } + __name(next, "next"); + next(); + }, "sendIndex"); + SendStream.prototype.stream = /* @__PURE__ */ __name(function stream(path2, options) { + var self2 = this; + var res = this.res; + var stream2 = fs.createReadStream(path2, options); + this.emit("stream", stream2); + stream2.pipe(res); + function cleanup() { + stream2.destroy(); + } + __name(cleanup, "cleanup"); + onFinished(res, cleanup); + stream2.on("error", /* @__PURE__ */ __name(function onerror(err) { + cleanup(); + self2.onStatError(err); + }, "onerror")); + stream2.on("end", /* @__PURE__ */ __name(function onend() { + self2.emit("end"); + }, "onend")); + }, "stream"); + SendStream.prototype.type = /* @__PURE__ */ __name(function type(path2) { + var res = this.res; + if (res.getHeader("Content-Type")) return; + var ext = extname(path2); + var type2 = mime.contentType(ext) || "application/octet-stream"; + debug("content-type %s", type2); + res.setHeader("Content-Type", type2); + }, "type"); + SendStream.prototype.setHeader = /* @__PURE__ */ __name(function setHeader(path2, stat) { + var res = this.res; + this.emit("headers", res, path2, stat); + if (this._acceptRanges && !res.getHeader("Accept-Ranges")) { + debug("accept ranges"); + res.setHeader("Accept-Ranges", "bytes"); + } + if (this._cacheControl && !res.getHeader("Cache-Control")) { + var cacheControl = "public, max-age=" + Math.floor(this._maxage / 1e3); + if (this._immutable) { + cacheControl += ", immutable"; + } + debug("cache-control %s", cacheControl); + res.setHeader("Cache-Control", cacheControl); + } + if (this._lastModified && !res.getHeader("Last-Modified")) { + var modified = stat.mtime.toUTCString(); + debug("modified %s", modified); + res.setHeader("Last-Modified", modified); + } + if (this._etag && !res.getHeader("ETag")) { + var val = etag(stat); + debug("etag %s", val); + res.setHeader("ETag", val); + } + }, "setHeader"); + function clearHeaders(res) { + for (const header of res.getHeaderNames()) { + res.removeHeader(header); + } + } + __name(clearHeaders, "clearHeaders"); + function collapseLeadingSlashes(str) { + for (var i = 0; i < str.length; i++) { + if (str[i] !== "/") { + break; + } + } + return i > 1 ? "/" + str.substr(i) : str; + } + __name(collapseLeadingSlashes, "collapseLeadingSlashes"); + function containsDotFile(parts) { + for (var i = 0; i < parts.length; i++) { + var part = parts[i]; + if (part.length > 1 && part[0] === ".") { + return true; + } + } + return false; + } + __name(containsDotFile, "containsDotFile"); + function contentRange(type, size, range) { + return type + " " + (range ? range.start + "-" + range.end : "*") + "/" + size; + } + __name(contentRange, "contentRange"); + function createHtmlDocument(title, body) { + return '\n\n\n\n' + title + "\n\n\n
" + body + "
\n\n\n"; + } + __name(createHtmlDocument, "createHtmlDocument"); + function createHttpError(status, err) { + if (!err) { + return createError(status); + } + return err instanceof Error ? createError(status, err, { expose: false }) : createError(status, err); + } + __name(createHttpError, "createHttpError"); + function decode(path2) { + try { + return decodeURIComponent(path2); + } catch (err) { + return -1; + } + } + __name(decode, "decode"); + function hasListeners(emitter, type) { + var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type); + return count > 0; + } + __name(hasListeners, "hasListeners"); + function normalizeList(val, name) { + var list = [].concat(val || []); + for (var i = 0; i < list.length; i++) { + if (typeof list[i] !== "string") { + throw new TypeError(name + " must be array of strings or false"); + } + } + return list; + } + __name(normalizeList, "normalizeList"); + function parseHttpDate(date) { + var timestamp = date && Date.parse(date); + return typeof timestamp === "number" ? timestamp : NaN; + } + __name(parseHttpDate, "parseHttpDate"); + function parseTokenList(str) { + var end = 0; + var list = []; + var start = 0; + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 32: + if (start === end) { + start = end = i + 1; + } + break; + case 44: + if (start !== end) { + list.push(str.substring(start, end)); + } + start = end = i + 1; + break; + default: + end = i + 1; + break; + } + } + if (start !== end) { + list.push(str.substring(start, end)); + } + return list; + } + __name(parseTokenList, "parseTokenList"); + function setHeaders(res, headers) { + var keys = Object.keys(headers); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + res.setHeader(key, headers[key]); + } + } + __name(setHeaders, "setHeaders"); + } +}); + +// node_modules/express/lib/response.js +var require_response = __commonJS({ + "node_modules/express/lib/response.js"(exports2, module2) { + "use strict"; + var contentDisposition = require_content_disposition(); + var createError = require_http_errors(); + var deprecate = require_depd()("express"); + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var http = require("node:http"); + var onFinished = require_on_finished(); + var mime = require_mime_types(); + var path = require("node:path"); + var pathIsAbsolute = require("node:path").isAbsolute; + var statuses = require_statuses(); + var sign = require_cookie_signature().sign; + var normalizeType = require_utils11().normalizeType; + var normalizeTypes = require_utils11().normalizeTypes; + var setCharset = require_utils11().setCharset; + var cookie = require_cookie(); + var send = require_send(); + var extname = path.extname; + var resolve = path.resolve; + var vary = require_vary(); + var { Buffer: Buffer2 } = require("node:buffer"); + var res = Object.create(http.ServerResponse.prototype); + module2.exports = res; + res.status = /* @__PURE__ */ __name(function status(code) { + if (!Number.isInteger(code)) { + throw new TypeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be an integer.`); + } + if (code < 100 || code > 999) { + throw new RangeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be greater than 99 and less than 1000.`); + } + this.statusCode = code; + return this; + }, "status"); + res.links = function(links) { + var link = this.get("Link") || ""; + if (link) link += ", "; + return this.set("Link", link + Object.keys(links).map(function(rel) { + if (Array.isArray(links[rel])) { + return links[rel].map(function(singleLink) { + return `<${singleLink}>; rel="${rel}"`; + }).join(", "); + } else { + return `<${links[rel]}>; rel="${rel}"`; + } + }).join(", ")); + }; + res.send = /* @__PURE__ */ __name(function send2(body) { + var chunk = body; + var encoding; + var req = this.req; + var type; + var app = this.app; + switch (typeof chunk) { + // string defaulting to html + case "string": + if (!this.get("Content-Type")) { + this.type("html"); + } + break; + case "boolean": + case "number": + case "object": + if (chunk === null) { + chunk = ""; + } else if (ArrayBuffer.isView(chunk)) { + if (!this.get("Content-Type")) { + this.type("bin"); + } + } else { + return this.json(chunk); + } + break; + } + if (typeof chunk === "string") { + encoding = "utf8"; + type = this.get("Content-Type"); + if (typeof type === "string") { + this.set("Content-Type", setCharset(type, "utf-8")); + } + } + var etagFn = app.get("etag fn"); + var generateETag = !this.get("ETag") && typeof etagFn === "function"; + var len; + if (chunk !== void 0) { + if (Buffer2.isBuffer(chunk)) { + len = chunk.length; + } else if (!generateETag && chunk.length < 1e3) { + len = Buffer2.byteLength(chunk, encoding); + } else { + chunk = Buffer2.from(chunk, encoding); + encoding = void 0; + len = chunk.length; + } + this.set("Content-Length", len); + } + var etag; + if (generateETag && len !== void 0) { + if (etag = etagFn(chunk, encoding)) { + this.set("ETag", etag); + } + } + if (req.fresh) this.status(304); + if (204 === this.statusCode || 304 === this.statusCode) { + this.removeHeader("Content-Type"); + this.removeHeader("Content-Length"); + this.removeHeader("Transfer-Encoding"); + chunk = ""; + } + if (this.statusCode === 205) { + this.set("Content-Length", "0"); + this.removeHeader("Transfer-Encoding"); + chunk = ""; + } + if (req.method === "HEAD") { + this.end(); + } else { + this.end(chunk, encoding); + } + return this; + }, "send"); + res.json = /* @__PURE__ */ __name(function json(obj) { + var app = this.app; + var escape2 = app.get("json escape"); + var replacer = app.get("json replacer"); + var spaces = app.get("json spaces"); + var body = stringify(obj, replacer, spaces, escape2); + if (!this.get("Content-Type")) { + this.set("Content-Type", "application/json"); + } + return this.send(body); + }, "json"); + res.jsonp = /* @__PURE__ */ __name(function jsonp(obj) { + var app = this.app; + var escape2 = app.get("json escape"); + var replacer = app.get("json replacer"); + var spaces = app.get("json spaces"); + var body = stringify(obj, replacer, spaces, escape2); + var callback = this.req.query[app.get("jsonp callback name")]; + if (!this.get("Content-Type")) { + this.set("X-Content-Type-Options", "nosniff"); + this.set("Content-Type", "application/json"); + } + if (Array.isArray(callback)) { + callback = callback[0]; + } + if (typeof callback === "string" && callback.length !== 0) { + this.set("X-Content-Type-Options", "nosniff"); + this.set("Content-Type", "text/javascript"); + callback = callback.replace(/[^\[\]\w$.]/g, ""); + if (body === void 0) { + body = ""; + } else if (typeof body === "string") { + body = body.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); + } + body = "/**/ typeof " + callback + " === 'function' && " + callback + "(" + body + ");"; + } + return this.send(body); + }, "jsonp"); + res.sendStatus = /* @__PURE__ */ __name(function sendStatus(statusCode) { + var body = statuses.message[statusCode] || String(statusCode); + this.status(statusCode); + this.type("txt"); + return this.send(body); + }, "sendStatus"); + res.sendFile = /* @__PURE__ */ __name(function sendFile(path2, options, callback) { + var done = callback; + var req = this.req; + var res2 = this; + var next = req.next; + var opts = options || {}; + if (!path2) { + throw new TypeError("path argument is required to res.sendFile"); + } + if (typeof path2 !== "string") { + throw new TypeError("path must be a string to res.sendFile"); + } + if (typeof options === "function") { + done = options; + opts = {}; + } + if (!opts.root && !pathIsAbsolute(path2)) { + throw new TypeError("path must be absolute or specify root to res.sendFile"); + } + var pathname = encodeURI(path2); + opts.etag = this.app.enabled("etag"); + var file = send(req, pathname, opts); + sendfile(res2, file, opts, function(err) { + if (done) return done(err); + if (err && err.code === "EISDIR") return next(); + if (err && err.code !== "ECONNABORTED" && err.syscall !== "write") { + next(err); + } + }); + }, "sendFile"); + res.download = /* @__PURE__ */ __name(function download(path2, filename, options, callback) { + var done = callback; + var name = filename; + var opts = options || null; + if (typeof filename === "function") { + done = filename; + name = null; + opts = null; + } else if (typeof options === "function") { + done = options; + opts = null; + } + if (typeof filename === "object" && (typeof options === "function" || options === void 0)) { + name = null; + opts = filename; + } + var headers = { + "Content-Disposition": contentDisposition(name || path2) + }; + if (opts && opts.headers) { + var keys = Object.keys(opts.headers); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (key.toLowerCase() !== "content-disposition") { + headers[key] = opts.headers[key]; + } + } + } + opts = Object.create(opts); + opts.headers = headers; + var fullPath = !opts.root ? resolve(path2) : path2; + return this.sendFile(fullPath, opts, done); + }, "download"); + res.contentType = res.type = /* @__PURE__ */ __name(function contentType(type) { + var ct = type.indexOf("/") === -1 ? mime.contentType(type) || "application/octet-stream" : type; + return this.set("Content-Type", ct); + }, "contentType"); + res.format = function(obj) { + var req = this.req; + var next = req.next; + var keys = Object.keys(obj).filter(function(v) { + return v !== "default"; + }); + var key = keys.length > 0 ? req.accepts(keys) : false; + this.vary("Accept"); + if (key) { + this.set("Content-Type", normalizeType(key).value); + obj[key](req, this, next); + } else if (obj.default) { + obj.default(req, this, next); + } else { + next(createError(406, { + types: normalizeTypes(keys).map(function(o) { + return o.value; + }) + })); + } + return this; + }; + res.attachment = /* @__PURE__ */ __name(function attachment(filename) { + if (filename) { + this.type(extname(filename)); + } + this.set("Content-Disposition", contentDisposition(filename)); + return this; + }, "attachment"); + res.append = /* @__PURE__ */ __name(function append(field, val) { + var prev = this.get(field); + var value = val; + if (prev) { + value = Array.isArray(prev) ? prev.concat(val) : Array.isArray(val) ? [prev].concat(val) : [prev, val]; + } + return this.set(field, value); + }, "append"); + res.set = res.header = /* @__PURE__ */ __name(function header(field, val) { + if (arguments.length === 2) { + var value = Array.isArray(val) ? val.map(String) : String(val); + if (field.toLowerCase() === "content-type") { + if (Array.isArray(value)) { + throw new TypeError("Content-Type cannot be set to an Array"); + } + value = mime.contentType(value); + } + this.setHeader(field, value); + } else { + for (var key in field) { + this.set(key, field[key]); + } + } + return this; + }, "header"); + res.get = function(field) { + return this.getHeader(field); + }; + res.clearCookie = /* @__PURE__ */ __name(function clearCookie(name, options) { + const opts = { path: "/", ...options, expires: /* @__PURE__ */ new Date(1) }; + delete opts.maxAge; + return this.cookie(name, "", opts); + }, "clearCookie"); + res.cookie = function(name, value, options) { + var opts = { ...options }; + var secret = this.req.secret; + var signed = opts.signed; + if (signed && !secret) { + throw new Error('cookieParser("secret") required for signed cookies'); + } + var val = typeof value === "object" ? "j:" + JSON.stringify(value) : String(value); + if (signed) { + val = "s:" + sign(val, secret); + } + if (opts.maxAge != null) { + var maxAge = opts.maxAge - 0; + if (!isNaN(maxAge)) { + opts.expires = new Date(Date.now() + maxAge); + opts.maxAge = Math.floor(maxAge / 1e3); + } + } + if (opts.path == null) { + opts.path = "/"; + } + this.append("Set-Cookie", cookie.serialize(name, String(val), opts)); + return this; + }; + res.location = /* @__PURE__ */ __name(function location(url) { + return this.set("Location", encodeUrl(url)); + }, "location"); + res.redirect = /* @__PURE__ */ __name(function redirect(url) { + var address = url; + var body; + var status = 302; + if (arguments.length === 2) { + status = arguments[0]; + address = arguments[1]; + } + if (!address) { + deprecate("Provide a url argument"); + } + if (typeof address !== "string") { + deprecate("Url must be a string"); + } + if (typeof status !== "number") { + deprecate("Status must be a number"); + } + address = this.location(address).get("Location"); + this.format({ + text: /* @__PURE__ */ __name(function() { + body = statuses.message[status] + ". Redirecting to " + address; + }, "text"), + html: /* @__PURE__ */ __name(function() { + var u = escapeHtml(address); + body = "

" + statuses.message[status] + ". Redirecting to " + u + "

"; + }, "html"), + default: /* @__PURE__ */ __name(function() { + body = ""; + }, "default") + }); + this.status(status); + this.set("Content-Length", Buffer2.byteLength(body)); + if (this.req.method === "HEAD") { + this.end(); + } else { + this.end(body); + } + }, "redirect"); + res.vary = function(field) { + vary(this, field); + return this; + }; + res.render = /* @__PURE__ */ __name(function render(view, options, callback) { + var app = this.req.app; + var done = callback; + var opts = options || {}; + var req = this.req; + var self2 = this; + if (typeof options === "function") { + done = options; + opts = {}; + } + opts._locals = self2.locals; + done = done || function(err, str) { + if (err) return req.next(err); + self2.send(str); + }; + app.render(view, opts, done); + }, "render"); + function sendfile(res2, file, options, callback) { + var done = false; + var streaming; + function onaborted() { + if (done) return; + done = true; + var err = new Error("Request aborted"); + err.code = "ECONNABORTED"; + callback(err); + } + __name(onaborted, "onaborted"); + function ondirectory() { + if (done) return; + done = true; + var err = new Error("EISDIR, read"); + err.code = "EISDIR"; + callback(err); + } + __name(ondirectory, "ondirectory"); + function onerror(err) { + if (done) return; + done = true; + callback(err); + } + __name(onerror, "onerror"); + function onend() { + if (done) return; + done = true; + callback(); + } + __name(onend, "onend"); + function onfile() { + streaming = false; + } + __name(onfile, "onfile"); + function onfinish(err) { + if (err && err.code === "ECONNRESET") return onaborted(); + if (err) return onerror(err); + if (done) return; + setImmediate(function() { + if (streaming !== false && !done) { + onaborted(); + return; + } + if (done) return; + done = true; + callback(); + }); + } + __name(onfinish, "onfinish"); + function onstream() { + streaming = true; + } + __name(onstream, "onstream"); + file.on("directory", ondirectory); + file.on("end", onend); + file.on("error", onerror); + file.on("file", onfile); + file.on("stream", onstream); + onFinished(res2, onfinish); + if (options.headers) { + file.on("headers", /* @__PURE__ */ __name(function headers(res3) { + var obj = options.headers; + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + var k = keys[i]; + res3.setHeader(k, obj[k]); + } + }, "headers")); + } + file.pipe(res2); + } + __name(sendfile, "sendfile"); + function stringify(value, replacer, spaces, escape2) { + var json = replacer || spaces ? JSON.stringify(value, replacer, spaces) : JSON.stringify(value); + if (escape2 && typeof json === "string") { + json = json.replace(/[<>&]/g, function(c) { + switch (c.charCodeAt(0)) { + case 60: + return "\\u003c"; + case 62: + return "\\u003e"; + case 38: + return "\\u0026"; + /* istanbul ignore next: unreachable default */ + default: + return c; + } + }); + } + return json; + } + __name(stringify, "stringify"); + } +}); + +// node_modules/serve-static/index.js +var require_serve_static = __commonJS({ + "node_modules/serve-static/index.js"(exports2, module2) { + "use strict"; + var encodeUrl = require_encodeurl(); + var escapeHtml = require_escape_html(); + var parseUrl = require_parseurl(); + var resolve = require("path").resolve; + var send = require_send(); + var url = require("url"); + module2.exports = serveStatic; + function serveStatic(root, options) { + if (!root) { + throw new TypeError("root path required"); + } + if (typeof root !== "string") { + throw new TypeError("root path must be a string"); + } + var opts = Object.create(options || null); + var fallthrough = opts.fallthrough !== false; + var redirect = opts.redirect !== false; + var setHeaders = opts.setHeaders; + if (setHeaders && typeof setHeaders !== "function") { + throw new TypeError("option setHeaders must be function"); + } + opts.maxage = opts.maxage || opts.maxAge || 0; + opts.root = resolve(root); + var onDirectory = redirect ? createRedirectDirectoryListener() : createNotFoundDirectoryListener(); + return /* @__PURE__ */ __name(function serveStatic2(req, res, next) { + if (req.method !== "GET" && req.method !== "HEAD") { + if (fallthrough) { + return next(); + } + res.statusCode = 405; + res.setHeader("Allow", "GET, HEAD"); + res.setHeader("Content-Length", "0"); + res.end(); + return; + } + var forwardError = !fallthrough; + var originalUrl = parseUrl.original(req); + var path = parseUrl(req).pathname; + if (path === "/" && originalUrl.pathname.substr(-1) !== "/") { + path = ""; + } + var stream = send(req, path, opts); + stream.on("directory", onDirectory); + if (setHeaders) { + stream.on("headers", setHeaders); + } + if (fallthrough) { + stream.on("file", /* @__PURE__ */ __name(function onFile() { + forwardError = true; + }, "onFile")); + } + stream.on("error", /* @__PURE__ */ __name(function error(err) { + if (forwardError || !(err.statusCode < 500)) { + next(err); + return; + } + next(); + }, "error")); + stream.pipe(res); + }, "serveStatic"); + } + __name(serveStatic, "serveStatic"); + function collapseLeadingSlashes(str) { + for (var i = 0; i < str.length; i++) { + if (str.charCodeAt(i) !== 47) { + break; + } + } + return i > 1 ? "/" + str.substr(i) : str; + } + __name(collapseLeadingSlashes, "collapseLeadingSlashes"); + function createHtmlDocument(title, body) { + return '\n\n\n\n' + title + "\n\n\n
" + body + "
\n\n\n"; + } + __name(createHtmlDocument, "createHtmlDocument"); + function createNotFoundDirectoryListener() { + return /* @__PURE__ */ __name(function notFound() { + this.error(404); + }, "notFound"); + } + __name(createNotFoundDirectoryListener, "createNotFoundDirectoryListener"); + function createRedirectDirectoryListener() { + return /* @__PURE__ */ __name(function redirect(res) { + if (this.hasTrailingSlash()) { + this.error(404); + return; + } + var originalUrl = parseUrl.original(this.req); + originalUrl.path = null; + originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + "/"); + var loc = encodeUrl(url.format(originalUrl)); + var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc)); + res.statusCode = 301; + res.setHeader("Content-Type", "text/html; charset=UTF-8"); + res.setHeader("Content-Length", Buffer.byteLength(doc)); + res.setHeader("Content-Security-Policy", "default-src 'none'"); + res.setHeader("X-Content-Type-Options", "nosniff"); + res.setHeader("Location", loc); + res.end(doc); + }, "redirect"); + } + __name(createRedirectDirectoryListener, "createRedirectDirectoryListener"); + } +}); + +// node_modules/express/lib/express.js +var require_express = __commonJS({ + "node_modules/express/lib/express.js"(exports2, module2) { + "use strict"; + var bodyParser = require_body_parser(); + var EventEmitter = require("node:events").EventEmitter; + var mixin = require_merge_descriptors(); + var proto = require_application(); + var Router = require_router(); + var req = require_request(); + var res = require_response(); + exports2 = module2.exports = createApplication; + function createApplication() { + var app = /* @__PURE__ */ __name(function(req2, res2, next) { + app.handle(req2, res2, next); + }, "app"); + mixin(app, EventEmitter.prototype, false); + mixin(app, proto, false); + app.request = Object.create(req, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }); + app.response = Object.create(res, { + app: { configurable: true, enumerable: true, writable: true, value: app } + }); + app.init(); + return app; + } + __name(createApplication, "createApplication"); + exports2.application = proto; + exports2.request = req; + exports2.response = res; + exports2.Route = Router.Route; + exports2.Router = Router; + exports2.json = bodyParser.json; + exports2.raw = bodyParser.raw; + exports2.static = require_serve_static(); + exports2.text = bodyParser.text; + exports2.urlencoded = bodyParser.urlencoded; + } +}); + +// node_modules/express/index.js +var require_express2 = __commonJS({ + "node_modules/express/index.js"(exports2, module2) { + "use strict"; + module2.exports = require_express(); + } +}); + +// node_modules/@nestjs/platform-express/adapters/utils/get-body-parser-options.util.js +var require_get_body_parser_options_util = __commonJS({ + "node_modules/@nestjs/platform-express/adapters/utils/get-body-parser-options.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getBodyParserOptions = getBodyParserOptions; + var rawBodyParser = /* @__PURE__ */ __name((req, _res, buffer) => { + if (Buffer.isBuffer(buffer)) { + req.rawBody = buffer; + } + return true; + }, "rawBodyParser"); + function getBodyParserOptions(rawBody, options) { + let parserOptions = options || {}; + if (rawBody === true) { + parserOptions = { + ...parserOptions, + verify: rawBodyParser + }; + } + return parserOptions; + } + __name(getBodyParserOptions, "getBodyParserOptions"); + } +}); + +// node_modules/@nestjs/platform-express/adapters/express-adapter.js +var require_express_adapter = __commonJS({ + "node_modules/@nestjs/platform-express/adapters/express-adapter.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExpressAdapter = void 0; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var http_adapter_1 = require_http_adapter(); + var router_method_factory_1 = require_router_method_factory(); + var legacy_route_converter_1 = require_legacy_route_converter(); + var cors = require_lib2(); + var express = require_express2(); + var http = require("http"); + var https = require("https"); + var path_to_regexp_1 = require_dist2(); + var get_body_parser_options_util_1 = require_get_body_parser_options_util(); + var ExpressAdapter = class _ExpressAdapter extends http_adapter_1.AbstractHttpAdapter { + static { + __name(this, "ExpressAdapter"); + } + constructor(instance) { + super(instance || express()); + this.routerMethodFactory = new router_method_factory_1.RouterMethodFactory(); + this.logger = new common_12.Logger(_ExpressAdapter.name); + this.openConnections = /* @__PURE__ */ new Set(); + this.instance.use((req, res, next) => { + if (this.onResponseHook) { + res.on("finish", () => { + void this.onResponseHook.apply(this, [req, res]); + }); + } + if (this.onRequestHook) { + void this.onRequestHook.apply(this, [req, res, next]); + } else { + next(); + } + }); + } + setOnRequestHook(onRequestHook) { + this.onRequestHook = onRequestHook; + } + setOnResponseHook(onResponseHook) { + this.onResponseHook = onResponseHook; + } + reply(response, body, statusCode) { + if (statusCode) { + response.status(statusCode); + } + if ((0, shared_utils_1.isNil)(body)) { + return response.send(); + } + if (body instanceof common_12.StreamableFile) { + this.applyStreamHeaders(response, body); + const stream = body.getStream(); + stream.once("error", (err) => { + body.errorHandler(err, response); + }); + return stream.pipe(response).on("error", (err) => body.errorLogger(err)); + } + const responseContentType = response.getHeader("Content-Type"); + if (typeof responseContentType === "string" && !responseContentType.startsWith("application/json") && body?.statusCode >= common_12.HttpStatus.BAD_REQUEST) { + this.logger.warn("Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses"); + response.setHeader("Content-Type", "application/json"); + } + return (0, shared_utils_1.isObject)(body) ? response.json(body) : response.send(String(body)); + } + status(response, statusCode) { + return response.status(statusCode); + } + end(response, message) { + return response.end(message); + } + render(response, view, options) { + return response.render(view, options); + } + redirect(response, statusCode, url) { + return response.redirect(statusCode, url); + } + setErrorHandler(handler, prefix) { + return this.use(handler); + } + setNotFoundHandler(handler, prefix) { + return this.use(handler); + } + isHeadersSent(response) { + return response.headersSent; + } + getHeader(response, name) { + return response.get(name); + } + setHeader(response, name, value) { + return response.set(name, value); + } + appendHeader(response, name, value) { + return response.append(name, value); + } + normalizePath(path) { + try { + const convertedPath = legacy_route_converter_1.LegacyRouteConverter.tryConvert(path); + (0, path_to_regexp_1.pathToRegexp)(convertedPath); + return convertedPath; + } catch (e) { + if (e instanceof TypeError) { + legacy_route_converter_1.LegacyRouteConverter.printError(path); + } + throw e; + } + } + listen(port, ...args) { + return this.httpServer.listen(port, ...args); + } + close() { + this.closeOpenConnections(); + if (!this.httpServer) { + return void 0; + } + return new Promise((resolve) => this.httpServer.close(resolve)); + } + set(...args) { + return this.instance.set(...args); + } + enable(...args) { + return this.instance.enable(...args); + } + disable(...args) { + return this.instance.disable(...args); + } + engine(...args) { + return this.instance.engine(...args); + } + useStaticAssets(path, options) { + if (options && options.prefix) { + return this.use(options.prefix, express.static(path, options)); + } + return this.use(express.static(path, options)); + } + setBaseViewsDir(path) { + return this.set("views", path); + } + setViewEngine(engine) { + return this.set("view engine", engine); + } + getRequestHostname(request) { + return request.hostname; + } + getRequestMethod(request) { + return request.method; + } + getRequestUrl(request) { + return request.originalUrl; + } + enableCors(options) { + return this.use(cors(options)); + } + createMiddlewareFactory(requestMethod) { + return (path, callback) => { + try { + const convertedPath = legacy_route_converter_1.LegacyRouteConverter.tryConvert(path); + return this.routerMethodFactory.get(this.instance, requestMethod).call(this.instance, convertedPath, callback); + } catch (e) { + if (e instanceof TypeError) { + legacy_route_converter_1.LegacyRouteConverter.printError(path); + } + throw e; + } + }; + } + initHttpServer(options) { + const isHttpsEnabled = options && options.httpsOptions; + if (isHttpsEnabled) { + this.httpServer = https.createServer(options.httpsOptions, this.getInstance()); + } else { + this.httpServer = http.createServer(this.getInstance()); + } + if (options?.forceCloseConnections) { + this.trackOpenConnections(); + } + } + registerParserMiddleware(prefix, rawBody) { + const bodyParserJsonOptions = (0, get_body_parser_options_util_1.getBodyParserOptions)(rawBody); + const bodyParserUrlencodedOptions = (0, get_body_parser_options_util_1.getBodyParserOptions)(rawBody, { + extended: true + }); + const parserMiddleware = { + jsonParser: express.json(bodyParserJsonOptions), + urlencodedParser: express.urlencoded(bodyParserUrlencodedOptions) + }; + Object.keys(parserMiddleware).filter((parser) => !this.isMiddlewareApplied(parser)).forEach((parserKey) => this.use(parserMiddleware[parserKey])); + } + useBodyParser(type, rawBody, options) { + const parserOptions = (0, get_body_parser_options_util_1.getBodyParserOptions)(rawBody, options); + const parser = express[type](parserOptions); + this.use(parser); + return this; + } + setLocal(key, value) { + this.instance.locals[key] = value; + return this; + } + getType() { + return "express"; + } + applyVersionFilter(handler, version, versioningOptions) { + const callNextHandler = /* @__PURE__ */ __name((req, res, next) => { + if (!next) { + throw new common_12.InternalServerErrorException("HTTP adapter does not support filtering on version"); + } + return next(); + }, "callNextHandler"); + if (version === common_12.VERSION_NEUTRAL || // URL Versioning is done via the path, so the filter continues forward + versioningOptions.type === common_12.VersioningType.URI) { + const handlerForNoVersioning = /* @__PURE__ */ __name((req, res, next) => handler(req, res, next), "handlerForNoVersioning"); + return handlerForNoVersioning; + } + if (versioningOptions.type === common_12.VersioningType.CUSTOM) { + const handlerForCustomVersioning = /* @__PURE__ */ __name((req, res, next) => { + const extractedVersion = versioningOptions.extractor(req); + if (Array.isArray(version)) { + if (Array.isArray(extractedVersion) && version.filter((v) => extractedVersion.includes(v)).length) { + return handler(req, res, next); + } + if ((0, shared_utils_1.isString)(extractedVersion) && version.includes(extractedVersion)) { + return handler(req, res, next); + } + } else if ((0, shared_utils_1.isString)(version)) { + if (Array.isArray(extractedVersion) && extractedVersion.includes(version)) { + return handler(req, res, next); + } + if ((0, shared_utils_1.isString)(extractedVersion) && version === extractedVersion) { + return handler(req, res, next); + } + } + return callNextHandler(req, res, next); + }, "handlerForCustomVersioning"); + return handlerForCustomVersioning; + } + if (versioningOptions.type === common_12.VersioningType.MEDIA_TYPE) { + const handlerForMediaTypeVersioning = /* @__PURE__ */ __name((req, res, next) => { + const MEDIA_TYPE_HEADER = "Accept"; + const acceptHeaderValue = req.headers?.[MEDIA_TYPE_HEADER] || req.headers?.[MEDIA_TYPE_HEADER.toLowerCase()]; + const acceptHeaderVersionParameter = acceptHeaderValue ? acceptHeaderValue.split(";")[1] : void 0; + if ((0, shared_utils_1.isUndefined)(acceptHeaderVersionParameter)) { + if (Array.isArray(version)) { + if (version.includes(common_12.VERSION_NEUTRAL)) { + return handler(req, res, next); + } + } + } else { + const headerVersion = acceptHeaderVersionParameter.split(versioningOptions.key)[1]; + if (Array.isArray(version)) { + if (version.includes(headerVersion)) { + return handler(req, res, next); + } + } else if ((0, shared_utils_1.isString)(version)) { + if (version === headerVersion) { + return handler(req, res, next); + } + } + } + return callNextHandler(req, res, next); + }, "handlerForMediaTypeVersioning"); + return handlerForMediaTypeVersioning; + } + if (versioningOptions.type === common_12.VersioningType.HEADER) { + const handlerForHeaderVersioning = /* @__PURE__ */ __name((req, res, next) => { + const customHeaderVersionParameter = req.headers?.[versioningOptions.header] || req.headers?.[versioningOptions.header.toLowerCase()]; + if ((0, shared_utils_1.isUndefined)(customHeaderVersionParameter)) { + if (Array.isArray(version)) { + if (version.includes(common_12.VERSION_NEUTRAL)) { + return handler(req, res, next); + } + } + } else { + if (Array.isArray(version)) { + if (version.includes(customHeaderVersionParameter)) { + return handler(req, res, next); + } + } else if ((0, shared_utils_1.isString)(version)) { + if (version === customHeaderVersionParameter) { + return handler(req, res, next); + } + } + } + return callNextHandler(req, res, next); + }, "handlerForHeaderVersioning"); + return handlerForHeaderVersioning; + } + throw new Error("Unsupported versioning options"); + } + trackOpenConnections() { + this.httpServer.on("connection", (socket) => { + this.openConnections.add(socket); + socket.on("close", () => this.openConnections.delete(socket)); + }); + } + closeOpenConnections() { + for (const socket of this.openConnections) { + socket.destroy(); + this.openConnections.delete(socket); + } + } + isMiddlewareApplied(name) { + const app = this.getInstance(); + return !!app.router && !!app.router.stack && (0, shared_utils_1.isFunction)(app.router.stack.filter) && app.router.stack.some((layer) => layer && layer.handle && layer.handle.name === name); + } + setHeaderIfNotExists(response, name, value) { + if (value !== void 0 && response.getHeader(name) === void 0) { + const headerValue = Array.isArray(value) ? value.join(",") : value; + response.setHeader(name, headerValue); + } + } + applyStreamHeaders(response, streamable) { + const headers = streamable.getHeaders(); + this.setHeaderIfNotExists(response, "Content-Type", headers.type); + this.setHeaderIfNotExists(response, "Content-Disposition", headers.disposition); + this.setHeaderIfNotExists(response, "Content-Length", headers.length); + } + }; + exports2.ExpressAdapter = ExpressAdapter; + } +}); + +// node_modules/@nestjs/platform-express/adapters/index.js +var require_adapters2 = __commonJS({ + "node_modules/@nestjs/platform-express/adapters/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_express_adapter(), exports2); + } +}); + +// node_modules/@nestjs/platform-express/interfaces/nest-express-application.interface.js +var require_nest_express_application_interface = __commonJS({ + "node_modules/@nestjs/platform-express/interfaces/nest-express-application.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/platform-express/interfaces/nest-express-body-parser.interface.js +var require_nest_express_body_parser_interface = __commonJS({ + "node_modules/@nestjs/platform-express/interfaces/nest-express-body-parser.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/platform-express/interfaces/index.js +var require_interfaces4 = __commonJS({ + "node_modules/@nestjs/platform-express/interfaces/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_nest_express_application_interface(), exports2); + tslib_1.__exportStar(require_nest_express_body_parser_interface(), exports2); + } +}); + +// node_modules/multer/node_modules/media-typer/index.js +var require_media_typer2 = __commonJS({ + "node_modules/multer/node_modules/media-typer/index.js"(exports2) { + var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g; + var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/; + var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/; + var qescRegExp = /\\([\u0000-\u007f])/g; + var quoteRegExp = /([\\"])/g; + var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/; + var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/; + var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/; + exports2.format = format; + exports2.parse = parse; + function format(obj) { + if (!obj || typeof obj !== "object") { + throw new TypeError("argument obj is required"); + } + var parameters = obj.parameters; + var subtype = obj.subtype; + var suffix = obj.suffix; + var type = obj.type; + if (!type || !typeNameRegExp.test(type)) { + throw new TypeError("invalid type"); + } + if (!subtype || !subtypeNameRegExp.test(subtype)) { + throw new TypeError("invalid subtype"); + } + var string = type + "/" + subtype; + if (suffix) { + if (!typeNameRegExp.test(suffix)) { + throw new TypeError("invalid suffix"); + } + string += "+" + suffix; + } + if (parameters && typeof parameters === "object") { + var param; + var params = Object.keys(parameters).sort(); + for (var i = 0; i < params.length; i++) { + param = params[i]; + if (!tokenRegExp.test(param)) { + throw new TypeError("invalid parameter name"); + } + string += "; " + param + "=" + qstring(parameters[param]); + } + } + return string; + } + __name(format, "format"); + function parse(string) { + if (!string) { + throw new TypeError("argument string is required"); + } + if (typeof string === "object") { + string = getcontenttype(string); + } + if (typeof string !== "string") { + throw new TypeError("argument string is required to be a string"); + } + var index = string.indexOf(";"); + var type = index !== -1 ? string.substr(0, index) : string; + var key; + var match; + var obj = splitType(type); + var params = {}; + var value; + paramRegExp.lastIndex = index; + while (match = paramRegExp.exec(string)) { + if (match.index !== index) { + throw new TypeError("invalid parameter format"); + } + index += match[0].length; + key = match[1].toLowerCase(); + value = match[2]; + if (value[0] === '"') { + value = value.substr(1, value.length - 2).replace(qescRegExp, "$1"); + } + params[key] = value; + } + if (index !== -1 && index !== string.length) { + throw new TypeError("invalid parameter format"); + } + obj.parameters = params; + return obj; + } + __name(parse, "parse"); + function getcontenttype(obj) { + if (typeof obj.getHeader === "function") { + return obj.getHeader("content-type"); + } + if (typeof obj.headers === "object") { + return obj.headers && obj.headers["content-type"]; + } + } + __name(getcontenttype, "getcontenttype"); + function qstring(val) { + var str = String(val); + if (tokenRegExp.test(str)) { + return str; + } + if (str.length > 0 && !textRegExp.test(str)) { + throw new TypeError("invalid parameter value"); + } + return '"' + str.replace(quoteRegExp, "\\$1") + '"'; + } + __name(qstring, "qstring"); + function splitType(string) { + var match = typeRegExp.exec(string.toLowerCase()); + if (!match) { + throw new TypeError("invalid media type"); + } + var type = match[1]; + var subtype = match[2]; + var suffix; + var index = subtype.lastIndexOf("+"); + if (index !== -1) { + suffix = subtype.substr(index + 1); + subtype = subtype.substr(0, index); + } + var obj = { + type, + subtype, + suffix + }; + return obj; + } + __name(splitType, "splitType"); + } +}); + +// node_modules/multer/node_modules/mime-db/db.json +var require_db2 = __commonJS({ + "node_modules/multer/node_modules/mime-db/db.json"(exports2, module2) { + module2.exports = { + "application/1d-interleaved-parityfec": { + source: "iana" + }, + "application/3gpdash-qoe-report+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/3gpp-ims+xml": { + source: "iana", + compressible: true + }, + "application/3gpphal+json": { + source: "iana", + compressible: true + }, + "application/3gpphalforms+json": { + source: "iana", + compressible: true + }, + "application/a2l": { + source: "iana" + }, + "application/ace+cbor": { + source: "iana" + }, + "application/activemessage": { + source: "iana" + }, + "application/activity+json": { + source: "iana", + compressible: true + }, + "application/alto-costmap+json": { + source: "iana", + compressible: true + }, + "application/alto-costmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-directory+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcost+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointcostparams+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointprop+json": { + source: "iana", + compressible: true + }, + "application/alto-endpointpropparams+json": { + source: "iana", + compressible: true + }, + "application/alto-error+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmap+json": { + source: "iana", + compressible: true + }, + "application/alto-networkmapfilter+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamcontrol+json": { + source: "iana", + compressible: true + }, + "application/alto-updatestreamparams+json": { + source: "iana", + compressible: true + }, + "application/aml": { + source: "iana" + }, + "application/andrew-inset": { + source: "iana", + extensions: ["ez"] + }, + "application/applefile": { + source: "iana" + }, + "application/applixware": { + source: "apache", + extensions: ["aw"] + }, + "application/at+jwt": { + source: "iana" + }, + "application/atf": { + source: "iana" + }, + "application/atfx": { + source: "iana" + }, + "application/atom+xml": { + source: "iana", + compressible: true, + extensions: ["atom"] + }, + "application/atomcat+xml": { + source: "iana", + compressible: true, + extensions: ["atomcat"] + }, + "application/atomdeleted+xml": { + source: "iana", + compressible: true, + extensions: ["atomdeleted"] + }, + "application/atomicmail": { + source: "iana" + }, + "application/atomsvc+xml": { + source: "iana", + compressible: true, + extensions: ["atomsvc"] + }, + "application/atsc-dwd+xml": { + source: "iana", + compressible: true, + extensions: ["dwd"] + }, + "application/atsc-dynamic-event-message": { + source: "iana" + }, + "application/atsc-held+xml": { + source: "iana", + compressible: true, + extensions: ["held"] + }, + "application/atsc-rdt+json": { + source: "iana", + compressible: true + }, + "application/atsc-rsat+xml": { + source: "iana", + compressible: true, + extensions: ["rsat"] + }, + "application/atxml": { + source: "iana" + }, + "application/auth-policy+xml": { + source: "iana", + compressible: true + }, + "application/bacnet-xdd+zip": { + source: "iana", + compressible: false + }, + "application/batch-smtp": { + source: "iana" + }, + "application/bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/beep+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/calendar+json": { + source: "iana", + compressible: true + }, + "application/calendar+xml": { + source: "iana", + compressible: true, + extensions: ["xcs"] + }, + "application/call-completion": { + source: "iana" + }, + "application/cals-1840": { + source: "iana" + }, + "application/captive+json": { + source: "iana", + compressible: true + }, + "application/cbor": { + source: "iana" + }, + "application/cbor-seq": { + source: "iana" + }, + "application/cccex": { + source: "iana" + }, + "application/ccmp+xml": { + source: "iana", + compressible: true + }, + "application/ccxml+xml": { + source: "iana", + compressible: true, + extensions: ["ccxml"] + }, + "application/cdfx+xml": { + source: "iana", + compressible: true, + extensions: ["cdfx"] + }, + "application/cdmi-capability": { + source: "iana", + extensions: ["cdmia"] + }, + "application/cdmi-container": { + source: "iana", + extensions: ["cdmic"] + }, + "application/cdmi-domain": { + source: "iana", + extensions: ["cdmid"] + }, + "application/cdmi-object": { + source: "iana", + extensions: ["cdmio"] + }, + "application/cdmi-queue": { + source: "iana", + extensions: ["cdmiq"] + }, + "application/cdni": { + source: "iana" + }, + "application/cea": { + source: "iana" + }, + "application/cea-2018+xml": { + source: "iana", + compressible: true + }, + "application/cellml+xml": { + source: "iana", + compressible: true + }, + "application/cfw": { + source: "iana" + }, + "application/city+json": { + source: "iana", + compressible: true + }, + "application/clr": { + source: "iana" + }, + "application/clue+xml": { + source: "iana", + compressible: true + }, + "application/clue_info+xml": { + source: "iana", + compressible: true + }, + "application/cms": { + source: "iana" + }, + "application/cnrp+xml": { + source: "iana", + compressible: true + }, + "application/coap-group+json": { + source: "iana", + compressible: true + }, + "application/coap-payload": { + source: "iana" + }, + "application/commonground": { + source: "iana" + }, + "application/conference-info+xml": { + source: "iana", + compressible: true + }, + "application/cose": { + source: "iana" + }, + "application/cose-key": { + source: "iana" + }, + "application/cose-key-set": { + source: "iana" + }, + "application/cpl+xml": { + source: "iana", + compressible: true, + extensions: ["cpl"] + }, + "application/csrattrs": { + source: "iana" + }, + "application/csta+xml": { + source: "iana", + compressible: true + }, + "application/cstadata+xml": { + source: "iana", + compressible: true + }, + "application/csvm+json": { + source: "iana", + compressible: true + }, + "application/cu-seeme": { + source: "apache", + extensions: ["cu"] + }, + "application/cwt": { + source: "iana" + }, + "application/cybercash": { + source: "iana" + }, + "application/dart": { + compressible: true + }, + "application/dash+xml": { + source: "iana", + compressible: true, + extensions: ["mpd"] + }, + "application/dash-patch+xml": { + source: "iana", + compressible: true, + extensions: ["mpp"] + }, + "application/dashdelta": { + source: "iana" + }, + "application/davmount+xml": { + source: "iana", + compressible: true, + extensions: ["davmount"] + }, + "application/dca-rft": { + source: "iana" + }, + "application/dcd": { + source: "iana" + }, + "application/dec-dx": { + source: "iana" + }, + "application/dialog-info+xml": { + source: "iana", + compressible: true + }, + "application/dicom": { + source: "iana" + }, + "application/dicom+json": { + source: "iana", + compressible: true + }, + "application/dicom+xml": { + source: "iana", + compressible: true + }, + "application/dii": { + source: "iana" + }, + "application/dit": { + source: "iana" + }, + "application/dns": { + source: "iana" + }, + "application/dns+json": { + source: "iana", + compressible: true + }, + "application/dns-message": { + source: "iana" + }, + "application/docbook+xml": { + source: "apache", + compressible: true, + extensions: ["dbk"] + }, + "application/dots+cbor": { + source: "iana" + }, + "application/dskpp+xml": { + source: "iana", + compressible: true + }, + "application/dssc+der": { + source: "iana", + extensions: ["dssc"] + }, + "application/dssc+xml": { + source: "iana", + compressible: true, + extensions: ["xdssc"] + }, + "application/dvcs": { + source: "iana" + }, + "application/ecmascript": { + source: "iana", + compressible: true, + extensions: ["es", "ecma"] + }, + "application/edi-consent": { + source: "iana" + }, + "application/edi-x12": { + source: "iana", + compressible: false + }, + "application/edifact": { + source: "iana", + compressible: false + }, + "application/efi": { + source: "iana" + }, + "application/elm+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/elm+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.cap+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/emergencycalldata.comment+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.control+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.deviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.ecall.msd": { + source: "iana" + }, + "application/emergencycalldata.providerinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.serviceinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.subscriberinfo+xml": { + source: "iana", + compressible: true + }, + "application/emergencycalldata.veds+xml": { + source: "iana", + compressible: true + }, + "application/emma+xml": { + source: "iana", + compressible: true, + extensions: ["emma"] + }, + "application/emotionml+xml": { + source: "iana", + compressible: true, + extensions: ["emotionml"] + }, + "application/encaprtp": { + source: "iana" + }, + "application/epp+xml": { + source: "iana", + compressible: true + }, + "application/epub+zip": { + source: "iana", + compressible: false, + extensions: ["epub"] + }, + "application/eshop": { + source: "iana" + }, + "application/exi": { + source: "iana", + extensions: ["exi"] + }, + "application/expect-ct-report+json": { + source: "iana", + compressible: true + }, + "application/express": { + source: "iana", + extensions: ["exp"] + }, + "application/fastinfoset": { + source: "iana" + }, + "application/fastsoap": { + source: "iana" + }, + "application/fdt+xml": { + source: "iana", + compressible: true, + extensions: ["fdt"] + }, + "application/fhir+json": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fhir+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/fido.trusted-apps+json": { + compressible: true + }, + "application/fits": { + source: "iana" + }, + "application/flexfec": { + source: "iana" + }, + "application/font-sfnt": { + source: "iana" + }, + "application/font-tdpfr": { + source: "iana", + extensions: ["pfr"] + }, + "application/font-woff": { + source: "iana", + compressible: false + }, + "application/framework-attributes+xml": { + source: "iana", + compressible: true + }, + "application/geo+json": { + source: "iana", + compressible: true, + extensions: ["geojson"] + }, + "application/geo+json-seq": { + source: "iana" + }, + "application/geopackage+sqlite3": { + source: "iana" + }, + "application/geoxacml+xml": { + source: "iana", + compressible: true + }, + "application/gltf-buffer": { + source: "iana" + }, + "application/gml+xml": { + source: "iana", + compressible: true, + extensions: ["gml"] + }, + "application/gpx+xml": { + source: "apache", + compressible: true, + extensions: ["gpx"] + }, + "application/gxf": { + source: "apache", + extensions: ["gxf"] + }, + "application/gzip": { + source: "iana", + compressible: false, + extensions: ["gz"] + }, + "application/h224": { + source: "iana" + }, + "application/held+xml": { + source: "iana", + compressible: true + }, + "application/hjson": { + extensions: ["hjson"] + }, + "application/http": { + source: "iana" + }, + "application/hyperstudio": { + source: "iana", + extensions: ["stk"] + }, + "application/ibe-key-request+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pkg-reply+xml": { + source: "iana", + compressible: true + }, + "application/ibe-pp-data": { + source: "iana" + }, + "application/iges": { + source: "iana" + }, + "application/im-iscomposing+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/index": { + source: "iana" + }, + "application/index.cmd": { + source: "iana" + }, + "application/index.obj": { + source: "iana" + }, + "application/index.response": { + source: "iana" + }, + "application/index.vnd": { + source: "iana" + }, + "application/inkml+xml": { + source: "iana", + compressible: true, + extensions: ["ink", "inkml"] + }, + "application/iotp": { + source: "iana" + }, + "application/ipfix": { + source: "iana", + extensions: ["ipfix"] + }, + "application/ipp": { + source: "iana" + }, + "application/isup": { + source: "iana" + }, + "application/its+xml": { + source: "iana", + compressible: true, + extensions: ["its"] + }, + "application/java-archive": { + source: "apache", + compressible: false, + extensions: ["jar", "war", "ear"] + }, + "application/java-serialized-object": { + source: "apache", + compressible: false, + extensions: ["ser"] + }, + "application/java-vm": { + source: "apache", + compressible: false, + extensions: ["class"] + }, + "application/javascript": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["js", "mjs"] + }, + "application/jf2feed+json": { + source: "iana", + compressible: true + }, + "application/jose": { + source: "iana" + }, + "application/jose+json": { + source: "iana", + compressible: true + }, + "application/jrd+json": { + source: "iana", + compressible: true + }, + "application/jscalendar+json": { + source: "iana", + compressible: true + }, + "application/json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["json", "map"] + }, + "application/json-patch+json": { + source: "iana", + compressible: true + }, + "application/json-seq": { + source: "iana" + }, + "application/json5": { + extensions: ["json5"] + }, + "application/jsonml+json": { + source: "apache", + compressible: true, + extensions: ["jsonml"] + }, + "application/jwk+json": { + source: "iana", + compressible: true + }, + "application/jwk-set+json": { + source: "iana", + compressible: true + }, + "application/jwt": { + source: "iana" + }, + "application/kpml-request+xml": { + source: "iana", + compressible: true + }, + "application/kpml-response+xml": { + source: "iana", + compressible: true + }, + "application/ld+json": { + source: "iana", + compressible: true, + extensions: ["jsonld"] + }, + "application/lgr+xml": { + source: "iana", + compressible: true, + extensions: ["lgr"] + }, + "application/link-format": { + source: "iana" + }, + "application/load-control+xml": { + source: "iana", + compressible: true + }, + "application/lost+xml": { + source: "iana", + compressible: true, + extensions: ["lostxml"] + }, + "application/lostsync+xml": { + source: "iana", + compressible: true + }, + "application/lpf+zip": { + source: "iana", + compressible: false + }, + "application/lxf": { + source: "iana" + }, + "application/mac-binhex40": { + source: "iana", + extensions: ["hqx"] + }, + "application/mac-compactpro": { + source: "apache", + extensions: ["cpt"] + }, + "application/macwriteii": { + source: "iana" + }, + "application/mads+xml": { + source: "iana", + compressible: true, + extensions: ["mads"] + }, + "application/manifest+json": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["webmanifest"] + }, + "application/marc": { + source: "iana", + extensions: ["mrc"] + }, + "application/marcxml+xml": { + source: "iana", + compressible: true, + extensions: ["mrcx"] + }, + "application/mathematica": { + source: "iana", + extensions: ["ma", "nb", "mb"] + }, + "application/mathml+xml": { + source: "iana", + compressible: true, + extensions: ["mathml"] + }, + "application/mathml-content+xml": { + source: "iana", + compressible: true + }, + "application/mathml-presentation+xml": { + source: "iana", + compressible: true + }, + "application/mbms-associated-procedure-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-deregister+xml": { + source: "iana", + compressible: true + }, + "application/mbms-envelope+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk+xml": { + source: "iana", + compressible: true + }, + "application/mbms-msk-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-protection-description+xml": { + source: "iana", + compressible: true + }, + "application/mbms-reception-report+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register+xml": { + source: "iana", + compressible: true + }, + "application/mbms-register-response+xml": { + source: "iana", + compressible: true + }, + "application/mbms-schedule+xml": { + source: "iana", + compressible: true + }, + "application/mbms-user-service-description+xml": { + source: "iana", + compressible: true + }, + "application/mbox": { + source: "iana", + extensions: ["mbox"] + }, + "application/media-policy-dataset+xml": { + source: "iana", + compressible: true, + extensions: ["mpf"] + }, + "application/media_control+xml": { + source: "iana", + compressible: true + }, + "application/mediaservercontrol+xml": { + source: "iana", + compressible: true, + extensions: ["mscml"] + }, + "application/merge-patch+json": { + source: "iana", + compressible: true + }, + "application/metalink+xml": { + source: "apache", + compressible: true, + extensions: ["metalink"] + }, + "application/metalink4+xml": { + source: "iana", + compressible: true, + extensions: ["meta4"] + }, + "application/mets+xml": { + source: "iana", + compressible: true, + extensions: ["mets"] + }, + "application/mf4": { + source: "iana" + }, + "application/mikey": { + source: "iana" + }, + "application/mipc": { + source: "iana" + }, + "application/missing-blocks+cbor-seq": { + source: "iana" + }, + "application/mmt-aei+xml": { + source: "iana", + compressible: true, + extensions: ["maei"] + }, + "application/mmt-usd+xml": { + source: "iana", + compressible: true, + extensions: ["musd"] + }, + "application/mods+xml": { + source: "iana", + compressible: true, + extensions: ["mods"] + }, + "application/moss-keys": { + source: "iana" + }, + "application/moss-signature": { + source: "iana" + }, + "application/mosskey-data": { + source: "iana" + }, + "application/mosskey-request": { + source: "iana" + }, + "application/mp21": { + source: "iana", + extensions: ["m21", "mp21"] + }, + "application/mp4": { + source: "iana", + extensions: ["mp4s", "m4p"] + }, + "application/mpeg4-generic": { + source: "iana" + }, + "application/mpeg4-iod": { + source: "iana" + }, + "application/mpeg4-iod-xmt": { + source: "iana" + }, + "application/mrb-consumer+xml": { + source: "iana", + compressible: true + }, + "application/mrb-publish+xml": { + source: "iana", + compressible: true + }, + "application/msc-ivr+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msc-mixer+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/msword": { + source: "iana", + compressible: false, + extensions: ["doc", "dot"] + }, + "application/mud+json": { + source: "iana", + compressible: true + }, + "application/multipart-core": { + source: "iana" + }, + "application/mxf": { + source: "iana", + extensions: ["mxf"] + }, + "application/n-quads": { + source: "iana", + extensions: ["nq"] + }, + "application/n-triples": { + source: "iana", + extensions: ["nt"] + }, + "application/nasdata": { + source: "iana" + }, + "application/news-checkgroups": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-groupinfo": { + source: "iana", + charset: "US-ASCII" + }, + "application/news-transmission": { + source: "iana" + }, + "application/nlsml+xml": { + source: "iana", + compressible: true + }, + "application/node": { + source: "iana", + extensions: ["cjs"] + }, + "application/nss": { + source: "iana" + }, + "application/oauth-authz-req+jwt": { + source: "iana" + }, + "application/oblivious-dns-message": { + source: "iana" + }, + "application/ocsp-request": { + source: "iana" + }, + "application/ocsp-response": { + source: "iana" + }, + "application/octet-stream": { + source: "iana", + compressible: false, + extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"] + }, + "application/oda": { + source: "iana", + extensions: ["oda"] + }, + "application/odm+xml": { + source: "iana", + compressible: true + }, + "application/odx": { + source: "iana" + }, + "application/oebps-package+xml": { + source: "iana", + compressible: true, + extensions: ["opf"] + }, + "application/ogg": { + source: "iana", + compressible: false, + extensions: ["ogx"] + }, + "application/omdoc+xml": { + source: "apache", + compressible: true, + extensions: ["omdoc"] + }, + "application/onenote": { + source: "apache", + extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"] + }, + "application/opc-nodeset+xml": { + source: "iana", + compressible: true + }, + "application/oscore": { + source: "iana" + }, + "application/oxps": { + source: "iana", + extensions: ["oxps"] + }, + "application/p21": { + source: "iana" + }, + "application/p21+zip": { + source: "iana", + compressible: false + }, + "application/p2p-overlay+xml": { + source: "iana", + compressible: true, + extensions: ["relo"] + }, + "application/parityfec": { + source: "iana" + }, + "application/passport": { + source: "iana" + }, + "application/patch-ops-error+xml": { + source: "iana", + compressible: true, + extensions: ["xer"] + }, + "application/pdf": { + source: "iana", + compressible: false, + extensions: ["pdf"] + }, + "application/pdx": { + source: "iana" + }, + "application/pem-certificate-chain": { + source: "iana" + }, + "application/pgp-encrypted": { + source: "iana", + compressible: false, + extensions: ["pgp"] + }, + "application/pgp-keys": { + source: "iana", + extensions: ["asc"] + }, + "application/pgp-signature": { + source: "iana", + extensions: ["asc", "sig"] + }, + "application/pics-rules": { + source: "apache", + extensions: ["prf"] + }, + "application/pidf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pidf-diff+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/pkcs10": { + source: "iana", + extensions: ["p10"] + }, + "application/pkcs12": { + source: "iana" + }, + "application/pkcs7-mime": { + source: "iana", + extensions: ["p7m", "p7c"] + }, + "application/pkcs7-signature": { + source: "iana", + extensions: ["p7s"] + }, + "application/pkcs8": { + source: "iana", + extensions: ["p8"] + }, + "application/pkcs8-encrypted": { + source: "iana" + }, + "application/pkix-attr-cert": { + source: "iana", + extensions: ["ac"] + }, + "application/pkix-cert": { + source: "iana", + extensions: ["cer"] + }, + "application/pkix-crl": { + source: "iana", + extensions: ["crl"] + }, + "application/pkix-pkipath": { + source: "iana", + extensions: ["pkipath"] + }, + "application/pkixcmp": { + source: "iana", + extensions: ["pki"] + }, + "application/pls+xml": { + source: "iana", + compressible: true, + extensions: ["pls"] + }, + "application/poc-settings+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/postscript": { + source: "iana", + compressible: true, + extensions: ["ai", "eps", "ps"] + }, + "application/ppsp-tracker+json": { + source: "iana", + compressible: true + }, + "application/problem+json": { + source: "iana", + compressible: true + }, + "application/problem+xml": { + source: "iana", + compressible: true + }, + "application/provenance+xml": { + source: "iana", + compressible: true, + extensions: ["provx"] + }, + "application/prs.alvestrand.titrax-sheet": { + source: "iana" + }, + "application/prs.cww": { + source: "iana", + extensions: ["cww"] + }, + "application/prs.cyn": { + source: "iana", + charset: "7-BIT" + }, + "application/prs.hpub+zip": { + source: "iana", + compressible: false + }, + "application/prs.nprend": { + source: "iana" + }, + "application/prs.plucker": { + source: "iana" + }, + "application/prs.rdf-xml-crypt": { + source: "iana" + }, + "application/prs.xsf+xml": { + source: "iana", + compressible: true + }, + "application/pskc+xml": { + source: "iana", + compressible: true, + extensions: ["pskcxml"] + }, + "application/pvd+json": { + source: "iana", + compressible: true + }, + "application/qsig": { + source: "iana" + }, + "application/raml+yaml": { + compressible: true, + extensions: ["raml"] + }, + "application/raptorfec": { + source: "iana" + }, + "application/rdap+json": { + source: "iana", + compressible: true + }, + "application/rdf+xml": { + source: "iana", + compressible: true, + extensions: ["rdf", "owl"] + }, + "application/reginfo+xml": { + source: "iana", + compressible: true, + extensions: ["rif"] + }, + "application/relax-ng-compact-syntax": { + source: "iana", + extensions: ["rnc"] + }, + "application/remote-printing": { + source: "iana" + }, + "application/reputon+json": { + source: "iana", + compressible: true + }, + "application/resource-lists+xml": { + source: "iana", + compressible: true, + extensions: ["rl"] + }, + "application/resource-lists-diff+xml": { + source: "iana", + compressible: true, + extensions: ["rld"] + }, + "application/rfc+xml": { + source: "iana", + compressible: true + }, + "application/riscos": { + source: "iana" + }, + "application/rlmi+xml": { + source: "iana", + compressible: true + }, + "application/rls-services+xml": { + source: "iana", + compressible: true, + extensions: ["rs"] + }, + "application/route-apd+xml": { + source: "iana", + compressible: true, + extensions: ["rapd"] + }, + "application/route-s-tsid+xml": { + source: "iana", + compressible: true, + extensions: ["sls"] + }, + "application/route-usd+xml": { + source: "iana", + compressible: true, + extensions: ["rusd"] + }, + "application/rpki-ghostbusters": { + source: "iana", + extensions: ["gbr"] + }, + "application/rpki-manifest": { + source: "iana", + extensions: ["mft"] + }, + "application/rpki-publication": { + source: "iana" + }, + "application/rpki-roa": { + source: "iana", + extensions: ["roa"] + }, + "application/rpki-updown": { + source: "iana" + }, + "application/rsd+xml": { + source: "apache", + compressible: true, + extensions: ["rsd"] + }, + "application/rss+xml": { + source: "apache", + compressible: true, + extensions: ["rss"] + }, + "application/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "application/rtploopback": { + source: "iana" + }, + "application/rtx": { + source: "iana" + }, + "application/samlassertion+xml": { + source: "iana", + compressible: true + }, + "application/samlmetadata+xml": { + source: "iana", + compressible: true + }, + "application/sarif+json": { + source: "iana", + compressible: true + }, + "application/sarif-external-properties+json": { + source: "iana", + compressible: true + }, + "application/sbe": { + source: "iana" + }, + "application/sbml+xml": { + source: "iana", + compressible: true, + extensions: ["sbml"] + }, + "application/scaip+xml": { + source: "iana", + compressible: true + }, + "application/scim+json": { + source: "iana", + compressible: true + }, + "application/scvp-cv-request": { + source: "iana", + extensions: ["scq"] + }, + "application/scvp-cv-response": { + source: "iana", + extensions: ["scs"] + }, + "application/scvp-vp-request": { + source: "iana", + extensions: ["spq"] + }, + "application/scvp-vp-response": { + source: "iana", + extensions: ["spp"] + }, + "application/sdp": { + source: "iana", + extensions: ["sdp"] + }, + "application/secevent+jwt": { + source: "iana" + }, + "application/senml+cbor": { + source: "iana" + }, + "application/senml+json": { + source: "iana", + compressible: true + }, + "application/senml+xml": { + source: "iana", + compressible: true, + extensions: ["senmlx"] + }, + "application/senml-etch+cbor": { + source: "iana" + }, + "application/senml-etch+json": { + source: "iana", + compressible: true + }, + "application/senml-exi": { + source: "iana" + }, + "application/sensml+cbor": { + source: "iana" + }, + "application/sensml+json": { + source: "iana", + compressible: true + }, + "application/sensml+xml": { + source: "iana", + compressible: true, + extensions: ["sensmlx"] + }, + "application/sensml-exi": { + source: "iana" + }, + "application/sep+xml": { + source: "iana", + compressible: true + }, + "application/sep-exi": { + source: "iana" + }, + "application/session-info": { + source: "iana" + }, + "application/set-payment": { + source: "iana" + }, + "application/set-payment-initiation": { + source: "iana", + extensions: ["setpay"] + }, + "application/set-registration": { + source: "iana" + }, + "application/set-registration-initiation": { + source: "iana", + extensions: ["setreg"] + }, + "application/sgml": { + source: "iana" + }, + "application/sgml-open-catalog": { + source: "iana" + }, + "application/shf+xml": { + source: "iana", + compressible: true, + extensions: ["shf"] + }, + "application/sieve": { + source: "iana", + extensions: ["siv", "sieve"] + }, + "application/simple-filter+xml": { + source: "iana", + compressible: true + }, + "application/simple-message-summary": { + source: "iana" + }, + "application/simplesymbolcontainer": { + source: "iana" + }, + "application/sipc": { + source: "iana" + }, + "application/slate": { + source: "iana" + }, + "application/smil": { + source: "iana" + }, + "application/smil+xml": { + source: "iana", + compressible: true, + extensions: ["smi", "smil"] + }, + "application/smpte336m": { + source: "iana" + }, + "application/soap+fastinfoset": { + source: "iana" + }, + "application/soap+xml": { + source: "iana", + compressible: true + }, + "application/sparql-query": { + source: "iana", + extensions: ["rq"] + }, + "application/sparql-results+xml": { + source: "iana", + compressible: true, + extensions: ["srx"] + }, + "application/spdx+json": { + source: "iana", + compressible: true + }, + "application/spirits-event+xml": { + source: "iana", + compressible: true + }, + "application/sql": { + source: "iana" + }, + "application/srgs": { + source: "iana", + extensions: ["gram"] + }, + "application/srgs+xml": { + source: "iana", + compressible: true, + extensions: ["grxml"] + }, + "application/sru+xml": { + source: "iana", + compressible: true, + extensions: ["sru"] + }, + "application/ssdl+xml": { + source: "apache", + compressible: true, + extensions: ["ssdl"] + }, + "application/ssml+xml": { + source: "iana", + compressible: true, + extensions: ["ssml"] + }, + "application/stix+json": { + source: "iana", + compressible: true + }, + "application/swid+xml": { + source: "iana", + compressible: true, + extensions: ["swidtag"] + }, + "application/tamp-apex-update": { + source: "iana" + }, + "application/tamp-apex-update-confirm": { + source: "iana" + }, + "application/tamp-community-update": { + source: "iana" + }, + "application/tamp-community-update-confirm": { + source: "iana" + }, + "application/tamp-error": { + source: "iana" + }, + "application/tamp-sequence-adjust": { + source: "iana" + }, + "application/tamp-sequence-adjust-confirm": { + source: "iana" + }, + "application/tamp-status-query": { + source: "iana" + }, + "application/tamp-status-response": { + source: "iana" + }, + "application/tamp-update": { + source: "iana" + }, + "application/tamp-update-confirm": { + source: "iana" + }, + "application/tar": { + compressible: true + }, + "application/taxii+json": { + source: "iana", + compressible: true + }, + "application/td+json": { + source: "iana", + compressible: true + }, + "application/tei+xml": { + source: "iana", + compressible: true, + extensions: ["tei", "teicorpus"] + }, + "application/tetra_isi": { + source: "iana" + }, + "application/thraud+xml": { + source: "iana", + compressible: true, + extensions: ["tfi"] + }, + "application/timestamp-query": { + source: "iana" + }, + "application/timestamp-reply": { + source: "iana" + }, + "application/timestamped-data": { + source: "iana", + extensions: ["tsd"] + }, + "application/tlsrpt+gzip": { + source: "iana" + }, + "application/tlsrpt+json": { + source: "iana", + compressible: true + }, + "application/tnauthlist": { + source: "iana" + }, + "application/token-introspection+jwt": { + source: "iana" + }, + "application/toml": { + compressible: true, + extensions: ["toml"] + }, + "application/trickle-ice-sdpfrag": { + source: "iana" + }, + "application/trig": { + source: "iana", + extensions: ["trig"] + }, + "application/ttml+xml": { + source: "iana", + compressible: true, + extensions: ["ttml"] + }, + "application/tve-trigger": { + source: "iana" + }, + "application/tzif": { + source: "iana" + }, + "application/tzif-leap": { + source: "iana" + }, + "application/ubjson": { + compressible: false, + extensions: ["ubj"] + }, + "application/ulpfec": { + source: "iana" + }, + "application/urc-grpsheet+xml": { + source: "iana", + compressible: true + }, + "application/urc-ressheet+xml": { + source: "iana", + compressible: true, + extensions: ["rsheet"] + }, + "application/urc-targetdesc+xml": { + source: "iana", + compressible: true, + extensions: ["td"] + }, + "application/urc-uisocketdesc+xml": { + source: "iana", + compressible: true + }, + "application/vcard+json": { + source: "iana", + compressible: true + }, + "application/vcard+xml": { + source: "iana", + compressible: true + }, + "application/vemmi": { + source: "iana" + }, + "application/vividence.scriptfile": { + source: "apache" + }, + "application/vnd.1000minds.decision-model+xml": { + source: "iana", + compressible: true, + extensions: ["1km"] + }, + "application/vnd.3gpp-prose+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-prose-pc3ch+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp-v2x-local-service-information": { + source: "iana" + }, + "application/vnd.3gpp.5gnas": { + source: "iana" + }, + "application/vnd.3gpp.access-transfer-events+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.bsf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gmop+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.gtpc": { + source: "iana" + }, + "application/vnd.3gpp.interworking-data": { + source: "iana" + }, + "application/vnd.3gpp.lpp": { + source: "iana" + }, + "application/vnd.3gpp.mc-signalling-ear": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-payload": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-signalling": { + source: "iana" + }, + "application/vnd.3gpp.mcdata-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcdata-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-floor-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-signed+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-ue-init-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcptt-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-affiliation-command+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-affiliation-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-location-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-service-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-transmission-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-ue-config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mcvideo-user-profile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.mid-call+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ngap": { + source: "iana" + }, + "application/vnd.3gpp.pfcp": { + source: "iana" + }, + "application/vnd.3gpp.pic-bw-large": { + source: "iana", + extensions: ["plb"] + }, + "application/vnd.3gpp.pic-bw-small": { + source: "iana", + extensions: ["psb"] + }, + "application/vnd.3gpp.pic-bw-var": { + source: "iana", + extensions: ["pvb"] + }, + "application/vnd.3gpp.s1ap": { + source: "iana" + }, + "application/vnd.3gpp.sms": { + source: "iana" + }, + "application/vnd.3gpp.sms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-ext+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.srvcc-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.state-and-event-info+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp.ussd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.bcmcsinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.3gpp2.sms": { + source: "iana" + }, + "application/vnd.3gpp2.tcap": { + source: "iana", + extensions: ["tcap"] + }, + "application/vnd.3lightssoftware.imagescal": { + source: "iana" + }, + "application/vnd.3m.post-it-notes": { + source: "iana", + extensions: ["pwn"] + }, + "application/vnd.accpac.simply.aso": { + source: "iana", + extensions: ["aso"] + }, + "application/vnd.accpac.simply.imp": { + source: "iana", + extensions: ["imp"] + }, + "application/vnd.acucobol": { + source: "iana", + extensions: ["acu"] + }, + "application/vnd.acucorp": { + source: "iana", + extensions: ["atc", "acutc"] + }, + "application/vnd.adobe.air-application-installer-package+zip": { + source: "apache", + compressible: false, + extensions: ["air"] + }, + "application/vnd.adobe.flash.movie": { + source: "iana" + }, + "application/vnd.adobe.formscentral.fcdt": { + source: "iana", + extensions: ["fcdt"] + }, + "application/vnd.adobe.fxp": { + source: "iana", + extensions: ["fxp", "fxpl"] + }, + "application/vnd.adobe.partial-upload": { + source: "iana" + }, + "application/vnd.adobe.xdp+xml": { + source: "iana", + compressible: true, + extensions: ["xdp"] + }, + "application/vnd.adobe.xfdf": { + source: "iana", + extensions: ["xfdf"] + }, + "application/vnd.aether.imp": { + source: "iana" + }, + "application/vnd.afpc.afplinedata": { + source: "iana" + }, + "application/vnd.afpc.afplinedata-pagedef": { + source: "iana" + }, + "application/vnd.afpc.cmoca-cmresource": { + source: "iana" + }, + "application/vnd.afpc.foca-charset": { + source: "iana" + }, + "application/vnd.afpc.foca-codedfont": { + source: "iana" + }, + "application/vnd.afpc.foca-codepage": { + source: "iana" + }, + "application/vnd.afpc.modca": { + source: "iana" + }, + "application/vnd.afpc.modca-cmtable": { + source: "iana" + }, + "application/vnd.afpc.modca-formdef": { + source: "iana" + }, + "application/vnd.afpc.modca-mediummap": { + source: "iana" + }, + "application/vnd.afpc.modca-objectcontainer": { + source: "iana" + }, + "application/vnd.afpc.modca-overlay": { + source: "iana" + }, + "application/vnd.afpc.modca-pagesegment": { + source: "iana" + }, + "application/vnd.age": { + source: "iana", + extensions: ["age"] + }, + "application/vnd.ah-barcode": { + source: "iana" + }, + "application/vnd.ahead.space": { + source: "iana", + extensions: ["ahead"] + }, + "application/vnd.airzip.filesecure.azf": { + source: "iana", + extensions: ["azf"] + }, + "application/vnd.airzip.filesecure.azs": { + source: "iana", + extensions: ["azs"] + }, + "application/vnd.amadeus+json": { + source: "iana", + compressible: true + }, + "application/vnd.amazon.ebook": { + source: "apache", + extensions: ["azw"] + }, + "application/vnd.amazon.mobi8-ebook": { + source: "iana" + }, + "application/vnd.americandynamics.acc": { + source: "iana", + extensions: ["acc"] + }, + "application/vnd.amiga.ami": { + source: "iana", + extensions: ["ami"] + }, + "application/vnd.amundsen.maze+xml": { + source: "iana", + compressible: true + }, + "application/vnd.android.ota": { + source: "iana" + }, + "application/vnd.android.package-archive": { + source: "apache", + compressible: false, + extensions: ["apk"] + }, + "application/vnd.anki": { + source: "iana" + }, + "application/vnd.anser-web-certificate-issue-initiation": { + source: "iana", + extensions: ["cii"] + }, + "application/vnd.anser-web-funds-transfer-initiation": { + source: "apache", + extensions: ["fti"] + }, + "application/vnd.antix.game-component": { + source: "iana", + extensions: ["atx"] + }, + "application/vnd.apache.arrow.file": { + source: "iana" + }, + "application/vnd.apache.arrow.stream": { + source: "iana" + }, + "application/vnd.apache.thrift.binary": { + source: "iana" + }, + "application/vnd.apache.thrift.compact": { + source: "iana" + }, + "application/vnd.apache.thrift.json": { + source: "iana" + }, + "application/vnd.api+json": { + source: "iana", + compressible: true + }, + "application/vnd.aplextor.warrp+json": { + source: "iana", + compressible: true + }, + "application/vnd.apothekende.reservation+json": { + source: "iana", + compressible: true + }, + "application/vnd.apple.installer+xml": { + source: "iana", + compressible: true, + extensions: ["mpkg"] + }, + "application/vnd.apple.keynote": { + source: "iana", + extensions: ["key"] + }, + "application/vnd.apple.mpegurl": { + source: "iana", + extensions: ["m3u8"] + }, + "application/vnd.apple.numbers": { + source: "iana", + extensions: ["numbers"] + }, + "application/vnd.apple.pages": { + source: "iana", + extensions: ["pages"] + }, + "application/vnd.apple.pkpass": { + compressible: false, + extensions: ["pkpass"] + }, + "application/vnd.arastra.swi": { + source: "iana" + }, + "application/vnd.aristanetworks.swi": { + source: "iana", + extensions: ["swi"] + }, + "application/vnd.artisan+json": { + source: "iana", + compressible: true + }, + "application/vnd.artsquare": { + source: "iana" + }, + "application/vnd.astraea-software.iota": { + source: "iana", + extensions: ["iota"] + }, + "application/vnd.audiograph": { + source: "iana", + extensions: ["aep"] + }, + "application/vnd.autopackage": { + source: "iana" + }, + "application/vnd.avalon+json": { + source: "iana", + compressible: true + }, + "application/vnd.avistar+xml": { + source: "iana", + compressible: true + }, + "application/vnd.balsamiq.bmml+xml": { + source: "iana", + compressible: true, + extensions: ["bmml"] + }, + "application/vnd.balsamiq.bmpr": { + source: "iana" + }, + "application/vnd.banana-accounting": { + source: "iana" + }, + "application/vnd.bbf.usp.error": { + source: "iana" + }, + "application/vnd.bbf.usp.msg": { + source: "iana" + }, + "application/vnd.bbf.usp.msg+json": { + source: "iana", + compressible: true + }, + "application/vnd.bekitzur-stech+json": { + source: "iana", + compressible: true + }, + "application/vnd.bint.med-content": { + source: "iana" + }, + "application/vnd.biopax.rdf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.blink-idb-value-wrapper": { + source: "iana" + }, + "application/vnd.blueice.multipass": { + source: "iana", + extensions: ["mpm"] + }, + "application/vnd.bluetooth.ep.oob": { + source: "iana" + }, + "application/vnd.bluetooth.le.oob": { + source: "iana" + }, + "application/vnd.bmi": { + source: "iana", + extensions: ["bmi"] + }, + "application/vnd.bpf": { + source: "iana" + }, + "application/vnd.bpf3": { + source: "iana" + }, + "application/vnd.businessobjects": { + source: "iana", + extensions: ["rep"] + }, + "application/vnd.byu.uapi+json": { + source: "iana", + compressible: true + }, + "application/vnd.cab-jscript": { + source: "iana" + }, + "application/vnd.canon-cpdl": { + source: "iana" + }, + "application/vnd.canon-lips": { + source: "iana" + }, + "application/vnd.capasystems-pg+json": { + source: "iana", + compressible: true + }, + "application/vnd.cendio.thinlinc.clientconf": { + source: "iana" + }, + "application/vnd.century-systems.tcp_stream": { + source: "iana" + }, + "application/vnd.chemdraw+xml": { + source: "iana", + compressible: true, + extensions: ["cdxml"] + }, + "application/vnd.chess-pgn": { + source: "iana" + }, + "application/vnd.chipnuts.karaoke-mmd": { + source: "iana", + extensions: ["mmd"] + }, + "application/vnd.ciedi": { + source: "iana" + }, + "application/vnd.cinderella": { + source: "iana", + extensions: ["cdy"] + }, + "application/vnd.cirpack.isdn-ext": { + source: "iana" + }, + "application/vnd.citationstyles.style+xml": { + source: "iana", + compressible: true, + extensions: ["csl"] + }, + "application/vnd.claymore": { + source: "iana", + extensions: ["cla"] + }, + "application/vnd.cloanto.rp9": { + source: "iana", + extensions: ["rp9"] + }, + "application/vnd.clonk.c4group": { + source: "iana", + extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"] + }, + "application/vnd.cluetrust.cartomobile-config": { + source: "iana", + extensions: ["c11amc"] + }, + "application/vnd.cluetrust.cartomobile-config-pkg": { + source: "iana", + extensions: ["c11amz"] + }, + "application/vnd.coffeescript": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.document-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.presentation-template": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet": { + source: "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet-template": { + source: "iana" + }, + "application/vnd.collection+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.doc+json": { + source: "iana", + compressible: true + }, + "application/vnd.collection.next+json": { + source: "iana", + compressible: true + }, + "application/vnd.comicbook+zip": { + source: "iana", + compressible: false + }, + "application/vnd.comicbook-rar": { + source: "iana" + }, + "application/vnd.commerce-battelle": { + source: "iana" + }, + "application/vnd.commonspace": { + source: "iana", + extensions: ["csp"] + }, + "application/vnd.contact.cmsg": { + source: "iana", + extensions: ["cdbcmsg"] + }, + "application/vnd.coreos.ignition+json": { + source: "iana", + compressible: true + }, + "application/vnd.cosmocaller": { + source: "iana", + extensions: ["cmc"] + }, + "application/vnd.crick.clicker": { + source: "iana", + extensions: ["clkx"] + }, + "application/vnd.crick.clicker.keyboard": { + source: "iana", + extensions: ["clkk"] + }, + "application/vnd.crick.clicker.palette": { + source: "iana", + extensions: ["clkp"] + }, + "application/vnd.crick.clicker.template": { + source: "iana", + extensions: ["clkt"] + }, + "application/vnd.crick.clicker.wordbank": { + source: "iana", + extensions: ["clkw"] + }, + "application/vnd.criticaltools.wbs+xml": { + source: "iana", + compressible: true, + extensions: ["wbs"] + }, + "application/vnd.cryptii.pipe+json": { + source: "iana", + compressible: true + }, + "application/vnd.crypto-shade-file": { + source: "iana" + }, + "application/vnd.cryptomator.encrypted": { + source: "iana" + }, + "application/vnd.cryptomator.vault": { + source: "iana" + }, + "application/vnd.ctc-posml": { + source: "iana", + extensions: ["pml"] + }, + "application/vnd.ctct.ws+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cups-pdf": { + source: "iana" + }, + "application/vnd.cups-postscript": { + source: "iana" + }, + "application/vnd.cups-ppd": { + source: "iana", + extensions: ["ppd"] + }, + "application/vnd.cups-raster": { + source: "iana" + }, + "application/vnd.cups-raw": { + source: "iana" + }, + "application/vnd.curl": { + source: "iana" + }, + "application/vnd.curl.car": { + source: "apache", + extensions: ["car"] + }, + "application/vnd.curl.pcurl": { + source: "apache", + extensions: ["pcurl"] + }, + "application/vnd.cyan.dean.root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.cybank": { + source: "iana" + }, + "application/vnd.cyclonedx+json": { + source: "iana", + compressible: true + }, + "application/vnd.cyclonedx+xml": { + source: "iana", + compressible: true + }, + "application/vnd.d2l.coursepackage1p0+zip": { + source: "iana", + compressible: false + }, + "application/vnd.d3m-dataset": { + source: "iana" + }, + "application/vnd.d3m-problem": { + source: "iana" + }, + "application/vnd.dart": { + source: "iana", + compressible: true, + extensions: ["dart"] + }, + "application/vnd.data-vision.rdz": { + source: "iana", + extensions: ["rdz"] + }, + "application/vnd.datapackage+json": { + source: "iana", + compressible: true + }, + "application/vnd.dataresource+json": { + source: "iana", + compressible: true + }, + "application/vnd.dbf": { + source: "iana", + extensions: ["dbf"] + }, + "application/vnd.debian.binary-package": { + source: "iana" + }, + "application/vnd.dece.data": { + source: "iana", + extensions: ["uvf", "uvvf", "uvd", "uvvd"] + }, + "application/vnd.dece.ttml+xml": { + source: "iana", + compressible: true, + extensions: ["uvt", "uvvt"] + }, + "application/vnd.dece.unspecified": { + source: "iana", + extensions: ["uvx", "uvvx"] + }, + "application/vnd.dece.zip": { + source: "iana", + extensions: ["uvz", "uvvz"] + }, + "application/vnd.denovo.fcselayout-link": { + source: "iana", + extensions: ["fe_launch"] + }, + "application/vnd.desmume.movie": { + source: "iana" + }, + "application/vnd.dir-bi.plate-dl-nosuffix": { + source: "iana" + }, + "application/vnd.dm.delegation+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dna": { + source: "iana", + extensions: ["dna"] + }, + "application/vnd.document+json": { + source: "iana", + compressible: true + }, + "application/vnd.dolby.mlp": { + source: "apache", + extensions: ["mlp"] + }, + "application/vnd.dolby.mobile.1": { + source: "iana" + }, + "application/vnd.dolby.mobile.2": { + source: "iana" + }, + "application/vnd.doremir.scorecloud-binary-document": { + source: "iana" + }, + "application/vnd.dpgraph": { + source: "iana", + extensions: ["dpg"] + }, + "application/vnd.dreamfactory": { + source: "iana", + extensions: ["dfac"] + }, + "application/vnd.drive+json": { + source: "iana", + compressible: true + }, + "application/vnd.ds-keypoint": { + source: "apache", + extensions: ["kpxx"] + }, + "application/vnd.dtg.local": { + source: "iana" + }, + "application/vnd.dtg.local.flash": { + source: "iana" + }, + "application/vnd.dtg.local.html": { + source: "iana" + }, + "application/vnd.dvb.ait": { + source: "iana", + extensions: ["ait"] + }, + "application/vnd.dvb.dvbisl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.dvbj": { + source: "iana" + }, + "application/vnd.dvb.esgcontainer": { + source: "iana" + }, + "application/vnd.dvb.ipdcdftnotifaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgaccess2": { + source: "iana" + }, + "application/vnd.dvb.ipdcesgpdd": { + source: "iana" + }, + "application/vnd.dvb.ipdcroaming": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-base": { + source: "iana" + }, + "application/vnd.dvb.iptv.alfec-enhancement": { + source: "iana" + }, + "application/vnd.dvb.notif-aggregate-root+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-container+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-generic+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-msglist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-ia-registration-response+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.notif-init+xml": { + source: "iana", + compressible: true + }, + "application/vnd.dvb.pfr": { + source: "iana" + }, + "application/vnd.dvb.service": { + source: "iana", + extensions: ["svc"] + }, + "application/vnd.dxr": { + source: "iana" + }, + "application/vnd.dynageo": { + source: "iana", + extensions: ["geo"] + }, + "application/vnd.dzr": { + source: "iana" + }, + "application/vnd.easykaraoke.cdgdownload": { + source: "iana" + }, + "application/vnd.ecdis-update": { + source: "iana" + }, + "application/vnd.ecip.rlp": { + source: "iana" + }, + "application/vnd.eclipse.ditto+json": { + source: "iana", + compressible: true + }, + "application/vnd.ecowin.chart": { + source: "iana", + extensions: ["mag"] + }, + "application/vnd.ecowin.filerequest": { + source: "iana" + }, + "application/vnd.ecowin.fileupdate": { + source: "iana" + }, + "application/vnd.ecowin.series": { + source: "iana" + }, + "application/vnd.ecowin.seriesrequest": { + source: "iana" + }, + "application/vnd.ecowin.seriesupdate": { + source: "iana" + }, + "application/vnd.efi.img": { + source: "iana" + }, + "application/vnd.efi.iso": { + source: "iana" + }, + "application/vnd.emclient.accessrequest+xml": { + source: "iana", + compressible: true + }, + "application/vnd.enliven": { + source: "iana", + extensions: ["nml"] + }, + "application/vnd.enphase.envoy": { + source: "iana" + }, + "application/vnd.eprints.data+xml": { + source: "iana", + compressible: true + }, + "application/vnd.epson.esf": { + source: "iana", + extensions: ["esf"] + }, + "application/vnd.epson.msf": { + source: "iana", + extensions: ["msf"] + }, + "application/vnd.epson.quickanime": { + source: "iana", + extensions: ["qam"] + }, + "application/vnd.epson.salt": { + source: "iana", + extensions: ["slt"] + }, + "application/vnd.epson.ssf": { + source: "iana", + extensions: ["ssf"] + }, + "application/vnd.ericsson.quickcall": { + source: "iana" + }, + "application/vnd.espass-espass+zip": { + source: "iana", + compressible: false + }, + "application/vnd.eszigno3+xml": { + source: "iana", + compressible: true, + extensions: ["es3", "et3"] + }, + "application/vnd.etsi.aoc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.asic-e+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.asic-s+zip": { + source: "iana", + compressible: false + }, + "application/vnd.etsi.cug+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvcommand+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-bc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-cod+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsad-npvr+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvservice+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvsync+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.iptvueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mcid+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.mheg5": { + source: "iana" + }, + "application/vnd.etsi.overload-control-policy-dataset+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.pstn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.sci+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.simservs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.timestamp-token": { + source: "iana" + }, + "application/vnd.etsi.tsl+xml": { + source: "iana", + compressible: true + }, + "application/vnd.etsi.tsl.der": { + source: "iana" + }, + "application/vnd.eu.kasparian.car+json": { + source: "iana", + compressible: true + }, + "application/vnd.eudora.data": { + source: "iana" + }, + "application/vnd.evolv.ecig.profile": { + source: "iana" + }, + "application/vnd.evolv.ecig.settings": { + source: "iana" + }, + "application/vnd.evolv.ecig.theme": { + source: "iana" + }, + "application/vnd.exstream-empower+zip": { + source: "iana", + compressible: false + }, + "application/vnd.exstream-package": { + source: "iana" + }, + "application/vnd.ezpix-album": { + source: "iana", + extensions: ["ez2"] + }, + "application/vnd.ezpix-package": { + source: "iana", + extensions: ["ez3"] + }, + "application/vnd.f-secure.mobile": { + source: "iana" + }, + "application/vnd.familysearch.gedcom+zip": { + source: "iana", + compressible: false + }, + "application/vnd.fastcopy-disk-image": { + source: "iana" + }, + "application/vnd.fdf": { + source: "iana", + extensions: ["fdf"] + }, + "application/vnd.fdsn.mseed": { + source: "iana", + extensions: ["mseed"] + }, + "application/vnd.fdsn.seed": { + source: "iana", + extensions: ["seed", "dataless"] + }, + "application/vnd.ffsns": { + source: "iana" + }, + "application/vnd.ficlab.flb+zip": { + source: "iana", + compressible: false + }, + "application/vnd.filmit.zfc": { + source: "iana" + }, + "application/vnd.fints": { + source: "iana" + }, + "application/vnd.firemonkeys.cloudcell": { + source: "iana" + }, + "application/vnd.flographit": { + source: "iana", + extensions: ["gph"] + }, + "application/vnd.fluxtime.clip": { + source: "iana", + extensions: ["ftc"] + }, + "application/vnd.font-fontforge-sfd": { + source: "iana" + }, + "application/vnd.framemaker": { + source: "iana", + extensions: ["fm", "frame", "maker", "book"] + }, + "application/vnd.frogans.fnc": { + source: "iana", + extensions: ["fnc"] + }, + "application/vnd.frogans.ltf": { + source: "iana", + extensions: ["ltf"] + }, + "application/vnd.fsc.weblaunch": { + source: "iana", + extensions: ["fsc"] + }, + "application/vnd.fujifilm.fb.docuworks": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.binder": { + source: "iana" + }, + "application/vnd.fujifilm.fb.docuworks.container": { + source: "iana" + }, + "application/vnd.fujifilm.fb.jfi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.fujitsu.oasys": { + source: "iana", + extensions: ["oas"] + }, + "application/vnd.fujitsu.oasys2": { + source: "iana", + extensions: ["oa2"] + }, + "application/vnd.fujitsu.oasys3": { + source: "iana", + extensions: ["oa3"] + }, + "application/vnd.fujitsu.oasysgp": { + source: "iana", + extensions: ["fg5"] + }, + "application/vnd.fujitsu.oasysprs": { + source: "iana", + extensions: ["bh2"] + }, + "application/vnd.fujixerox.art-ex": { + source: "iana" + }, + "application/vnd.fujixerox.art4": { + source: "iana" + }, + "application/vnd.fujixerox.ddd": { + source: "iana", + extensions: ["ddd"] + }, + "application/vnd.fujixerox.docuworks": { + source: "iana", + extensions: ["xdw"] + }, + "application/vnd.fujixerox.docuworks.binder": { + source: "iana", + extensions: ["xbd"] + }, + "application/vnd.fujixerox.docuworks.container": { + source: "iana" + }, + "application/vnd.fujixerox.hbpl": { + source: "iana" + }, + "application/vnd.fut-misnet": { + source: "iana" + }, + "application/vnd.futoin+cbor": { + source: "iana" + }, + "application/vnd.futoin+json": { + source: "iana", + compressible: true + }, + "application/vnd.fuzzysheet": { + source: "iana", + extensions: ["fzs"] + }, + "application/vnd.genomatix.tuxedo": { + source: "iana", + extensions: ["txd"] + }, + "application/vnd.gentics.grd+json": { + source: "iana", + compressible: true + }, + "application/vnd.geo+json": { + source: "iana", + compressible: true + }, + "application/vnd.geocube+xml": { + source: "iana", + compressible: true + }, + "application/vnd.geogebra.file": { + source: "iana", + extensions: ["ggb"] + }, + "application/vnd.geogebra.slides": { + source: "iana" + }, + "application/vnd.geogebra.tool": { + source: "iana", + extensions: ["ggt"] + }, + "application/vnd.geometry-explorer": { + source: "iana", + extensions: ["gex", "gre"] + }, + "application/vnd.geonext": { + source: "iana", + extensions: ["gxt"] + }, + "application/vnd.geoplan": { + source: "iana", + extensions: ["g2w"] + }, + "application/vnd.geospace": { + source: "iana", + extensions: ["g3w"] + }, + "application/vnd.gerber": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt": { + source: "iana" + }, + "application/vnd.globalplatform.card-content-mgt-response": { + source: "iana" + }, + "application/vnd.gmx": { + source: "iana", + extensions: ["gmx"] + }, + "application/vnd.google-apps.document": { + compressible: false, + extensions: ["gdoc"] + }, + "application/vnd.google-apps.presentation": { + compressible: false, + extensions: ["gslides"] + }, + "application/vnd.google-apps.spreadsheet": { + compressible: false, + extensions: ["gsheet"] + }, + "application/vnd.google-earth.kml+xml": { + source: "iana", + compressible: true, + extensions: ["kml"] + }, + "application/vnd.google-earth.kmz": { + source: "iana", + compressible: false, + extensions: ["kmz"] + }, + "application/vnd.gov.sk.e-form+xml": { + source: "iana", + compressible: true + }, + "application/vnd.gov.sk.e-form+zip": { + source: "iana", + compressible: false + }, + "application/vnd.gov.sk.xmldatacontainer+xml": { + source: "iana", + compressible: true + }, + "application/vnd.grafeq": { + source: "iana", + extensions: ["gqf", "gqs"] + }, + "application/vnd.gridmp": { + source: "iana" + }, + "application/vnd.groove-account": { + source: "iana", + extensions: ["gac"] + }, + "application/vnd.groove-help": { + source: "iana", + extensions: ["ghf"] + }, + "application/vnd.groove-identity-message": { + source: "iana", + extensions: ["gim"] + }, + "application/vnd.groove-injector": { + source: "iana", + extensions: ["grv"] + }, + "application/vnd.groove-tool-message": { + source: "iana", + extensions: ["gtm"] + }, + "application/vnd.groove-tool-template": { + source: "iana", + extensions: ["tpl"] + }, + "application/vnd.groove-vcard": { + source: "iana", + extensions: ["vcg"] + }, + "application/vnd.hal+json": { + source: "iana", + compressible: true + }, + "application/vnd.hal+xml": { + source: "iana", + compressible: true, + extensions: ["hal"] + }, + "application/vnd.handheld-entertainment+xml": { + source: "iana", + compressible: true, + extensions: ["zmm"] + }, + "application/vnd.hbci": { + source: "iana", + extensions: ["hbci"] + }, + "application/vnd.hc+json": { + source: "iana", + compressible: true + }, + "application/vnd.hcl-bireports": { + source: "iana" + }, + "application/vnd.hdt": { + source: "iana" + }, + "application/vnd.heroku+json": { + source: "iana", + compressible: true + }, + "application/vnd.hhe.lesson-player": { + source: "iana", + extensions: ["les"] + }, + "application/vnd.hl7cda+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.hl7v2+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.hp-hpgl": { + source: "iana", + extensions: ["hpgl"] + }, + "application/vnd.hp-hpid": { + source: "iana", + extensions: ["hpid"] + }, + "application/vnd.hp-hps": { + source: "iana", + extensions: ["hps"] + }, + "application/vnd.hp-jlyt": { + source: "iana", + extensions: ["jlt"] + }, + "application/vnd.hp-pcl": { + source: "iana", + extensions: ["pcl"] + }, + "application/vnd.hp-pclxl": { + source: "iana", + extensions: ["pclxl"] + }, + "application/vnd.httphone": { + source: "iana" + }, + "application/vnd.hydrostatix.sof-data": { + source: "iana", + extensions: ["sfd-hdstx"] + }, + "application/vnd.hyper+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyper-item+json": { + source: "iana", + compressible: true + }, + "application/vnd.hyperdrive+json": { + source: "iana", + compressible: true + }, + "application/vnd.hzn-3d-crossword": { + source: "iana" + }, + "application/vnd.ibm.afplinedata": { + source: "iana" + }, + "application/vnd.ibm.electronic-media": { + source: "iana" + }, + "application/vnd.ibm.minipay": { + source: "iana", + extensions: ["mpy"] + }, + "application/vnd.ibm.modcap": { + source: "iana", + extensions: ["afp", "listafp", "list3820"] + }, + "application/vnd.ibm.rights-management": { + source: "iana", + extensions: ["irm"] + }, + "application/vnd.ibm.secure-container": { + source: "iana", + extensions: ["sc"] + }, + "application/vnd.iccprofile": { + source: "iana", + extensions: ["icc", "icm"] + }, + "application/vnd.ieee.1905": { + source: "iana" + }, + "application/vnd.igloader": { + source: "iana", + extensions: ["igl"] + }, + "application/vnd.imagemeter.folder+zip": { + source: "iana", + compressible: false + }, + "application/vnd.imagemeter.image+zip": { + source: "iana", + compressible: false + }, + "application/vnd.immervision-ivp": { + source: "iana", + extensions: ["ivp"] + }, + "application/vnd.immervision-ivu": { + source: "iana", + extensions: ["ivu"] + }, + "application/vnd.ims.imsccv1p1": { + source: "iana" + }, + "application/vnd.ims.imsccv1p2": { + source: "iana" + }, + "application/vnd.ims.imsccv1p3": { + source: "iana" + }, + "application/vnd.ims.lis.v2.result+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolconsumerprofile+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolproxy.id+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings+json": { + source: "iana", + compressible: true + }, + "application/vnd.ims.lti.v2.toolsettings.simple+json": { + source: "iana", + compressible: true + }, + "application/vnd.informedcontrol.rms+xml": { + source: "iana", + compressible: true + }, + "application/vnd.informix-visionary": { + source: "iana" + }, + "application/vnd.infotech.project": { + source: "iana" + }, + "application/vnd.infotech.project+xml": { + source: "iana", + compressible: true + }, + "application/vnd.innopath.wamp.notification": { + source: "iana" + }, + "application/vnd.insors.igm": { + source: "iana", + extensions: ["igm"] + }, + "application/vnd.intercon.formnet": { + source: "iana", + extensions: ["xpw", "xpx"] + }, + "application/vnd.intergeo": { + source: "iana", + extensions: ["i2g"] + }, + "application/vnd.intertrust.digibox": { + source: "iana" + }, + "application/vnd.intertrust.nncp": { + source: "iana" + }, + "application/vnd.intu.qbo": { + source: "iana", + extensions: ["qbo"] + }, + "application/vnd.intu.qfx": { + source: "iana", + extensions: ["qfx"] + }, + "application/vnd.iptc.g2.catalogitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.conceptitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.knowledgeitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.newsmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.packageitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.iptc.g2.planningitem+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ipunplugged.rcprofile": { + source: "iana", + extensions: ["rcprofile"] + }, + "application/vnd.irepository.package+xml": { + source: "iana", + compressible: true, + extensions: ["irp"] + }, + "application/vnd.is-xpr": { + source: "iana", + extensions: ["xpr"] + }, + "application/vnd.isac.fcs": { + source: "iana", + extensions: ["fcs"] + }, + "application/vnd.iso11783-10+zip": { + source: "iana", + compressible: false + }, + "application/vnd.jam": { + source: "iana", + extensions: ["jam"] + }, + "application/vnd.japannet-directory-service": { + source: "iana" + }, + "application/vnd.japannet-jpnstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-payment-wakeup": { + source: "iana" + }, + "application/vnd.japannet-registration": { + source: "iana" + }, + "application/vnd.japannet-registration-wakeup": { + source: "iana" + }, + "application/vnd.japannet-setstore-wakeup": { + source: "iana" + }, + "application/vnd.japannet-verification": { + source: "iana" + }, + "application/vnd.japannet-verification-wakeup": { + source: "iana" + }, + "application/vnd.jcp.javame.midlet-rms": { + source: "iana", + extensions: ["rms"] + }, + "application/vnd.jisp": { + source: "iana", + extensions: ["jisp"] + }, + "application/vnd.joost.joda-archive": { + source: "iana", + extensions: ["joda"] + }, + "application/vnd.jsk.isdn-ngn": { + source: "iana" + }, + "application/vnd.kahootz": { + source: "iana", + extensions: ["ktz", "ktr"] + }, + "application/vnd.kde.karbon": { + source: "iana", + extensions: ["karbon"] + }, + "application/vnd.kde.kchart": { + source: "iana", + extensions: ["chrt"] + }, + "application/vnd.kde.kformula": { + source: "iana", + extensions: ["kfo"] + }, + "application/vnd.kde.kivio": { + source: "iana", + extensions: ["flw"] + }, + "application/vnd.kde.kontour": { + source: "iana", + extensions: ["kon"] + }, + "application/vnd.kde.kpresenter": { + source: "iana", + extensions: ["kpr", "kpt"] + }, + "application/vnd.kde.kspread": { + source: "iana", + extensions: ["ksp"] + }, + "application/vnd.kde.kword": { + source: "iana", + extensions: ["kwd", "kwt"] + }, + "application/vnd.kenameaapp": { + source: "iana", + extensions: ["htke"] + }, + "application/vnd.kidspiration": { + source: "iana", + extensions: ["kia"] + }, + "application/vnd.kinar": { + source: "iana", + extensions: ["kne", "knp"] + }, + "application/vnd.koan": { + source: "iana", + extensions: ["skp", "skd", "skt", "skm"] + }, + "application/vnd.kodak-descriptor": { + source: "iana", + extensions: ["sse"] + }, + "application/vnd.las": { + source: "iana" + }, + "application/vnd.las.las+json": { + source: "iana", + compressible: true + }, + "application/vnd.las.las+xml": { + source: "iana", + compressible: true, + extensions: ["lasxml"] + }, + "application/vnd.laszip": { + source: "iana" + }, + "application/vnd.leap+json": { + source: "iana", + compressible: true + }, + "application/vnd.liberty-request+xml": { + source: "iana", + compressible: true + }, + "application/vnd.llamagraphics.life-balance.desktop": { + source: "iana", + extensions: ["lbd"] + }, + "application/vnd.llamagraphics.life-balance.exchange+xml": { + source: "iana", + compressible: true, + extensions: ["lbe"] + }, + "application/vnd.logipipe.circuit+zip": { + source: "iana", + compressible: false + }, + "application/vnd.loom": { + source: "iana" + }, + "application/vnd.lotus-1-2-3": { + source: "iana", + extensions: ["123"] + }, + "application/vnd.lotus-approach": { + source: "iana", + extensions: ["apr"] + }, + "application/vnd.lotus-freelance": { + source: "iana", + extensions: ["pre"] + }, + "application/vnd.lotus-notes": { + source: "iana", + extensions: ["nsf"] + }, + "application/vnd.lotus-organizer": { + source: "iana", + extensions: ["org"] + }, + "application/vnd.lotus-screencam": { + source: "iana", + extensions: ["scm"] + }, + "application/vnd.lotus-wordpro": { + source: "iana", + extensions: ["lwp"] + }, + "application/vnd.macports.portpkg": { + source: "iana", + extensions: ["portpkg"] + }, + "application/vnd.mapbox-vector-tile": { + source: "iana", + extensions: ["mvt"] + }, + "application/vnd.marlin.drm.actiontoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.conftoken+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.license+xml": { + source: "iana", + compressible: true + }, + "application/vnd.marlin.drm.mdcf": { + source: "iana" + }, + "application/vnd.mason+json": { + source: "iana", + compressible: true + }, + "application/vnd.maxar.archive.3tz+zip": { + source: "iana", + compressible: false + }, + "application/vnd.maxmind.maxmind-db": { + source: "iana" + }, + "application/vnd.mcd": { + source: "iana", + extensions: ["mcd"] + }, + "application/vnd.medcalcdata": { + source: "iana", + extensions: ["mc1"] + }, + "application/vnd.mediastation.cdkey": { + source: "iana", + extensions: ["cdkey"] + }, + "application/vnd.meridian-slingshot": { + source: "iana" + }, + "application/vnd.mfer": { + source: "iana", + extensions: ["mwf"] + }, + "application/vnd.mfmp": { + source: "iana", + extensions: ["mfm"] + }, + "application/vnd.micro+json": { + source: "iana", + compressible: true + }, + "application/vnd.micrografx.flo": { + source: "iana", + extensions: ["flo"] + }, + "application/vnd.micrografx.igx": { + source: "iana", + extensions: ["igx"] + }, + "application/vnd.microsoft.portable-executable": { + source: "iana" + }, + "application/vnd.microsoft.windows.thumbnail-cache": { + source: "iana" + }, + "application/vnd.miele+json": { + source: "iana", + compressible: true + }, + "application/vnd.mif": { + source: "iana", + extensions: ["mif"] + }, + "application/vnd.minisoft-hp3000-save": { + source: "iana" + }, + "application/vnd.mitsubishi.misty-guard.trustweb": { + source: "iana" + }, + "application/vnd.mobius.daf": { + source: "iana", + extensions: ["daf"] + }, + "application/vnd.mobius.dis": { + source: "iana", + extensions: ["dis"] + }, + "application/vnd.mobius.mbk": { + source: "iana", + extensions: ["mbk"] + }, + "application/vnd.mobius.mqy": { + source: "iana", + extensions: ["mqy"] + }, + "application/vnd.mobius.msl": { + source: "iana", + extensions: ["msl"] + }, + "application/vnd.mobius.plc": { + source: "iana", + extensions: ["plc"] + }, + "application/vnd.mobius.txf": { + source: "iana", + extensions: ["txf"] + }, + "application/vnd.mophun.application": { + source: "iana", + extensions: ["mpn"] + }, + "application/vnd.mophun.certificate": { + source: "iana", + extensions: ["mpc"] + }, + "application/vnd.motorola.flexsuite": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.adsi": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.fis": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.gotap": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.kmr": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.ttc": { + source: "iana" + }, + "application/vnd.motorola.flexsuite.wem": { + source: "iana" + }, + "application/vnd.motorola.iprm": { + source: "iana" + }, + "application/vnd.mozilla.xul+xml": { + source: "iana", + compressible: true, + extensions: ["xul"] + }, + "application/vnd.ms-3mfdocument": { + source: "iana" + }, + "application/vnd.ms-artgalry": { + source: "iana", + extensions: ["cil"] + }, + "application/vnd.ms-asf": { + source: "iana" + }, + "application/vnd.ms-cab-compressed": { + source: "iana", + extensions: ["cab"] + }, + "application/vnd.ms-color.iccprofile": { + source: "apache" + }, + "application/vnd.ms-excel": { + source: "iana", + compressible: false, + extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"] + }, + "application/vnd.ms-excel.addin.macroenabled.12": { + source: "iana", + extensions: ["xlam"] + }, + "application/vnd.ms-excel.sheet.binary.macroenabled.12": { + source: "iana", + extensions: ["xlsb"] + }, + "application/vnd.ms-excel.sheet.macroenabled.12": { + source: "iana", + extensions: ["xlsm"] + }, + "application/vnd.ms-excel.template.macroenabled.12": { + source: "iana", + extensions: ["xltm"] + }, + "application/vnd.ms-fontobject": { + source: "iana", + compressible: true, + extensions: ["eot"] + }, + "application/vnd.ms-htmlhelp": { + source: "iana", + extensions: ["chm"] + }, + "application/vnd.ms-ims": { + source: "iana", + extensions: ["ims"] + }, + "application/vnd.ms-lrm": { + source: "iana", + extensions: ["lrm"] + }, + "application/vnd.ms-office.activex+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-officetheme": { + source: "iana", + extensions: ["thmx"] + }, + "application/vnd.ms-opentype": { + source: "apache", + compressible: true + }, + "application/vnd.ms-outlook": { + compressible: false, + extensions: ["msg"] + }, + "application/vnd.ms-package.obfuscated-opentype": { + source: "apache" + }, + "application/vnd.ms-pki.seccat": { + source: "apache", + extensions: ["cat"] + }, + "application/vnd.ms-pki.stl": { + source: "apache", + extensions: ["stl"] + }, + "application/vnd.ms-playready.initiator+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-powerpoint": { + source: "iana", + compressible: false, + extensions: ["ppt", "pps", "pot"] + }, + "application/vnd.ms-powerpoint.addin.macroenabled.12": { + source: "iana", + extensions: ["ppam"] + }, + "application/vnd.ms-powerpoint.presentation.macroenabled.12": { + source: "iana", + extensions: ["pptm"] + }, + "application/vnd.ms-powerpoint.slide.macroenabled.12": { + source: "iana", + extensions: ["sldm"] + }, + "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { + source: "iana", + extensions: ["ppsm"] + }, + "application/vnd.ms-powerpoint.template.macroenabled.12": { + source: "iana", + extensions: ["potm"] + }, + "application/vnd.ms-printdevicecapabilities+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-printing.printticket+xml": { + source: "apache", + compressible: true + }, + "application/vnd.ms-printschematicket+xml": { + source: "iana", + compressible: true + }, + "application/vnd.ms-project": { + source: "iana", + extensions: ["mpp", "mpt"] + }, + "application/vnd.ms-tnef": { + source: "iana" + }, + "application/vnd.ms-windows.devicepairing": { + source: "iana" + }, + "application/vnd.ms-windows.nwprinting.oob": { + source: "iana" + }, + "application/vnd.ms-windows.printerpairing": { + source: "iana" + }, + "application/vnd.ms-windows.wsd.oob": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.lic-resp": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-chlg-req": { + source: "iana" + }, + "application/vnd.ms-wmdrm.meter-resp": { + source: "iana" + }, + "application/vnd.ms-word.document.macroenabled.12": { + source: "iana", + extensions: ["docm"] + }, + "application/vnd.ms-word.template.macroenabled.12": { + source: "iana", + extensions: ["dotm"] + }, + "application/vnd.ms-works": { + source: "iana", + extensions: ["wps", "wks", "wcm", "wdb"] + }, + "application/vnd.ms-wpl": { + source: "iana", + extensions: ["wpl"] + }, + "application/vnd.ms-xpsdocument": { + source: "iana", + compressible: false, + extensions: ["xps"] + }, + "application/vnd.msa-disk-image": { + source: "iana" + }, + "application/vnd.mseq": { + source: "iana", + extensions: ["mseq"] + }, + "application/vnd.msign": { + source: "iana" + }, + "application/vnd.multiad.creator": { + source: "iana" + }, + "application/vnd.multiad.creator.cif": { + source: "iana" + }, + "application/vnd.music-niff": { + source: "iana" + }, + "application/vnd.musician": { + source: "iana", + extensions: ["mus"] + }, + "application/vnd.muvee.style": { + source: "iana", + extensions: ["msty"] + }, + "application/vnd.mynfc": { + source: "iana", + extensions: ["taglet"] + }, + "application/vnd.nacamar.ybrid+json": { + source: "iana", + compressible: true + }, + "application/vnd.ncd.control": { + source: "iana" + }, + "application/vnd.ncd.reference": { + source: "iana" + }, + "application/vnd.nearst.inv+json": { + source: "iana", + compressible: true + }, + "application/vnd.nebumind.line": { + source: "iana" + }, + "application/vnd.nervana": { + source: "iana" + }, + "application/vnd.netfpx": { + source: "iana" + }, + "application/vnd.neurolanguage.nlu": { + source: "iana", + extensions: ["nlu"] + }, + "application/vnd.nimn": { + source: "iana" + }, + "application/vnd.nintendo.nitro.rom": { + source: "iana" + }, + "application/vnd.nintendo.snes.rom": { + source: "iana" + }, + "application/vnd.nitf": { + source: "iana", + extensions: ["ntf", "nitf"] + }, + "application/vnd.noblenet-directory": { + source: "iana", + extensions: ["nnd"] + }, + "application/vnd.noblenet-sealer": { + source: "iana", + extensions: ["nns"] + }, + "application/vnd.noblenet-web": { + source: "iana", + extensions: ["nnw"] + }, + "application/vnd.nokia.catalogs": { + source: "iana" + }, + "application/vnd.nokia.conml+wbxml": { + source: "iana" + }, + "application/vnd.nokia.conml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.iptv.config+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.isds-radio-presets": { + source: "iana" + }, + "application/vnd.nokia.landmark+wbxml": { + source: "iana" + }, + "application/vnd.nokia.landmark+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.landmarkcollection+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.n-gage.ac+xml": { + source: "iana", + compressible: true, + extensions: ["ac"] + }, + "application/vnd.nokia.n-gage.data": { + source: "iana", + extensions: ["ngdat"] + }, + "application/vnd.nokia.n-gage.symbian.install": { + source: "iana", + extensions: ["n-gage"] + }, + "application/vnd.nokia.ncd": { + source: "iana" + }, + "application/vnd.nokia.pcd+wbxml": { + source: "iana" + }, + "application/vnd.nokia.pcd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.nokia.radio-preset": { + source: "iana", + extensions: ["rpst"] + }, + "application/vnd.nokia.radio-presets": { + source: "iana", + extensions: ["rpss"] + }, + "application/vnd.novadigm.edm": { + source: "iana", + extensions: ["edm"] + }, + "application/vnd.novadigm.edx": { + source: "iana", + extensions: ["edx"] + }, + "application/vnd.novadigm.ext": { + source: "iana", + extensions: ["ext"] + }, + "application/vnd.ntt-local.content-share": { + source: "iana" + }, + "application/vnd.ntt-local.file-transfer": { + source: "iana" + }, + "application/vnd.ntt-local.ogw_remote-access": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_remote": { + source: "iana" + }, + "application/vnd.ntt-local.sip-ta_tcp_stream": { + source: "iana" + }, + "application/vnd.oasis.opendocument.chart": { + source: "iana", + extensions: ["odc"] + }, + "application/vnd.oasis.opendocument.chart-template": { + source: "iana", + extensions: ["otc"] + }, + "application/vnd.oasis.opendocument.database": { + source: "iana", + extensions: ["odb"] + }, + "application/vnd.oasis.opendocument.formula": { + source: "iana", + extensions: ["odf"] + }, + "application/vnd.oasis.opendocument.formula-template": { + source: "iana", + extensions: ["odft"] + }, + "application/vnd.oasis.opendocument.graphics": { + source: "iana", + compressible: false, + extensions: ["odg"] + }, + "application/vnd.oasis.opendocument.graphics-template": { + source: "iana", + extensions: ["otg"] + }, + "application/vnd.oasis.opendocument.image": { + source: "iana", + extensions: ["odi"] + }, + "application/vnd.oasis.opendocument.image-template": { + source: "iana", + extensions: ["oti"] + }, + "application/vnd.oasis.opendocument.presentation": { + source: "iana", + compressible: false, + extensions: ["odp"] + }, + "application/vnd.oasis.opendocument.presentation-template": { + source: "iana", + extensions: ["otp"] + }, + "application/vnd.oasis.opendocument.spreadsheet": { + source: "iana", + compressible: false, + extensions: ["ods"] + }, + "application/vnd.oasis.opendocument.spreadsheet-template": { + source: "iana", + extensions: ["ots"] + }, + "application/vnd.oasis.opendocument.text": { + source: "iana", + compressible: false, + extensions: ["odt"] + }, + "application/vnd.oasis.opendocument.text-master": { + source: "iana", + extensions: ["odm"] + }, + "application/vnd.oasis.opendocument.text-template": { + source: "iana", + extensions: ["ott"] + }, + "application/vnd.oasis.opendocument.text-web": { + source: "iana", + extensions: ["oth"] + }, + "application/vnd.obn": { + source: "iana" + }, + "application/vnd.ocf+cbor": { + source: "iana" + }, + "application/vnd.oci.image.manifest.v1+json": { + source: "iana", + compressible: true + }, + "application/vnd.oftn.l10n+json": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessdownload+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.contentaccessstreaming+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.cspg-hexbinary": { + source: "iana" + }, + "application/vnd.oipf.dae.svg+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.dae.xhtml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.mippvcontrolmessage+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.pae.gem": { + source: "iana" + }, + "application/vnd.oipf.spdiscovery+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.spdlist+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.ueprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oipf.userprofile+xml": { + source: "iana", + compressible: true + }, + "application/vnd.olpc-sugar": { + source: "iana", + extensions: ["xo"] + }, + "application/vnd.oma-scws-config": { + source: "iana" + }, + "application/vnd.oma-scws-http-request": { + source: "iana" + }, + "application/vnd.oma-scws-http-response": { + source: "iana" + }, + "application/vnd.oma.bcast.associated-procedure-parameter+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.drm-trigger+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.imd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.ltkm": { + source: "iana" + }, + "application/vnd.oma.bcast.notification+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.provisioningtrigger": { + source: "iana" + }, + "application/vnd.oma.bcast.sgboot": { + source: "iana" + }, + "application/vnd.oma.bcast.sgdd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.sgdu": { + source: "iana" + }, + "application/vnd.oma.bcast.simple-symbol-container": { + source: "iana" + }, + "application/vnd.oma.bcast.smartcard-trigger+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.sprov+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.bcast.stkm": { + source: "iana" + }, + "application/vnd.oma.cab-address-book+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-feature-handler+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-pcc+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-subs-invite+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.cab-user-prefs+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.dcd": { + source: "iana" + }, + "application/vnd.oma.dcdc": { + source: "iana" + }, + "application/vnd.oma.dd2+xml": { + source: "iana", + compressible: true, + extensions: ["dd2"] + }, + "application/vnd.oma.drm.risd+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.group-usage-list+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+cbor": { + source: "iana" + }, + "application/vnd.oma.lwm2m+json": { + source: "iana", + compressible: true + }, + "application/vnd.oma.lwm2m+tlv": { + source: "iana" + }, + "application/vnd.oma.pal+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.detailed-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.final-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.groups+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.invocation-descriptor+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.poc.optimized-progress-report+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.push": { + source: "iana" + }, + "application/vnd.oma.scidm.messages+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oma.xcap-directory+xml": { + source: "iana", + compressible: true + }, + "application/vnd.omads-email+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-file+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omads-folder+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.omaloc-supl-init": { + source: "iana" + }, + "application/vnd.onepager": { + source: "iana" + }, + "application/vnd.onepagertamp": { + source: "iana" + }, + "application/vnd.onepagertamx": { + source: "iana" + }, + "application/vnd.onepagertat": { + source: "iana" + }, + "application/vnd.onepagertatp": { + source: "iana" + }, + "application/vnd.onepagertatx": { + source: "iana" + }, + "application/vnd.openblox.game+xml": { + source: "iana", + compressible: true, + extensions: ["obgx"] + }, + "application/vnd.openblox.game-binary": { + source: "iana" + }, + "application/vnd.openeye.oeb": { + source: "iana" + }, + "application/vnd.openofficeorg.extension": { + source: "apache", + extensions: ["oxt"] + }, + "application/vnd.openstreetmap.data+xml": { + source: "iana", + compressible: true, + extensions: ["osm"] + }, + "application/vnd.opentimestamps.ots": { + source: "iana" + }, + "application/vnd.openxmlformats-officedocument.custom-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawing+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.extended-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation": { + source: "iana", + compressible: false, + extensions: ["pptx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide": { + source: "iana", + extensions: ["sldx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { + source: "iana", + extensions: ["ppsx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.template": { + source: "iana", + extensions: ["potx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { + source: "iana", + compressible: false, + extensions: ["xlsx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { + source: "iana", + extensions: ["xltx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.theme+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.themeoverride+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.vmldrawing": { + source: "iana" + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { + source: "iana", + compressible: false, + extensions: ["docx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { + source: "iana", + extensions: ["dotx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.core-properties+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { + source: "iana", + compressible: true + }, + "application/vnd.openxmlformats-package.relationships+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oracle.resource+json": { + source: "iana", + compressible: true + }, + "application/vnd.orange.indata": { + source: "iana" + }, + "application/vnd.osa.netdeploy": { + source: "iana" + }, + "application/vnd.osgeo.mapguide.package": { + source: "iana", + extensions: ["mgp"] + }, + "application/vnd.osgi.bundle": { + source: "iana" + }, + "application/vnd.osgi.dp": { + source: "iana", + extensions: ["dp"] + }, + "application/vnd.osgi.subsystem": { + source: "iana", + extensions: ["esa"] + }, + "application/vnd.otps.ct-kip+xml": { + source: "iana", + compressible: true + }, + "application/vnd.oxli.countgraph": { + source: "iana" + }, + "application/vnd.pagerduty+json": { + source: "iana", + compressible: true + }, + "application/vnd.palm": { + source: "iana", + extensions: ["pdb", "pqa", "oprc"] + }, + "application/vnd.panoply": { + source: "iana" + }, + "application/vnd.paos.xml": { + source: "iana" + }, + "application/vnd.patentdive": { + source: "iana" + }, + "application/vnd.patientecommsdoc": { + source: "iana" + }, + "application/vnd.pawaafile": { + source: "iana", + extensions: ["paw"] + }, + "application/vnd.pcos": { + source: "iana" + }, + "application/vnd.pg.format": { + source: "iana", + extensions: ["str"] + }, + "application/vnd.pg.osasli": { + source: "iana", + extensions: ["ei6"] + }, + "application/vnd.piaccess.application-licence": { + source: "iana" + }, + "application/vnd.picsel": { + source: "iana", + extensions: ["efif"] + }, + "application/vnd.pmi.widget": { + source: "iana", + extensions: ["wg"] + }, + "application/vnd.poc.group-advertisement+xml": { + source: "iana", + compressible: true + }, + "application/vnd.pocketlearn": { + source: "iana", + extensions: ["plf"] + }, + "application/vnd.powerbuilder6": { + source: "iana", + extensions: ["pbd"] + }, + "application/vnd.powerbuilder6-s": { + source: "iana" + }, + "application/vnd.powerbuilder7": { + source: "iana" + }, + "application/vnd.powerbuilder7-s": { + source: "iana" + }, + "application/vnd.powerbuilder75": { + source: "iana" + }, + "application/vnd.powerbuilder75-s": { + source: "iana" + }, + "application/vnd.preminet": { + source: "iana" + }, + "application/vnd.previewsystems.box": { + source: "iana", + extensions: ["box"] + }, + "application/vnd.proteus.magazine": { + source: "iana", + extensions: ["mgz"] + }, + "application/vnd.psfs": { + source: "iana" + }, + "application/vnd.publishare-delta-tree": { + source: "iana", + extensions: ["qps"] + }, + "application/vnd.pvi.ptid1": { + source: "iana", + extensions: ["ptid"] + }, + "application/vnd.pwg-multiplexed": { + source: "iana" + }, + "application/vnd.pwg-xhtml-print+xml": { + source: "iana", + compressible: true + }, + "application/vnd.qualcomm.brew-app-res": { + source: "iana" + }, + "application/vnd.quarantainenet": { + source: "iana" + }, + "application/vnd.quark.quarkxpress": { + source: "iana", + extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"] + }, + "application/vnd.quobject-quoxdocument": { + source: "iana" + }, + "application/vnd.radisys.moml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-conn+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-audit-stream+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-conf+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-base+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-detect+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-group+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-speech+xml": { + source: "iana", + compressible: true + }, + "application/vnd.radisys.msml-dialog-transform+xml": { + source: "iana", + compressible: true + }, + "application/vnd.rainstor.data": { + source: "iana" + }, + "application/vnd.rapid": { + source: "iana" + }, + "application/vnd.rar": { + source: "iana", + extensions: ["rar"] + }, + "application/vnd.realvnc.bed": { + source: "iana", + extensions: ["bed"] + }, + "application/vnd.recordare.musicxml": { + source: "iana", + extensions: ["mxl"] + }, + "application/vnd.recordare.musicxml+xml": { + source: "iana", + compressible: true, + extensions: ["musicxml"] + }, + "application/vnd.renlearn.rlprint": { + source: "iana" + }, + "application/vnd.resilient.logic": { + source: "iana" + }, + "application/vnd.restful+json": { + source: "iana", + compressible: true + }, + "application/vnd.rig.cryptonote": { + source: "iana", + extensions: ["cryptonote"] + }, + "application/vnd.rim.cod": { + source: "apache", + extensions: ["cod"] + }, + "application/vnd.rn-realmedia": { + source: "apache", + extensions: ["rm"] + }, + "application/vnd.rn-realmedia-vbr": { + source: "apache", + extensions: ["rmvb"] + }, + "application/vnd.route66.link66+xml": { + source: "iana", + compressible: true, + extensions: ["link66"] + }, + "application/vnd.rs-274x": { + source: "iana" + }, + "application/vnd.ruckus.download": { + source: "iana" + }, + "application/vnd.s3sms": { + source: "iana" + }, + "application/vnd.sailingtracker.track": { + source: "iana", + extensions: ["st"] + }, + "application/vnd.sar": { + source: "iana" + }, + "application/vnd.sbm.cid": { + source: "iana" + }, + "application/vnd.sbm.mid2": { + source: "iana" + }, + "application/vnd.scribus": { + source: "iana" + }, + "application/vnd.sealed.3df": { + source: "iana" + }, + "application/vnd.sealed.csf": { + source: "iana" + }, + "application/vnd.sealed.doc": { + source: "iana" + }, + "application/vnd.sealed.eml": { + source: "iana" + }, + "application/vnd.sealed.mht": { + source: "iana" + }, + "application/vnd.sealed.net": { + source: "iana" + }, + "application/vnd.sealed.ppt": { + source: "iana" + }, + "application/vnd.sealed.tiff": { + source: "iana" + }, + "application/vnd.sealed.xls": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.html": { + source: "iana" + }, + "application/vnd.sealedmedia.softseal.pdf": { + source: "iana" + }, + "application/vnd.seemail": { + source: "iana", + extensions: ["see"] + }, + "application/vnd.seis+json": { + source: "iana", + compressible: true + }, + "application/vnd.sema": { + source: "iana", + extensions: ["sema"] + }, + "application/vnd.semd": { + source: "iana", + extensions: ["semd"] + }, + "application/vnd.semf": { + source: "iana", + extensions: ["semf"] + }, + "application/vnd.shade-save-file": { + source: "iana" + }, + "application/vnd.shana.informed.formdata": { + source: "iana", + extensions: ["ifm"] + }, + "application/vnd.shana.informed.formtemplate": { + source: "iana", + extensions: ["itp"] + }, + "application/vnd.shana.informed.interchange": { + source: "iana", + extensions: ["iif"] + }, + "application/vnd.shana.informed.package": { + source: "iana", + extensions: ["ipk"] + }, + "application/vnd.shootproof+json": { + source: "iana", + compressible: true + }, + "application/vnd.shopkick+json": { + source: "iana", + compressible: true + }, + "application/vnd.shp": { + source: "iana" + }, + "application/vnd.shx": { + source: "iana" + }, + "application/vnd.sigrok.session": { + source: "iana" + }, + "application/vnd.simtech-mindmapper": { + source: "iana", + extensions: ["twd", "twds"] + }, + "application/vnd.siren+json": { + source: "iana", + compressible: true + }, + "application/vnd.smaf": { + source: "iana", + extensions: ["mmf"] + }, + "application/vnd.smart.notebook": { + source: "iana" + }, + "application/vnd.smart.teacher": { + source: "iana", + extensions: ["teacher"] + }, + "application/vnd.snesdev-page-table": { + source: "iana" + }, + "application/vnd.software602.filler.form+xml": { + source: "iana", + compressible: true, + extensions: ["fo"] + }, + "application/vnd.software602.filler.form-xml-zip": { + source: "iana" + }, + "application/vnd.solent.sdkm+xml": { + source: "iana", + compressible: true, + extensions: ["sdkm", "sdkd"] + }, + "application/vnd.spotfire.dxp": { + source: "iana", + extensions: ["dxp"] + }, + "application/vnd.spotfire.sfs": { + source: "iana", + extensions: ["sfs"] + }, + "application/vnd.sqlite3": { + source: "iana" + }, + "application/vnd.sss-cod": { + source: "iana" + }, + "application/vnd.sss-dtf": { + source: "iana" + }, + "application/vnd.sss-ntf": { + source: "iana" + }, + "application/vnd.stardivision.calc": { + source: "apache", + extensions: ["sdc"] + }, + "application/vnd.stardivision.draw": { + source: "apache", + extensions: ["sda"] + }, + "application/vnd.stardivision.impress": { + source: "apache", + extensions: ["sdd"] + }, + "application/vnd.stardivision.math": { + source: "apache", + extensions: ["smf"] + }, + "application/vnd.stardivision.writer": { + source: "apache", + extensions: ["sdw", "vor"] + }, + "application/vnd.stardivision.writer-global": { + source: "apache", + extensions: ["sgl"] + }, + "application/vnd.stepmania.package": { + source: "iana", + extensions: ["smzip"] + }, + "application/vnd.stepmania.stepchart": { + source: "iana", + extensions: ["sm"] + }, + "application/vnd.street-stream": { + source: "iana" + }, + "application/vnd.sun.wadl+xml": { + source: "iana", + compressible: true, + extensions: ["wadl"] + }, + "application/vnd.sun.xml.calc": { + source: "apache", + extensions: ["sxc"] + }, + "application/vnd.sun.xml.calc.template": { + source: "apache", + extensions: ["stc"] + }, + "application/vnd.sun.xml.draw": { + source: "apache", + extensions: ["sxd"] + }, + "application/vnd.sun.xml.draw.template": { + source: "apache", + extensions: ["std"] + }, + "application/vnd.sun.xml.impress": { + source: "apache", + extensions: ["sxi"] + }, + "application/vnd.sun.xml.impress.template": { + source: "apache", + extensions: ["sti"] + }, + "application/vnd.sun.xml.math": { + source: "apache", + extensions: ["sxm"] + }, + "application/vnd.sun.xml.writer": { + source: "apache", + extensions: ["sxw"] + }, + "application/vnd.sun.xml.writer.global": { + source: "apache", + extensions: ["sxg"] + }, + "application/vnd.sun.xml.writer.template": { + source: "apache", + extensions: ["stw"] + }, + "application/vnd.sus-calendar": { + source: "iana", + extensions: ["sus", "susp"] + }, + "application/vnd.svd": { + source: "iana", + extensions: ["svd"] + }, + "application/vnd.swiftview-ics": { + source: "iana" + }, + "application/vnd.sycle+xml": { + source: "iana", + compressible: true + }, + "application/vnd.syft+json": { + source: "iana", + compressible: true + }, + "application/vnd.symbian.install": { + source: "apache", + extensions: ["sis", "sisx"] + }, + "application/vnd.syncml+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xsm"] + }, + "application/vnd.syncml.dm+wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["bdm"] + }, + "application/vnd.syncml.dm+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["xdm"] + }, + "application/vnd.syncml.dm.notification": { + source: "iana" + }, + "application/vnd.syncml.dmddf+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmddf+xml": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["ddf"] + }, + "application/vnd.syncml.dmtnds+wbxml": { + source: "iana" + }, + "application/vnd.syncml.dmtnds+xml": { + source: "iana", + charset: "UTF-8", + compressible: true + }, + "application/vnd.syncml.ds.notification": { + source: "iana" + }, + "application/vnd.tableschema+json": { + source: "iana", + compressible: true + }, + "application/vnd.tao.intent-module-archive": { + source: "iana", + extensions: ["tao"] + }, + "application/vnd.tcpdump.pcap": { + source: "iana", + extensions: ["pcap", "cap", "dmp"] + }, + "application/vnd.think-cell.ppttc+json": { + source: "iana", + compressible: true + }, + "application/vnd.tmd.mediaflex.api+xml": { + source: "iana", + compressible: true + }, + "application/vnd.tml": { + source: "iana" + }, + "application/vnd.tmobile-livetv": { + source: "iana", + extensions: ["tmo"] + }, + "application/vnd.tri.onesource": { + source: "iana" + }, + "application/vnd.trid.tpt": { + source: "iana", + extensions: ["tpt"] + }, + "application/vnd.triscape.mxs": { + source: "iana", + extensions: ["mxs"] + }, + "application/vnd.trueapp": { + source: "iana", + extensions: ["tra"] + }, + "application/vnd.truedoc": { + source: "iana" + }, + "application/vnd.ubisoft.webplayer": { + source: "iana" + }, + "application/vnd.ufdl": { + source: "iana", + extensions: ["ufd", "ufdl"] + }, + "application/vnd.uiq.theme": { + source: "iana", + extensions: ["utz"] + }, + "application/vnd.umajin": { + source: "iana", + extensions: ["umj"] + }, + "application/vnd.unity": { + source: "iana", + extensions: ["unityweb"] + }, + "application/vnd.uoml+xml": { + source: "iana", + compressible: true, + extensions: ["uoml"] + }, + "application/vnd.uplanet.alert": { + source: "iana" + }, + "application/vnd.uplanet.alert-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice": { + source: "iana" + }, + "application/vnd.uplanet.bearer-choice-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.cacheop": { + source: "iana" + }, + "application/vnd.uplanet.cacheop-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.channel": { + source: "iana" + }, + "application/vnd.uplanet.channel-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.list": { + source: "iana" + }, + "application/vnd.uplanet.list-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.listcmd": { + source: "iana" + }, + "application/vnd.uplanet.listcmd-wbxml": { + source: "iana" + }, + "application/vnd.uplanet.signal": { + source: "iana" + }, + "application/vnd.uri-map": { + source: "iana" + }, + "application/vnd.valve.source.material": { + source: "iana" + }, + "application/vnd.vcx": { + source: "iana", + extensions: ["vcx"] + }, + "application/vnd.vd-study": { + source: "iana" + }, + "application/vnd.vectorworks": { + source: "iana" + }, + "application/vnd.vel+json": { + source: "iana", + compressible: true + }, + "application/vnd.verimatrix.vcas": { + source: "iana" + }, + "application/vnd.veritone.aion+json": { + source: "iana", + compressible: true + }, + "application/vnd.veryant.thin": { + source: "iana" + }, + "application/vnd.ves.encrypted": { + source: "iana" + }, + "application/vnd.vidsoft.vidconference": { + source: "iana" + }, + "application/vnd.visio": { + source: "iana", + extensions: ["vsd", "vst", "vss", "vsw"] + }, + "application/vnd.visionary": { + source: "iana", + extensions: ["vis"] + }, + "application/vnd.vividence.scriptfile": { + source: "iana" + }, + "application/vnd.vsf": { + source: "iana", + extensions: ["vsf"] + }, + "application/vnd.wap.sic": { + source: "iana" + }, + "application/vnd.wap.slc": { + source: "iana" + }, + "application/vnd.wap.wbxml": { + source: "iana", + charset: "UTF-8", + extensions: ["wbxml"] + }, + "application/vnd.wap.wmlc": { + source: "iana", + extensions: ["wmlc"] + }, + "application/vnd.wap.wmlscriptc": { + source: "iana", + extensions: ["wmlsc"] + }, + "application/vnd.webturbo": { + source: "iana", + extensions: ["wtb"] + }, + "application/vnd.wfa.dpp": { + source: "iana" + }, + "application/vnd.wfa.p2p": { + source: "iana" + }, + "application/vnd.wfa.wsc": { + source: "iana" + }, + "application/vnd.windows.devicepairing": { + source: "iana" + }, + "application/vnd.wmc": { + source: "iana" + }, + "application/vnd.wmf.bootstrap": { + source: "iana" + }, + "application/vnd.wolfram.mathematica": { + source: "iana" + }, + "application/vnd.wolfram.mathematica.package": { + source: "iana" + }, + "application/vnd.wolfram.player": { + source: "iana", + extensions: ["nbp"] + }, + "application/vnd.wordperfect": { + source: "iana", + extensions: ["wpd"] + }, + "application/vnd.wqd": { + source: "iana", + extensions: ["wqd"] + }, + "application/vnd.wrq-hp3000-labelled": { + source: "iana" + }, + "application/vnd.wt.stf": { + source: "iana", + extensions: ["stf"] + }, + "application/vnd.wv.csp+wbxml": { + source: "iana" + }, + "application/vnd.wv.csp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.wv.ssp+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xacml+json": { + source: "iana", + compressible: true + }, + "application/vnd.xara": { + source: "iana", + extensions: ["xar"] + }, + "application/vnd.xfdl": { + source: "iana", + extensions: ["xfdl"] + }, + "application/vnd.xfdl.webform": { + source: "iana" + }, + "application/vnd.xmi+xml": { + source: "iana", + compressible: true + }, + "application/vnd.xmpie.cpkg": { + source: "iana" + }, + "application/vnd.xmpie.dpkg": { + source: "iana" + }, + "application/vnd.xmpie.plan": { + source: "iana" + }, + "application/vnd.xmpie.ppkg": { + source: "iana" + }, + "application/vnd.xmpie.xlim": { + source: "iana" + }, + "application/vnd.yamaha.hv-dic": { + source: "iana", + extensions: ["hvd"] + }, + "application/vnd.yamaha.hv-script": { + source: "iana", + extensions: ["hvs"] + }, + "application/vnd.yamaha.hv-voice": { + source: "iana", + extensions: ["hvp"] + }, + "application/vnd.yamaha.openscoreformat": { + source: "iana", + extensions: ["osf"] + }, + "application/vnd.yamaha.openscoreformat.osfpvg+xml": { + source: "iana", + compressible: true, + extensions: ["osfpvg"] + }, + "application/vnd.yamaha.remote-setup": { + source: "iana" + }, + "application/vnd.yamaha.smaf-audio": { + source: "iana", + extensions: ["saf"] + }, + "application/vnd.yamaha.smaf-phrase": { + source: "iana", + extensions: ["spf"] + }, + "application/vnd.yamaha.through-ngn": { + source: "iana" + }, + "application/vnd.yamaha.tunnel-udpencap": { + source: "iana" + }, + "application/vnd.yaoweme": { + source: "iana" + }, + "application/vnd.yellowriver-custom-menu": { + source: "iana", + extensions: ["cmp"] + }, + "application/vnd.youtube.yt": { + source: "iana" + }, + "application/vnd.zul": { + source: "iana", + extensions: ["zir", "zirz"] + }, + "application/vnd.zzazz.deck+xml": { + source: "iana", + compressible: true, + extensions: ["zaz"] + }, + "application/voicexml+xml": { + source: "iana", + compressible: true, + extensions: ["vxml"] + }, + "application/voucher-cms+json": { + source: "iana", + compressible: true + }, + "application/vq-rtcpxr": { + source: "iana" + }, + "application/wasm": { + source: "iana", + compressible: true, + extensions: ["wasm"] + }, + "application/watcherinfo+xml": { + source: "iana", + compressible: true, + extensions: ["wif"] + }, + "application/webpush-options+json": { + source: "iana", + compressible: true + }, + "application/whoispp-query": { + source: "iana" + }, + "application/whoispp-response": { + source: "iana" + }, + "application/widget": { + source: "iana", + extensions: ["wgt"] + }, + "application/winhlp": { + source: "apache", + extensions: ["hlp"] + }, + "application/wita": { + source: "iana" + }, + "application/wordperfect5.1": { + source: "iana" + }, + "application/wsdl+xml": { + source: "iana", + compressible: true, + extensions: ["wsdl"] + }, + "application/wspolicy+xml": { + source: "iana", + compressible: true, + extensions: ["wspolicy"] + }, + "application/x-7z-compressed": { + source: "apache", + compressible: false, + extensions: ["7z"] + }, + "application/x-abiword": { + source: "apache", + extensions: ["abw"] + }, + "application/x-ace-compressed": { + source: "apache", + extensions: ["ace"] + }, + "application/x-amf": { + source: "apache" + }, + "application/x-apple-diskimage": { + source: "apache", + extensions: ["dmg"] + }, + "application/x-arj": { + compressible: false, + extensions: ["arj"] + }, + "application/x-authorware-bin": { + source: "apache", + extensions: ["aab", "x32", "u32", "vox"] + }, + "application/x-authorware-map": { + source: "apache", + extensions: ["aam"] + }, + "application/x-authorware-seg": { + source: "apache", + extensions: ["aas"] + }, + "application/x-bcpio": { + source: "apache", + extensions: ["bcpio"] + }, + "application/x-bdoc": { + compressible: false, + extensions: ["bdoc"] + }, + "application/x-bittorrent": { + source: "apache", + extensions: ["torrent"] + }, + "application/x-blorb": { + source: "apache", + extensions: ["blb", "blorb"] + }, + "application/x-bzip": { + source: "apache", + compressible: false, + extensions: ["bz"] + }, + "application/x-bzip2": { + source: "apache", + compressible: false, + extensions: ["bz2", "boz"] + }, + "application/x-cbr": { + source: "apache", + extensions: ["cbr", "cba", "cbt", "cbz", "cb7"] + }, + "application/x-cdlink": { + source: "apache", + extensions: ["vcd"] + }, + "application/x-cfs-compressed": { + source: "apache", + extensions: ["cfs"] + }, + "application/x-chat": { + source: "apache", + extensions: ["chat"] + }, + "application/x-chess-pgn": { + source: "apache", + extensions: ["pgn"] + }, + "application/x-chrome-extension": { + extensions: ["crx"] + }, + "application/x-cocoa": { + source: "nginx", + extensions: ["cco"] + }, + "application/x-compress": { + source: "apache" + }, + "application/x-conference": { + source: "apache", + extensions: ["nsc"] + }, + "application/x-cpio": { + source: "apache", + extensions: ["cpio"] + }, + "application/x-csh": { + source: "apache", + extensions: ["csh"] + }, + "application/x-deb": { + compressible: false + }, + "application/x-debian-package": { + source: "apache", + extensions: ["deb", "udeb"] + }, + "application/x-dgc-compressed": { + source: "apache", + extensions: ["dgc"] + }, + "application/x-director": { + source: "apache", + extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"] + }, + "application/x-doom": { + source: "apache", + extensions: ["wad"] + }, + "application/x-dtbncx+xml": { + source: "apache", + compressible: true, + extensions: ["ncx"] + }, + "application/x-dtbook+xml": { + source: "apache", + compressible: true, + extensions: ["dtb"] + }, + "application/x-dtbresource+xml": { + source: "apache", + compressible: true, + extensions: ["res"] + }, + "application/x-dvi": { + source: "apache", + compressible: false, + extensions: ["dvi"] + }, + "application/x-envoy": { + source: "apache", + extensions: ["evy"] + }, + "application/x-eva": { + source: "apache", + extensions: ["eva"] + }, + "application/x-font-bdf": { + source: "apache", + extensions: ["bdf"] + }, + "application/x-font-dos": { + source: "apache" + }, + "application/x-font-framemaker": { + source: "apache" + }, + "application/x-font-ghostscript": { + source: "apache", + extensions: ["gsf"] + }, + "application/x-font-libgrx": { + source: "apache" + }, + "application/x-font-linux-psf": { + source: "apache", + extensions: ["psf"] + }, + "application/x-font-pcf": { + source: "apache", + extensions: ["pcf"] + }, + "application/x-font-snf": { + source: "apache", + extensions: ["snf"] + }, + "application/x-font-speedo": { + source: "apache" + }, + "application/x-font-sunos-news": { + source: "apache" + }, + "application/x-font-type1": { + source: "apache", + extensions: ["pfa", "pfb", "pfm", "afm"] + }, + "application/x-font-vfont": { + source: "apache" + }, + "application/x-freearc": { + source: "apache", + extensions: ["arc"] + }, + "application/x-futuresplash": { + source: "apache", + extensions: ["spl"] + }, + "application/x-gca-compressed": { + source: "apache", + extensions: ["gca"] + }, + "application/x-glulx": { + source: "apache", + extensions: ["ulx"] + }, + "application/x-gnumeric": { + source: "apache", + extensions: ["gnumeric"] + }, + "application/x-gramps-xml": { + source: "apache", + extensions: ["gramps"] + }, + "application/x-gtar": { + source: "apache", + extensions: ["gtar"] + }, + "application/x-gzip": { + source: "apache" + }, + "application/x-hdf": { + source: "apache", + extensions: ["hdf"] + }, + "application/x-httpd-php": { + compressible: true, + extensions: ["php"] + }, + "application/x-install-instructions": { + source: "apache", + extensions: ["install"] + }, + "application/x-iso9660-image": { + source: "apache", + extensions: ["iso"] + }, + "application/x-iwork-keynote-sffkey": { + extensions: ["key"] + }, + "application/x-iwork-numbers-sffnumbers": { + extensions: ["numbers"] + }, + "application/x-iwork-pages-sffpages": { + extensions: ["pages"] + }, + "application/x-java-archive-diff": { + source: "nginx", + extensions: ["jardiff"] + }, + "application/x-java-jnlp-file": { + source: "apache", + compressible: false, + extensions: ["jnlp"] + }, + "application/x-javascript": { + compressible: true + }, + "application/x-keepass2": { + extensions: ["kdbx"] + }, + "application/x-latex": { + source: "apache", + compressible: false, + extensions: ["latex"] + }, + "application/x-lua-bytecode": { + extensions: ["luac"] + }, + "application/x-lzh-compressed": { + source: "apache", + extensions: ["lzh", "lha"] + }, + "application/x-makeself": { + source: "nginx", + extensions: ["run"] + }, + "application/x-mie": { + source: "apache", + extensions: ["mie"] + }, + "application/x-mobipocket-ebook": { + source: "apache", + extensions: ["prc", "mobi"] + }, + "application/x-mpegurl": { + compressible: false + }, + "application/x-ms-application": { + source: "apache", + extensions: ["application"] + }, + "application/x-ms-shortcut": { + source: "apache", + extensions: ["lnk"] + }, + "application/x-ms-wmd": { + source: "apache", + extensions: ["wmd"] + }, + "application/x-ms-wmz": { + source: "apache", + extensions: ["wmz"] + }, + "application/x-ms-xbap": { + source: "apache", + extensions: ["xbap"] + }, + "application/x-msaccess": { + source: "apache", + extensions: ["mdb"] + }, + "application/x-msbinder": { + source: "apache", + extensions: ["obd"] + }, + "application/x-mscardfile": { + source: "apache", + extensions: ["crd"] + }, + "application/x-msclip": { + source: "apache", + extensions: ["clp"] + }, + "application/x-msdos-program": { + extensions: ["exe"] + }, + "application/x-msdownload": { + source: "apache", + extensions: ["exe", "dll", "com", "bat", "msi"] + }, + "application/x-msmediaview": { + source: "apache", + extensions: ["mvb", "m13", "m14"] + }, + "application/x-msmetafile": { + source: "apache", + extensions: ["wmf", "wmz", "emf", "emz"] + }, + "application/x-msmoney": { + source: "apache", + extensions: ["mny"] + }, + "application/x-mspublisher": { + source: "apache", + extensions: ["pub"] + }, + "application/x-msschedule": { + source: "apache", + extensions: ["scd"] + }, + "application/x-msterminal": { + source: "apache", + extensions: ["trm"] + }, + "application/x-mswrite": { + source: "apache", + extensions: ["wri"] + }, + "application/x-netcdf": { + source: "apache", + extensions: ["nc", "cdf"] + }, + "application/x-ns-proxy-autoconfig": { + compressible: true, + extensions: ["pac"] + }, + "application/x-nzb": { + source: "apache", + extensions: ["nzb"] + }, + "application/x-perl": { + source: "nginx", + extensions: ["pl", "pm"] + }, + "application/x-pilot": { + source: "nginx", + extensions: ["prc", "pdb"] + }, + "application/x-pkcs12": { + source: "apache", + compressible: false, + extensions: ["p12", "pfx"] + }, + "application/x-pkcs7-certificates": { + source: "apache", + extensions: ["p7b", "spc"] + }, + "application/x-pkcs7-certreqresp": { + source: "apache", + extensions: ["p7r"] + }, + "application/x-pki-message": { + source: "iana" + }, + "application/x-rar-compressed": { + source: "apache", + compressible: false, + extensions: ["rar"] + }, + "application/x-redhat-package-manager": { + source: "nginx", + extensions: ["rpm"] + }, + "application/x-research-info-systems": { + source: "apache", + extensions: ["ris"] + }, + "application/x-sea": { + source: "nginx", + extensions: ["sea"] + }, + "application/x-sh": { + source: "apache", + compressible: true, + extensions: ["sh"] + }, + "application/x-shar": { + source: "apache", + extensions: ["shar"] + }, + "application/x-shockwave-flash": { + source: "apache", + compressible: false, + extensions: ["swf"] + }, + "application/x-silverlight-app": { + source: "apache", + extensions: ["xap"] + }, + "application/x-sql": { + source: "apache", + extensions: ["sql"] + }, + "application/x-stuffit": { + source: "apache", + compressible: false, + extensions: ["sit"] + }, + "application/x-stuffitx": { + source: "apache", + extensions: ["sitx"] + }, + "application/x-subrip": { + source: "apache", + extensions: ["srt"] + }, + "application/x-sv4cpio": { + source: "apache", + extensions: ["sv4cpio"] + }, + "application/x-sv4crc": { + source: "apache", + extensions: ["sv4crc"] + }, + "application/x-t3vm-image": { + source: "apache", + extensions: ["t3"] + }, + "application/x-tads": { + source: "apache", + extensions: ["gam"] + }, + "application/x-tar": { + source: "apache", + compressible: true, + extensions: ["tar"] + }, + "application/x-tcl": { + source: "apache", + extensions: ["tcl", "tk"] + }, + "application/x-tex": { + source: "apache", + extensions: ["tex"] + }, + "application/x-tex-tfm": { + source: "apache", + extensions: ["tfm"] + }, + "application/x-texinfo": { + source: "apache", + extensions: ["texinfo", "texi"] + }, + "application/x-tgif": { + source: "apache", + extensions: ["obj"] + }, + "application/x-ustar": { + source: "apache", + extensions: ["ustar"] + }, + "application/x-virtualbox-hdd": { + compressible: true, + extensions: ["hdd"] + }, + "application/x-virtualbox-ova": { + compressible: true, + extensions: ["ova"] + }, + "application/x-virtualbox-ovf": { + compressible: true, + extensions: ["ovf"] + }, + "application/x-virtualbox-vbox": { + compressible: true, + extensions: ["vbox"] + }, + "application/x-virtualbox-vbox-extpack": { + compressible: false, + extensions: ["vbox-extpack"] + }, + "application/x-virtualbox-vdi": { + compressible: true, + extensions: ["vdi"] + }, + "application/x-virtualbox-vhd": { + compressible: true, + extensions: ["vhd"] + }, + "application/x-virtualbox-vmdk": { + compressible: true, + extensions: ["vmdk"] + }, + "application/x-wais-source": { + source: "apache", + extensions: ["src"] + }, + "application/x-web-app-manifest+json": { + compressible: true, + extensions: ["webapp"] + }, + "application/x-www-form-urlencoded": { + source: "iana", + compressible: true + }, + "application/x-x509-ca-cert": { + source: "iana", + extensions: ["der", "crt", "pem"] + }, + "application/x-x509-ca-ra-cert": { + source: "iana" + }, + "application/x-x509-next-ca-cert": { + source: "iana" + }, + "application/x-xfig": { + source: "apache", + extensions: ["fig"] + }, + "application/x-xliff+xml": { + source: "apache", + compressible: true, + extensions: ["xlf"] + }, + "application/x-xpinstall": { + source: "apache", + compressible: false, + extensions: ["xpi"] + }, + "application/x-xz": { + source: "apache", + extensions: ["xz"] + }, + "application/x-zmachine": { + source: "apache", + extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"] + }, + "application/x400-bp": { + source: "iana" + }, + "application/xacml+xml": { + source: "iana", + compressible: true + }, + "application/xaml+xml": { + source: "apache", + compressible: true, + extensions: ["xaml"] + }, + "application/xcap-att+xml": { + source: "iana", + compressible: true, + extensions: ["xav"] + }, + "application/xcap-caps+xml": { + source: "iana", + compressible: true, + extensions: ["xca"] + }, + "application/xcap-diff+xml": { + source: "iana", + compressible: true, + extensions: ["xdf"] + }, + "application/xcap-el+xml": { + source: "iana", + compressible: true, + extensions: ["xel"] + }, + "application/xcap-error+xml": { + source: "iana", + compressible: true + }, + "application/xcap-ns+xml": { + source: "iana", + compressible: true, + extensions: ["xns"] + }, + "application/xcon-conference-info+xml": { + source: "iana", + compressible: true + }, + "application/xcon-conference-info-diff+xml": { + source: "iana", + compressible: true + }, + "application/xenc+xml": { + source: "iana", + compressible: true, + extensions: ["xenc"] + }, + "application/xhtml+xml": { + source: "iana", + compressible: true, + extensions: ["xhtml", "xht"] + }, + "application/xhtml-voice+xml": { + source: "apache", + compressible: true + }, + "application/xliff+xml": { + source: "iana", + compressible: true, + extensions: ["xlf"] + }, + "application/xml": { + source: "iana", + compressible: true, + extensions: ["xml", "xsl", "xsd", "rng"] + }, + "application/xml-dtd": { + source: "iana", + compressible: true, + extensions: ["dtd"] + }, + "application/xml-external-parsed-entity": { + source: "iana" + }, + "application/xml-patch+xml": { + source: "iana", + compressible: true + }, + "application/xmpp+xml": { + source: "iana", + compressible: true + }, + "application/xop+xml": { + source: "iana", + compressible: true, + extensions: ["xop"] + }, + "application/xproc+xml": { + source: "apache", + compressible: true, + extensions: ["xpl"] + }, + "application/xslt+xml": { + source: "iana", + compressible: true, + extensions: ["xsl", "xslt"] + }, + "application/xspf+xml": { + source: "apache", + compressible: true, + extensions: ["xspf"] + }, + "application/xv+xml": { + source: "iana", + compressible: true, + extensions: ["mxml", "xhvml", "xvml", "xvm"] + }, + "application/yang": { + source: "iana", + extensions: ["yang"] + }, + "application/yang-data+json": { + source: "iana", + compressible: true + }, + "application/yang-data+xml": { + source: "iana", + compressible: true + }, + "application/yang-patch+json": { + source: "iana", + compressible: true + }, + "application/yang-patch+xml": { + source: "iana", + compressible: true + }, + "application/yin+xml": { + source: "iana", + compressible: true, + extensions: ["yin"] + }, + "application/zip": { + source: "iana", + compressible: false, + extensions: ["zip"] + }, + "application/zlib": { + source: "iana" + }, + "application/zstd": { + source: "iana" + }, + "audio/1d-interleaved-parityfec": { + source: "iana" + }, + "audio/32kadpcm": { + source: "iana" + }, + "audio/3gpp": { + source: "iana", + compressible: false, + extensions: ["3gpp"] + }, + "audio/3gpp2": { + source: "iana" + }, + "audio/aac": { + source: "iana" + }, + "audio/ac3": { + source: "iana" + }, + "audio/adpcm": { + source: "apache", + extensions: ["adp"] + }, + "audio/amr": { + source: "iana", + extensions: ["amr"] + }, + "audio/amr-wb": { + source: "iana" + }, + "audio/amr-wb+": { + source: "iana" + }, + "audio/aptx": { + source: "iana" + }, + "audio/asc": { + source: "iana" + }, + "audio/atrac-advanced-lossless": { + source: "iana" + }, + "audio/atrac-x": { + source: "iana" + }, + "audio/atrac3": { + source: "iana" + }, + "audio/basic": { + source: "iana", + compressible: false, + extensions: ["au", "snd"] + }, + "audio/bv16": { + source: "iana" + }, + "audio/bv32": { + source: "iana" + }, + "audio/clearmode": { + source: "iana" + }, + "audio/cn": { + source: "iana" + }, + "audio/dat12": { + source: "iana" + }, + "audio/dls": { + source: "iana" + }, + "audio/dsr-es201108": { + source: "iana" + }, + "audio/dsr-es202050": { + source: "iana" + }, + "audio/dsr-es202211": { + source: "iana" + }, + "audio/dsr-es202212": { + source: "iana" + }, + "audio/dv": { + source: "iana" + }, + "audio/dvi4": { + source: "iana" + }, + "audio/eac3": { + source: "iana" + }, + "audio/encaprtp": { + source: "iana" + }, + "audio/evrc": { + source: "iana" + }, + "audio/evrc-qcp": { + source: "iana" + }, + "audio/evrc0": { + source: "iana" + }, + "audio/evrc1": { + source: "iana" + }, + "audio/evrcb": { + source: "iana" + }, + "audio/evrcb0": { + source: "iana" + }, + "audio/evrcb1": { + source: "iana" + }, + "audio/evrcnw": { + source: "iana" + }, + "audio/evrcnw0": { + source: "iana" + }, + "audio/evrcnw1": { + source: "iana" + }, + "audio/evrcwb": { + source: "iana" + }, + "audio/evrcwb0": { + source: "iana" + }, + "audio/evrcwb1": { + source: "iana" + }, + "audio/evs": { + source: "iana" + }, + "audio/flexfec": { + source: "iana" + }, + "audio/fwdred": { + source: "iana" + }, + "audio/g711-0": { + source: "iana" + }, + "audio/g719": { + source: "iana" + }, + "audio/g722": { + source: "iana" + }, + "audio/g7221": { + source: "iana" + }, + "audio/g723": { + source: "iana" + }, + "audio/g726-16": { + source: "iana" + }, + "audio/g726-24": { + source: "iana" + }, + "audio/g726-32": { + source: "iana" + }, + "audio/g726-40": { + source: "iana" + }, + "audio/g728": { + source: "iana" + }, + "audio/g729": { + source: "iana" + }, + "audio/g7291": { + source: "iana" + }, + "audio/g729d": { + source: "iana" + }, + "audio/g729e": { + source: "iana" + }, + "audio/gsm": { + source: "iana" + }, + "audio/gsm-efr": { + source: "iana" + }, + "audio/gsm-hr-08": { + source: "iana" + }, + "audio/ilbc": { + source: "iana" + }, + "audio/ip-mr_v2.5": { + source: "iana" + }, + "audio/isac": { + source: "apache" + }, + "audio/l16": { + source: "iana" + }, + "audio/l20": { + source: "iana" + }, + "audio/l24": { + source: "iana", + compressible: false + }, + "audio/l8": { + source: "iana" + }, + "audio/lpc": { + source: "iana" + }, + "audio/melp": { + source: "iana" + }, + "audio/melp1200": { + source: "iana" + }, + "audio/melp2400": { + source: "iana" + }, + "audio/melp600": { + source: "iana" + }, + "audio/mhas": { + source: "iana" + }, + "audio/midi": { + source: "apache", + extensions: ["mid", "midi", "kar", "rmi"] + }, + "audio/mobile-xmf": { + source: "iana", + extensions: ["mxmf"] + }, + "audio/mp3": { + compressible: false, + extensions: ["mp3"] + }, + "audio/mp4": { + source: "iana", + compressible: false, + extensions: ["m4a", "mp4a"] + }, + "audio/mp4a-latm": { + source: "iana" + }, + "audio/mpa": { + source: "iana" + }, + "audio/mpa-robust": { + source: "iana" + }, + "audio/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"] + }, + "audio/mpeg4-generic": { + source: "iana" + }, + "audio/musepack": { + source: "apache" + }, + "audio/ogg": { + source: "iana", + compressible: false, + extensions: ["oga", "ogg", "spx", "opus"] + }, + "audio/opus": { + source: "iana" + }, + "audio/parityfec": { + source: "iana" + }, + "audio/pcma": { + source: "iana" + }, + "audio/pcma-wb": { + source: "iana" + }, + "audio/pcmu": { + source: "iana" + }, + "audio/pcmu-wb": { + source: "iana" + }, + "audio/prs.sid": { + source: "iana" + }, + "audio/qcelp": { + source: "iana" + }, + "audio/raptorfec": { + source: "iana" + }, + "audio/red": { + source: "iana" + }, + "audio/rtp-enc-aescm128": { + source: "iana" + }, + "audio/rtp-midi": { + source: "iana" + }, + "audio/rtploopback": { + source: "iana" + }, + "audio/rtx": { + source: "iana" + }, + "audio/s3m": { + source: "apache", + extensions: ["s3m"] + }, + "audio/scip": { + source: "iana" + }, + "audio/silk": { + source: "apache", + extensions: ["sil"] + }, + "audio/smv": { + source: "iana" + }, + "audio/smv-qcp": { + source: "iana" + }, + "audio/smv0": { + source: "iana" + }, + "audio/sofa": { + source: "iana" + }, + "audio/sp-midi": { + source: "iana" + }, + "audio/speex": { + source: "iana" + }, + "audio/t140c": { + source: "iana" + }, + "audio/t38": { + source: "iana" + }, + "audio/telephone-event": { + source: "iana" + }, + "audio/tetra_acelp": { + source: "iana" + }, + "audio/tetra_acelp_bb": { + source: "iana" + }, + "audio/tone": { + source: "iana" + }, + "audio/tsvcis": { + source: "iana" + }, + "audio/uemclip": { + source: "iana" + }, + "audio/ulpfec": { + source: "iana" + }, + "audio/usac": { + source: "iana" + }, + "audio/vdvi": { + source: "iana" + }, + "audio/vmr-wb": { + source: "iana" + }, + "audio/vnd.3gpp.iufp": { + source: "iana" + }, + "audio/vnd.4sb": { + source: "iana" + }, + "audio/vnd.audiokoz": { + source: "iana" + }, + "audio/vnd.celp": { + source: "iana" + }, + "audio/vnd.cisco.nse": { + source: "iana" + }, + "audio/vnd.cmles.radio-events": { + source: "iana" + }, + "audio/vnd.cns.anp1": { + source: "iana" + }, + "audio/vnd.cns.inf1": { + source: "iana" + }, + "audio/vnd.dece.audio": { + source: "iana", + extensions: ["uva", "uvva"] + }, + "audio/vnd.digital-winds": { + source: "iana", + extensions: ["eol"] + }, + "audio/vnd.dlna.adts": { + source: "iana" + }, + "audio/vnd.dolby.heaac.1": { + source: "iana" + }, + "audio/vnd.dolby.heaac.2": { + source: "iana" + }, + "audio/vnd.dolby.mlp": { + source: "iana" + }, + "audio/vnd.dolby.mps": { + source: "iana" + }, + "audio/vnd.dolby.pl2": { + source: "iana" + }, + "audio/vnd.dolby.pl2x": { + source: "iana" + }, + "audio/vnd.dolby.pl2z": { + source: "iana" + }, + "audio/vnd.dolby.pulse.1": { + source: "iana" + }, + "audio/vnd.dra": { + source: "iana", + extensions: ["dra"] + }, + "audio/vnd.dts": { + source: "iana", + extensions: ["dts"] + }, + "audio/vnd.dts.hd": { + source: "iana", + extensions: ["dtshd"] + }, + "audio/vnd.dts.uhd": { + source: "iana" + }, + "audio/vnd.dvb.file": { + source: "iana" + }, + "audio/vnd.everad.plj": { + source: "iana" + }, + "audio/vnd.hns.audio": { + source: "iana" + }, + "audio/vnd.lucent.voice": { + source: "iana", + extensions: ["lvp"] + }, + "audio/vnd.ms-playready.media.pya": { + source: "iana", + extensions: ["pya"] + }, + "audio/vnd.nokia.mobile-xmf": { + source: "iana" + }, + "audio/vnd.nortel.vbk": { + source: "iana" + }, + "audio/vnd.nuera.ecelp4800": { + source: "iana", + extensions: ["ecelp4800"] + }, + "audio/vnd.nuera.ecelp7470": { + source: "iana", + extensions: ["ecelp7470"] + }, + "audio/vnd.nuera.ecelp9600": { + source: "iana", + extensions: ["ecelp9600"] + }, + "audio/vnd.octel.sbc": { + source: "iana" + }, + "audio/vnd.presonus.multitrack": { + source: "iana" + }, + "audio/vnd.qcelp": { + source: "iana" + }, + "audio/vnd.rhetorex.32kadpcm": { + source: "iana" + }, + "audio/vnd.rip": { + source: "iana", + extensions: ["rip"] + }, + "audio/vnd.rn-realaudio": { + compressible: false + }, + "audio/vnd.sealedmedia.softseal.mpeg": { + source: "iana" + }, + "audio/vnd.vmx.cvsd": { + source: "iana" + }, + "audio/vnd.wave": { + compressible: false + }, + "audio/vorbis": { + source: "iana", + compressible: false + }, + "audio/vorbis-config": { + source: "iana" + }, + "audio/wav": { + compressible: false, + extensions: ["wav"] + }, + "audio/wave": { + compressible: false, + extensions: ["wav"] + }, + "audio/webm": { + source: "apache", + compressible: false, + extensions: ["weba"] + }, + "audio/x-aac": { + source: "apache", + compressible: false, + extensions: ["aac"] + }, + "audio/x-aiff": { + source: "apache", + extensions: ["aif", "aiff", "aifc"] + }, + "audio/x-caf": { + source: "apache", + compressible: false, + extensions: ["caf"] + }, + "audio/x-flac": { + source: "apache", + extensions: ["flac"] + }, + "audio/x-m4a": { + source: "nginx", + extensions: ["m4a"] + }, + "audio/x-matroska": { + source: "apache", + extensions: ["mka"] + }, + "audio/x-mpegurl": { + source: "apache", + extensions: ["m3u"] + }, + "audio/x-ms-wax": { + source: "apache", + extensions: ["wax"] + }, + "audio/x-ms-wma": { + source: "apache", + extensions: ["wma"] + }, + "audio/x-pn-realaudio": { + source: "apache", + extensions: ["ram", "ra"] + }, + "audio/x-pn-realaudio-plugin": { + source: "apache", + extensions: ["rmp"] + }, + "audio/x-realaudio": { + source: "nginx", + extensions: ["ra"] + }, + "audio/x-tta": { + source: "apache" + }, + "audio/x-wav": { + source: "apache", + extensions: ["wav"] + }, + "audio/xm": { + source: "apache", + extensions: ["xm"] + }, + "chemical/x-cdx": { + source: "apache", + extensions: ["cdx"] + }, + "chemical/x-cif": { + source: "apache", + extensions: ["cif"] + }, + "chemical/x-cmdf": { + source: "apache", + extensions: ["cmdf"] + }, + "chemical/x-cml": { + source: "apache", + extensions: ["cml"] + }, + "chemical/x-csml": { + source: "apache", + extensions: ["csml"] + }, + "chemical/x-pdb": { + source: "apache" + }, + "chemical/x-xyz": { + source: "apache", + extensions: ["xyz"] + }, + "font/collection": { + source: "iana", + extensions: ["ttc"] + }, + "font/otf": { + source: "iana", + compressible: true, + extensions: ["otf"] + }, + "font/sfnt": { + source: "iana" + }, + "font/ttf": { + source: "iana", + compressible: true, + extensions: ["ttf"] + }, + "font/woff": { + source: "iana", + extensions: ["woff"] + }, + "font/woff2": { + source: "iana", + extensions: ["woff2"] + }, + "image/aces": { + source: "iana", + extensions: ["exr"] + }, + "image/apng": { + compressible: false, + extensions: ["apng"] + }, + "image/avci": { + source: "iana", + extensions: ["avci"] + }, + "image/avcs": { + source: "iana", + extensions: ["avcs"] + }, + "image/avif": { + source: "iana", + compressible: false, + extensions: ["avif"] + }, + "image/bmp": { + source: "iana", + compressible: true, + extensions: ["bmp"] + }, + "image/cgm": { + source: "iana", + extensions: ["cgm"] + }, + "image/dicom-rle": { + source: "iana", + extensions: ["drle"] + }, + "image/emf": { + source: "iana", + extensions: ["emf"] + }, + "image/fits": { + source: "iana", + extensions: ["fits"] + }, + "image/g3fax": { + source: "iana", + extensions: ["g3"] + }, + "image/gif": { + source: "iana", + compressible: false, + extensions: ["gif"] + }, + "image/heic": { + source: "iana", + extensions: ["heic"] + }, + "image/heic-sequence": { + source: "iana", + extensions: ["heics"] + }, + "image/heif": { + source: "iana", + extensions: ["heif"] + }, + "image/heif-sequence": { + source: "iana", + extensions: ["heifs"] + }, + "image/hej2k": { + source: "iana", + extensions: ["hej2"] + }, + "image/hsj2": { + source: "iana", + extensions: ["hsj2"] + }, + "image/ief": { + source: "iana", + extensions: ["ief"] + }, + "image/jls": { + source: "iana", + extensions: ["jls"] + }, + "image/jp2": { + source: "iana", + compressible: false, + extensions: ["jp2", "jpg2"] + }, + "image/jpeg": { + source: "iana", + compressible: false, + extensions: ["jpeg", "jpg", "jpe"] + }, + "image/jph": { + source: "iana", + extensions: ["jph"] + }, + "image/jphc": { + source: "iana", + extensions: ["jhc"] + }, + "image/jpm": { + source: "iana", + compressible: false, + extensions: ["jpm"] + }, + "image/jpx": { + source: "iana", + compressible: false, + extensions: ["jpx", "jpf"] + }, + "image/jxr": { + source: "iana", + extensions: ["jxr"] + }, + "image/jxra": { + source: "iana", + extensions: ["jxra"] + }, + "image/jxrs": { + source: "iana", + extensions: ["jxrs"] + }, + "image/jxs": { + source: "iana", + extensions: ["jxs"] + }, + "image/jxsc": { + source: "iana", + extensions: ["jxsc"] + }, + "image/jxsi": { + source: "iana", + extensions: ["jxsi"] + }, + "image/jxss": { + source: "iana", + extensions: ["jxss"] + }, + "image/ktx": { + source: "iana", + extensions: ["ktx"] + }, + "image/ktx2": { + source: "iana", + extensions: ["ktx2"] + }, + "image/naplps": { + source: "iana" + }, + "image/pjpeg": { + compressible: false + }, + "image/png": { + source: "iana", + compressible: false, + extensions: ["png"] + }, + "image/prs.btif": { + source: "iana", + extensions: ["btif"] + }, + "image/prs.pti": { + source: "iana", + extensions: ["pti"] + }, + "image/pwg-raster": { + source: "iana" + }, + "image/sgi": { + source: "apache", + extensions: ["sgi"] + }, + "image/svg+xml": { + source: "iana", + compressible: true, + extensions: ["svg", "svgz"] + }, + "image/t38": { + source: "iana", + extensions: ["t38"] + }, + "image/tiff": { + source: "iana", + compressible: false, + extensions: ["tif", "tiff"] + }, + "image/tiff-fx": { + source: "iana", + extensions: ["tfx"] + }, + "image/vnd.adobe.photoshop": { + source: "iana", + compressible: true, + extensions: ["psd"] + }, + "image/vnd.airzip.accelerator.azv": { + source: "iana", + extensions: ["azv"] + }, + "image/vnd.cns.inf2": { + source: "iana" + }, + "image/vnd.dece.graphic": { + source: "iana", + extensions: ["uvi", "uvvi", "uvg", "uvvg"] + }, + "image/vnd.djvu": { + source: "iana", + extensions: ["djvu", "djv"] + }, + "image/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "image/vnd.dwg": { + source: "iana", + extensions: ["dwg"] + }, + "image/vnd.dxf": { + source: "iana", + extensions: ["dxf"] + }, + "image/vnd.fastbidsheet": { + source: "iana", + extensions: ["fbs"] + }, + "image/vnd.fpx": { + source: "iana", + extensions: ["fpx"] + }, + "image/vnd.fst": { + source: "iana", + extensions: ["fst"] + }, + "image/vnd.fujixerox.edmics-mmr": { + source: "iana", + extensions: ["mmr"] + }, + "image/vnd.fujixerox.edmics-rlc": { + source: "iana", + extensions: ["rlc"] + }, + "image/vnd.globalgraphics.pgb": { + source: "iana" + }, + "image/vnd.microsoft.icon": { + source: "iana", + compressible: true, + extensions: ["ico"] + }, + "image/vnd.mix": { + source: "iana" + }, + "image/vnd.mozilla.apng": { + source: "iana" + }, + "image/vnd.ms-dds": { + compressible: true, + extensions: ["dds"] + }, + "image/vnd.ms-modi": { + source: "iana", + extensions: ["mdi"] + }, + "image/vnd.ms-photo": { + source: "apache", + extensions: ["wdp"] + }, + "image/vnd.net-fpx": { + source: "iana", + extensions: ["npx"] + }, + "image/vnd.pco.b16": { + source: "iana", + extensions: ["b16"] + }, + "image/vnd.radiance": { + source: "iana" + }, + "image/vnd.sealed.png": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.gif": { + source: "iana" + }, + "image/vnd.sealedmedia.softseal.jpg": { + source: "iana" + }, + "image/vnd.svf": { + source: "iana" + }, + "image/vnd.tencent.tap": { + source: "iana", + extensions: ["tap"] + }, + "image/vnd.valve.source.texture": { + source: "iana", + extensions: ["vtf"] + }, + "image/vnd.wap.wbmp": { + source: "iana", + extensions: ["wbmp"] + }, + "image/vnd.xiff": { + source: "iana", + extensions: ["xif"] + }, + "image/vnd.zbrush.pcx": { + source: "iana", + extensions: ["pcx"] + }, + "image/webp": { + source: "apache", + extensions: ["webp"] + }, + "image/wmf": { + source: "iana", + extensions: ["wmf"] + }, + "image/x-3ds": { + source: "apache", + extensions: ["3ds"] + }, + "image/x-cmu-raster": { + source: "apache", + extensions: ["ras"] + }, + "image/x-cmx": { + source: "apache", + extensions: ["cmx"] + }, + "image/x-freehand": { + source: "apache", + extensions: ["fh", "fhc", "fh4", "fh5", "fh7"] + }, + "image/x-icon": { + source: "apache", + compressible: true, + extensions: ["ico"] + }, + "image/x-jng": { + source: "nginx", + extensions: ["jng"] + }, + "image/x-mrsid-image": { + source: "apache", + extensions: ["sid"] + }, + "image/x-ms-bmp": { + source: "nginx", + compressible: true, + extensions: ["bmp"] + }, + "image/x-pcx": { + source: "apache", + extensions: ["pcx"] + }, + "image/x-pict": { + source: "apache", + extensions: ["pic", "pct"] + }, + "image/x-portable-anymap": { + source: "apache", + extensions: ["pnm"] + }, + "image/x-portable-bitmap": { + source: "apache", + extensions: ["pbm"] + }, + "image/x-portable-graymap": { + source: "apache", + extensions: ["pgm"] + }, + "image/x-portable-pixmap": { + source: "apache", + extensions: ["ppm"] + }, + "image/x-rgb": { + source: "apache", + extensions: ["rgb"] + }, + "image/x-tga": { + source: "apache", + extensions: ["tga"] + }, + "image/x-xbitmap": { + source: "apache", + extensions: ["xbm"] + }, + "image/x-xcf": { + compressible: false + }, + "image/x-xpixmap": { + source: "apache", + extensions: ["xpm"] + }, + "image/x-xwindowdump": { + source: "apache", + extensions: ["xwd"] + }, + "message/cpim": { + source: "iana" + }, + "message/delivery-status": { + source: "iana" + }, + "message/disposition-notification": { + source: "iana", + extensions: [ + "disposition-notification" + ] + }, + "message/external-body": { + source: "iana" + }, + "message/feedback-report": { + source: "iana" + }, + "message/global": { + source: "iana", + extensions: ["u8msg"] + }, + "message/global-delivery-status": { + source: "iana", + extensions: ["u8dsn"] + }, + "message/global-disposition-notification": { + source: "iana", + extensions: ["u8mdn"] + }, + "message/global-headers": { + source: "iana", + extensions: ["u8hdr"] + }, + "message/http": { + source: "iana", + compressible: false + }, + "message/imdn+xml": { + source: "iana", + compressible: true + }, + "message/news": { + source: "iana" + }, + "message/partial": { + source: "iana", + compressible: false + }, + "message/rfc822": { + source: "iana", + compressible: true, + extensions: ["eml", "mime"] + }, + "message/s-http": { + source: "iana" + }, + "message/sip": { + source: "iana" + }, + "message/sipfrag": { + source: "iana" + }, + "message/tracking-status": { + source: "iana" + }, + "message/vnd.si.simp": { + source: "iana" + }, + "message/vnd.wfa.wsc": { + source: "iana", + extensions: ["wsc"] + }, + "model/3mf": { + source: "iana", + extensions: ["3mf"] + }, + "model/e57": { + source: "iana" + }, + "model/gltf+json": { + source: "iana", + compressible: true, + extensions: ["gltf"] + }, + "model/gltf-binary": { + source: "iana", + compressible: true, + extensions: ["glb"] + }, + "model/iges": { + source: "iana", + compressible: false, + extensions: ["igs", "iges"] + }, + "model/mesh": { + source: "iana", + compressible: false, + extensions: ["msh", "mesh", "silo"] + }, + "model/mtl": { + source: "iana", + extensions: ["mtl"] + }, + "model/obj": { + source: "iana", + extensions: ["obj"] + }, + "model/step": { + source: "iana" + }, + "model/step+xml": { + source: "iana", + compressible: true, + extensions: ["stpx"] + }, + "model/step+zip": { + source: "iana", + compressible: false, + extensions: ["stpz"] + }, + "model/step-xml+zip": { + source: "iana", + compressible: false, + extensions: ["stpxz"] + }, + "model/stl": { + source: "iana", + extensions: ["stl"] + }, + "model/vnd.collada+xml": { + source: "iana", + compressible: true, + extensions: ["dae"] + }, + "model/vnd.dwf": { + source: "iana", + extensions: ["dwf"] + }, + "model/vnd.flatland.3dml": { + source: "iana" + }, + "model/vnd.gdl": { + source: "iana", + extensions: ["gdl"] + }, + "model/vnd.gs-gdl": { + source: "apache" + }, + "model/vnd.gs.gdl": { + source: "iana" + }, + "model/vnd.gtw": { + source: "iana", + extensions: ["gtw"] + }, + "model/vnd.moml+xml": { + source: "iana", + compressible: true + }, + "model/vnd.mts": { + source: "iana", + extensions: ["mts"] + }, + "model/vnd.opengex": { + source: "iana", + extensions: ["ogex"] + }, + "model/vnd.parasolid.transmit.binary": { + source: "iana", + extensions: ["x_b"] + }, + "model/vnd.parasolid.transmit.text": { + source: "iana", + extensions: ["x_t"] + }, + "model/vnd.pytha.pyox": { + source: "iana" + }, + "model/vnd.rosette.annotated-data-model": { + source: "iana" + }, + "model/vnd.sap.vds": { + source: "iana", + extensions: ["vds"] + }, + "model/vnd.usdz+zip": { + source: "iana", + compressible: false, + extensions: ["usdz"] + }, + "model/vnd.valve.source.compiled-map": { + source: "iana", + extensions: ["bsp"] + }, + "model/vnd.vtu": { + source: "iana", + extensions: ["vtu"] + }, + "model/vrml": { + source: "iana", + compressible: false, + extensions: ["wrl", "vrml"] + }, + "model/x3d+binary": { + source: "apache", + compressible: false, + extensions: ["x3db", "x3dbz"] + }, + "model/x3d+fastinfoset": { + source: "iana", + extensions: ["x3db"] + }, + "model/x3d+vrml": { + source: "apache", + compressible: false, + extensions: ["x3dv", "x3dvz"] + }, + "model/x3d+xml": { + source: "iana", + compressible: true, + extensions: ["x3d", "x3dz"] + }, + "model/x3d-vrml": { + source: "iana", + extensions: ["x3dv"] + }, + "multipart/alternative": { + source: "iana", + compressible: false + }, + "multipart/appledouble": { + source: "iana" + }, + "multipart/byteranges": { + source: "iana" + }, + "multipart/digest": { + source: "iana" + }, + "multipart/encrypted": { + source: "iana", + compressible: false + }, + "multipart/form-data": { + source: "iana", + compressible: false + }, + "multipart/header-set": { + source: "iana" + }, + "multipart/mixed": { + source: "iana" + }, + "multipart/multilingual": { + source: "iana" + }, + "multipart/parallel": { + source: "iana" + }, + "multipart/related": { + source: "iana", + compressible: false + }, + "multipart/report": { + source: "iana" + }, + "multipart/signed": { + source: "iana", + compressible: false + }, + "multipart/vnd.bint.med-plus": { + source: "iana" + }, + "multipart/voice-message": { + source: "iana" + }, + "multipart/x-mixed-replace": { + source: "iana" + }, + "text/1d-interleaved-parityfec": { + source: "iana" + }, + "text/cache-manifest": { + source: "iana", + compressible: true, + extensions: ["appcache", "manifest"] + }, + "text/calendar": { + source: "iana", + extensions: ["ics", "ifb"] + }, + "text/calender": { + compressible: true + }, + "text/cmd": { + compressible: true + }, + "text/coffeescript": { + extensions: ["coffee", "litcoffee"] + }, + "text/cql": { + source: "iana" + }, + "text/cql-expression": { + source: "iana" + }, + "text/cql-identifier": { + source: "iana" + }, + "text/css": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["css"] + }, + "text/csv": { + source: "iana", + compressible: true, + extensions: ["csv"] + }, + "text/csv-schema": { + source: "iana" + }, + "text/directory": { + source: "iana" + }, + "text/dns": { + source: "iana" + }, + "text/ecmascript": { + source: "iana" + }, + "text/encaprtp": { + source: "iana" + }, + "text/enriched": { + source: "iana" + }, + "text/fhirpath": { + source: "iana" + }, + "text/flexfec": { + source: "iana" + }, + "text/fwdred": { + source: "iana" + }, + "text/gff3": { + source: "iana" + }, + "text/grammar-ref-list": { + source: "iana" + }, + "text/html": { + source: "iana", + compressible: true, + extensions: ["html", "htm", "shtml"] + }, + "text/jade": { + extensions: ["jade"] + }, + "text/javascript": { + source: "iana", + compressible: true + }, + "text/jcr-cnd": { + source: "iana" + }, + "text/jsx": { + compressible: true, + extensions: ["jsx"] + }, + "text/less": { + compressible: true, + extensions: ["less"] + }, + "text/markdown": { + source: "iana", + compressible: true, + extensions: ["markdown", "md"] + }, + "text/mathml": { + source: "nginx", + extensions: ["mml"] + }, + "text/mdx": { + compressible: true, + extensions: ["mdx"] + }, + "text/mizar": { + source: "iana" + }, + "text/n3": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["n3"] + }, + "text/parameters": { + source: "iana", + charset: "UTF-8" + }, + "text/parityfec": { + source: "iana" + }, + "text/plain": { + source: "iana", + compressible: true, + extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"] + }, + "text/provenance-notation": { + source: "iana", + charset: "UTF-8" + }, + "text/prs.fallenstein.rst": { + source: "iana" + }, + "text/prs.lines.tag": { + source: "iana", + extensions: ["dsc"] + }, + "text/prs.prop.logic": { + source: "iana" + }, + "text/raptorfec": { + source: "iana" + }, + "text/red": { + source: "iana" + }, + "text/rfc822-headers": { + source: "iana" + }, + "text/richtext": { + source: "iana", + compressible: true, + extensions: ["rtx"] + }, + "text/rtf": { + source: "iana", + compressible: true, + extensions: ["rtf"] + }, + "text/rtp-enc-aescm128": { + source: "iana" + }, + "text/rtploopback": { + source: "iana" + }, + "text/rtx": { + source: "iana" + }, + "text/sgml": { + source: "iana", + extensions: ["sgml", "sgm"] + }, + "text/shaclc": { + source: "iana" + }, + "text/shex": { + source: "iana", + extensions: ["shex"] + }, + "text/slim": { + extensions: ["slim", "slm"] + }, + "text/spdx": { + source: "iana", + extensions: ["spdx"] + }, + "text/strings": { + source: "iana" + }, + "text/stylus": { + extensions: ["stylus", "styl"] + }, + "text/t140": { + source: "iana" + }, + "text/tab-separated-values": { + source: "iana", + compressible: true, + extensions: ["tsv"] + }, + "text/troff": { + source: "iana", + extensions: ["t", "tr", "roff", "man", "me", "ms"] + }, + "text/turtle": { + source: "iana", + charset: "UTF-8", + extensions: ["ttl"] + }, + "text/ulpfec": { + source: "iana" + }, + "text/uri-list": { + source: "iana", + compressible: true, + extensions: ["uri", "uris", "urls"] + }, + "text/vcard": { + source: "iana", + compressible: true, + extensions: ["vcard"] + }, + "text/vnd.a": { + source: "iana" + }, + "text/vnd.abc": { + source: "iana" + }, + "text/vnd.ascii-art": { + source: "iana" + }, + "text/vnd.curl": { + source: "iana", + extensions: ["curl"] + }, + "text/vnd.curl.dcurl": { + source: "apache", + extensions: ["dcurl"] + }, + "text/vnd.curl.mcurl": { + source: "apache", + extensions: ["mcurl"] + }, + "text/vnd.curl.scurl": { + source: "apache", + extensions: ["scurl"] + }, + "text/vnd.debian.copyright": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.dmclientscript": { + source: "iana" + }, + "text/vnd.dvb.subtitle": { + source: "iana", + extensions: ["sub"] + }, + "text/vnd.esmertec.theme-descriptor": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.familysearch.gedcom": { + source: "iana", + extensions: ["ged"] + }, + "text/vnd.ficlab.flt": { + source: "iana" + }, + "text/vnd.fly": { + source: "iana", + extensions: ["fly"] + }, + "text/vnd.fmi.flexstor": { + source: "iana", + extensions: ["flx"] + }, + "text/vnd.gml": { + source: "iana" + }, + "text/vnd.graphviz": { + source: "iana", + extensions: ["gv"] + }, + "text/vnd.hans": { + source: "iana" + }, + "text/vnd.hgl": { + source: "iana" + }, + "text/vnd.in3d.3dml": { + source: "iana", + extensions: ["3dml"] + }, + "text/vnd.in3d.spot": { + source: "iana", + extensions: ["spot"] + }, + "text/vnd.iptc.newsml": { + source: "iana" + }, + "text/vnd.iptc.nitf": { + source: "iana" + }, + "text/vnd.latex-z": { + source: "iana" + }, + "text/vnd.motorola.reflex": { + source: "iana" + }, + "text/vnd.ms-mediapackage": { + source: "iana" + }, + "text/vnd.net2phone.commcenter.command": { + source: "iana" + }, + "text/vnd.radisys.msml-basic-layout": { + source: "iana" + }, + "text/vnd.senx.warpscript": { + source: "iana" + }, + "text/vnd.si.uricatalogue": { + source: "iana" + }, + "text/vnd.sosi": { + source: "iana" + }, + "text/vnd.sun.j2me.app-descriptor": { + source: "iana", + charset: "UTF-8", + extensions: ["jad"] + }, + "text/vnd.trolltech.linguist": { + source: "iana", + charset: "UTF-8" + }, + "text/vnd.wap.si": { + source: "iana" + }, + "text/vnd.wap.sl": { + source: "iana" + }, + "text/vnd.wap.wml": { + source: "iana", + extensions: ["wml"] + }, + "text/vnd.wap.wmlscript": { + source: "iana", + extensions: ["wmls"] + }, + "text/vtt": { + source: "iana", + charset: "UTF-8", + compressible: true, + extensions: ["vtt"] + }, + "text/x-asm": { + source: "apache", + extensions: ["s", "asm"] + }, + "text/x-c": { + source: "apache", + extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"] + }, + "text/x-component": { + source: "nginx", + extensions: ["htc"] + }, + "text/x-fortran": { + source: "apache", + extensions: ["f", "for", "f77", "f90"] + }, + "text/x-gwt-rpc": { + compressible: true + }, + "text/x-handlebars-template": { + extensions: ["hbs"] + }, + "text/x-java-source": { + source: "apache", + extensions: ["java"] + }, + "text/x-jquery-tmpl": { + compressible: true + }, + "text/x-lua": { + extensions: ["lua"] + }, + "text/x-markdown": { + compressible: true, + extensions: ["mkd"] + }, + "text/x-nfo": { + source: "apache", + extensions: ["nfo"] + }, + "text/x-opml": { + source: "apache", + extensions: ["opml"] + }, + "text/x-org": { + compressible: true, + extensions: ["org"] + }, + "text/x-pascal": { + source: "apache", + extensions: ["p", "pas"] + }, + "text/x-processing": { + compressible: true, + extensions: ["pde"] + }, + "text/x-sass": { + extensions: ["sass"] + }, + "text/x-scss": { + extensions: ["scss"] + }, + "text/x-setext": { + source: "apache", + extensions: ["etx"] + }, + "text/x-sfv": { + source: "apache", + extensions: ["sfv"] + }, + "text/x-suse-ymp": { + compressible: true, + extensions: ["ymp"] + }, + "text/x-uuencode": { + source: "apache", + extensions: ["uu"] + }, + "text/x-vcalendar": { + source: "apache", + extensions: ["vcs"] + }, + "text/x-vcard": { + source: "apache", + extensions: ["vcf"] + }, + "text/xml": { + source: "iana", + compressible: true, + extensions: ["xml"] + }, + "text/xml-external-parsed-entity": { + source: "iana" + }, + "text/yaml": { + compressible: true, + extensions: ["yaml", "yml"] + }, + "video/1d-interleaved-parityfec": { + source: "iana" + }, + "video/3gpp": { + source: "iana", + extensions: ["3gp", "3gpp"] + }, + "video/3gpp-tt": { + source: "iana" + }, + "video/3gpp2": { + source: "iana", + extensions: ["3g2"] + }, + "video/av1": { + source: "iana" + }, + "video/bmpeg": { + source: "iana" + }, + "video/bt656": { + source: "iana" + }, + "video/celb": { + source: "iana" + }, + "video/dv": { + source: "iana" + }, + "video/encaprtp": { + source: "iana" + }, + "video/ffv1": { + source: "iana" + }, + "video/flexfec": { + source: "iana" + }, + "video/h261": { + source: "iana", + extensions: ["h261"] + }, + "video/h263": { + source: "iana", + extensions: ["h263"] + }, + "video/h263-1998": { + source: "iana" + }, + "video/h263-2000": { + source: "iana" + }, + "video/h264": { + source: "iana", + extensions: ["h264"] + }, + "video/h264-rcdo": { + source: "iana" + }, + "video/h264-svc": { + source: "iana" + }, + "video/h265": { + source: "iana" + }, + "video/iso.segment": { + source: "iana", + extensions: ["m4s"] + }, + "video/jpeg": { + source: "iana", + extensions: ["jpgv"] + }, + "video/jpeg2000": { + source: "iana" + }, + "video/jpm": { + source: "apache", + extensions: ["jpm", "jpgm"] + }, + "video/jxsv": { + source: "iana" + }, + "video/mj2": { + source: "iana", + extensions: ["mj2", "mjp2"] + }, + "video/mp1s": { + source: "iana" + }, + "video/mp2p": { + source: "iana" + }, + "video/mp2t": { + source: "iana", + extensions: ["ts"] + }, + "video/mp4": { + source: "iana", + compressible: false, + extensions: ["mp4", "mp4v", "mpg4"] + }, + "video/mp4v-es": { + source: "iana" + }, + "video/mpeg": { + source: "iana", + compressible: false, + extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"] + }, + "video/mpeg4-generic": { + source: "iana" + }, + "video/mpv": { + source: "iana" + }, + "video/nv": { + source: "iana" + }, + "video/ogg": { + source: "iana", + compressible: false, + extensions: ["ogv"] + }, + "video/parityfec": { + source: "iana" + }, + "video/pointer": { + source: "iana" + }, + "video/quicktime": { + source: "iana", + compressible: false, + extensions: ["qt", "mov"] + }, + "video/raptorfec": { + source: "iana" + }, + "video/raw": { + source: "iana" + }, + "video/rtp-enc-aescm128": { + source: "iana" + }, + "video/rtploopback": { + source: "iana" + }, + "video/rtx": { + source: "iana" + }, + "video/scip": { + source: "iana" + }, + "video/smpte291": { + source: "iana" + }, + "video/smpte292m": { + source: "iana" + }, + "video/ulpfec": { + source: "iana" + }, + "video/vc1": { + source: "iana" + }, + "video/vc2": { + source: "iana" + }, + "video/vnd.cctv": { + source: "iana" + }, + "video/vnd.dece.hd": { + source: "iana", + extensions: ["uvh", "uvvh"] + }, + "video/vnd.dece.mobile": { + source: "iana", + extensions: ["uvm", "uvvm"] + }, + "video/vnd.dece.mp4": { + source: "iana" + }, + "video/vnd.dece.pd": { + source: "iana", + extensions: ["uvp", "uvvp"] + }, + "video/vnd.dece.sd": { + source: "iana", + extensions: ["uvs", "uvvs"] + }, + "video/vnd.dece.video": { + source: "iana", + extensions: ["uvv", "uvvv"] + }, + "video/vnd.directv.mpeg": { + source: "iana" + }, + "video/vnd.directv.mpeg-tts": { + source: "iana" + }, + "video/vnd.dlna.mpeg-tts": { + source: "iana" + }, + "video/vnd.dvb.file": { + source: "iana", + extensions: ["dvb"] + }, + "video/vnd.fvt": { + source: "iana", + extensions: ["fvt"] + }, + "video/vnd.hns.video": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.1dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-1010": { + source: "iana" + }, + "video/vnd.iptvforum.2dparityfec-2005": { + source: "iana" + }, + "video/vnd.iptvforum.ttsavc": { + source: "iana" + }, + "video/vnd.iptvforum.ttsmpeg2": { + source: "iana" + }, + "video/vnd.motorola.video": { + source: "iana" + }, + "video/vnd.motorola.videop": { + source: "iana" + }, + "video/vnd.mpegurl": { + source: "iana", + extensions: ["mxu", "m4u"] + }, + "video/vnd.ms-playready.media.pyv": { + source: "iana", + extensions: ["pyv"] + }, + "video/vnd.nokia.interleaved-multimedia": { + source: "iana" + }, + "video/vnd.nokia.mp4vr": { + source: "iana" + }, + "video/vnd.nokia.videovoip": { + source: "iana" + }, + "video/vnd.objectvideo": { + source: "iana" + }, + "video/vnd.radgamettools.bink": { + source: "iana" + }, + "video/vnd.radgamettools.smacker": { + source: "iana" + }, + "video/vnd.sealed.mpeg1": { + source: "iana" + }, + "video/vnd.sealed.mpeg4": { + source: "iana" + }, + "video/vnd.sealed.swf": { + source: "iana" + }, + "video/vnd.sealedmedia.softseal.mov": { + source: "iana" + }, + "video/vnd.uvvu.mp4": { + source: "iana", + extensions: ["uvu", "uvvu"] + }, + "video/vnd.vivo": { + source: "iana", + extensions: ["viv"] + }, + "video/vnd.youtube.yt": { + source: "iana" + }, + "video/vp8": { + source: "iana" + }, + "video/vp9": { + source: "iana" + }, + "video/webm": { + source: "apache", + compressible: false, + extensions: ["webm"] + }, + "video/x-f4v": { + source: "apache", + extensions: ["f4v"] + }, + "video/x-fli": { + source: "apache", + extensions: ["fli"] + }, + "video/x-flv": { + source: "apache", + compressible: false, + extensions: ["flv"] + }, + "video/x-m4v": { + source: "apache", + extensions: ["m4v"] + }, + "video/x-matroska": { + source: "apache", + compressible: false, + extensions: ["mkv", "mk3d", "mks"] + }, + "video/x-mng": { + source: "apache", + extensions: ["mng"] + }, + "video/x-ms-asf": { + source: "apache", + extensions: ["asf", "asx"] + }, + "video/x-ms-vob": { + source: "apache", + extensions: ["vob"] + }, + "video/x-ms-wm": { + source: "apache", + extensions: ["wm"] + }, + "video/x-ms-wmv": { + source: "apache", + compressible: false, + extensions: ["wmv"] + }, + "video/x-ms-wmx": { + source: "apache", + extensions: ["wmx"] + }, + "video/x-ms-wvx": { + source: "apache", + extensions: ["wvx"] + }, + "video/x-msvideo": { + source: "apache", + extensions: ["avi"] + }, + "video/x-sgi-movie": { + source: "apache", + extensions: ["movie"] + }, + "video/x-smv": { + source: "apache", + extensions: ["smv"] + }, + "x-conference/x-cooltalk": { + source: "apache", + extensions: ["ice"] + }, + "x-shader/x-fragment": { + compressible: true + }, + "x-shader/x-vertex": { + compressible: true + } + }; + } +}); + +// node_modules/multer/node_modules/mime-db/index.js +var require_mime_db2 = __commonJS({ + "node_modules/multer/node_modules/mime-db/index.js"(exports2, module2) { + module2.exports = require_db2(); + } +}); + +// node_modules/multer/node_modules/mime-types/index.js +var require_mime_types2 = __commonJS({ + "node_modules/multer/node_modules/mime-types/index.js"(exports2) { + "use strict"; + var db = require_mime_db2(); + var extname = require("path").extname; + var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/; + var TEXT_TYPE_REGEXP = /^text\//i; + exports2.charset = charset; + exports2.charsets = { lookup: charset }; + exports2.contentType = contentType; + exports2.extension = extension; + exports2.extensions = /* @__PURE__ */ Object.create(null); + exports2.lookup = lookup; + exports2.types = /* @__PURE__ */ Object.create(null); + populateMaps(exports2.extensions, exports2.types); + function charset(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var mime = match && db[match[1].toLowerCase()]; + if (mime && mime.charset) { + return mime.charset; + } + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return "UTF-8"; + } + return false; + } + __name(charset, "charset"); + function contentType(str) { + if (!str || typeof str !== "string") { + return false; + } + var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str; + if (!mime) { + return false; + } + if (mime.indexOf("charset") === -1) { + var charset2 = exports2.charset(mime); + if (charset2) mime += "; charset=" + charset2.toLowerCase(); + } + return mime; + } + __name(contentType, "contentType"); + function extension(type) { + if (!type || typeof type !== "string") { + return false; + } + var match = EXTRACT_TYPE_REGEXP.exec(type); + var exts = match && exports2.extensions[match[1].toLowerCase()]; + if (!exts || !exts.length) { + return false; + } + return exts[0]; + } + __name(extension, "extension"); + function lookup(path) { + if (!path || typeof path !== "string") { + return false; + } + var extension2 = extname("x." + path).toLowerCase().substr(1); + if (!extension2) { + return false; + } + return exports2.types[extension2] || false; + } + __name(lookup, "lookup"); + function populateMaps(extensions, types) { + var preference = ["nginx", "apache", void 0, "iana"]; + Object.keys(db).forEach(/* @__PURE__ */ __name(function forEachMimeType(type) { + var mime = db[type]; + var exts = mime.extensions; + if (!exts || !exts.length) { + return; + } + extensions[type] = exts; + for (var i = 0; i < exts.length; i++) { + var extension2 = exts[i]; + if (types[extension2]) { + var from = preference.indexOf(db[types[extension2]].source); + var to = preference.indexOf(mime.source); + if (types[extension2] !== "application/octet-stream" && (from > to || from === to && types[extension2].substr(0, 12) === "application/")) { + continue; + } + } + types[extension2] = type; + } + }, "forEachMimeType")); + } + __name(populateMaps, "populateMaps"); + } +}); + +// node_modules/multer/node_modules/type-is/index.js +var require_type_is2 = __commonJS({ + "node_modules/multer/node_modules/type-is/index.js"(exports2, module2) { + "use strict"; + var typer = require_media_typer2(); + var mime = require_mime_types2(); + module2.exports = typeofrequest; + module2.exports.is = typeis; + module2.exports.hasBody = hasbody; + module2.exports.normalize = normalize; + module2.exports.match = mimeMatch; + function typeis(value, types_) { + var i; + var types = types_; + var val = tryNormalizeType(value); + if (!val) { + return false; + } + if (types && !Array.isArray(types)) { + types = new Array(arguments.length - 1); + for (i = 0; i < types.length; i++) { + types[i] = arguments[i + 1]; + } + } + if (!types || !types.length) { + return val; + } + var type; + for (i = 0; i < types.length; i++) { + if (mimeMatch(normalize(type = types[i]), val)) { + return type[0] === "+" || type.indexOf("*") !== -1 ? val : type; + } + } + return false; + } + __name(typeis, "typeis"); + function hasbody(req) { + return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]); + } + __name(hasbody, "hasbody"); + function typeofrequest(req, types_) { + var types = types_; + if (!hasbody(req)) { + return null; + } + if (arguments.length > 2) { + types = new Array(arguments.length - 1); + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i + 1]; + } + } + var value = req.headers["content-type"]; + return typeis(value, types); + } + __name(typeofrequest, "typeofrequest"); + function normalize(type) { + if (typeof type !== "string") { + return false; + } + switch (type) { + case "urlencoded": + return "application/x-www-form-urlencoded"; + case "multipart": + return "multipart/*"; + } + if (type[0] === "+") { + return "*/*" + type; + } + return type.indexOf("/") === -1 ? mime.lookup(type) : type; + } + __name(normalize, "normalize"); + function mimeMatch(expected, actual) { + if (expected === false) { + return false; + } + var actualParts = actual.split("/"); + var expectedParts = expected.split("/"); + if (actualParts.length !== 2 || expectedParts.length !== 2) { + return false; + } + if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) { + return false; + } + if (expectedParts[1].substr(0, 2) === "*+") { + return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length); + } + if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) { + return false; + } + return true; + } + __name(mimeMatch, "mimeMatch"); + function normalizeType(value) { + var type = typer.parse(value); + type.parameters = void 0; + return typer.format(type); + } + __name(normalizeType, "normalizeType"); + function tryNormalizeType(value) { + if (!value) { + return null; + } + try { + return normalizeType(value); + } catch (err) { + return null; + } + } + __name(tryNormalizeType, "tryNormalizeType"); + } +}); + +// node_modules/busboy/lib/utils.js +var require_utils12 = __commonJS({ + "node_modules/busboy/lib/utils.js"(exports2, module2) { + "use strict"; + function parseContentType(str) { + if (str.length === 0) + return; + const params = /* @__PURE__ */ Object.create(null); + let i = 0; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (code !== 47 || i === 0) + return; + break; + } + } + if (i === str.length) + return; + const type = str.slice(0, i).toLowerCase(); + const subtypeStart = ++i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (i === subtypeStart) + return; + if (parseContentTypeParams(str, i, params) === void 0) + return; + break; + } + } + if (i === subtypeStart) + return; + const subtype = str.slice(subtypeStart, i).toLowerCase(); + return { type, subtype, params }; + } + __name(parseContentType, "parseContentType"); + function parseContentTypeParams(str, i, params) { + while (i < str.length) { + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32 && code !== 9) + break; + } + if (i === str.length) + break; + if (str.charCodeAt(i++) !== 59) + return; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32 && code !== 9) + break; + } + if (i === str.length) + return; + let name; + const nameStart = i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (code !== 61) + return; + break; + } + } + if (i === str.length) + return; + name = str.slice(nameStart, i); + ++i; + if (i === str.length) + return; + let value = ""; + let valueStart; + if (str.charCodeAt(i) === 34) { + valueStart = ++i; + let escaping = false; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code === 92) { + if (escaping) { + valueStart = i; + escaping = false; + } else { + value += str.slice(valueStart, i); + escaping = true; + } + continue; + } + if (code === 34) { + if (escaping) { + valueStart = i; + escaping = false; + continue; + } + value += str.slice(valueStart, i); + break; + } + if (escaping) { + valueStart = i - 1; + escaping = false; + } + if (QDTEXT[code] !== 1) + return; + } + if (i === str.length) + return; + ++i; + } else { + valueStart = i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (i === valueStart) + return; + break; + } + } + value = str.slice(valueStart, i); + } + name = name.toLowerCase(); + if (params[name] === void 0) + params[name] = value; + } + return params; + } + __name(parseContentTypeParams, "parseContentTypeParams"); + function parseDisposition(str, defDecoder) { + if (str.length === 0) + return; + const params = /* @__PURE__ */ Object.create(null); + let i = 0; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (parseDispositionParams(str, i, params, defDecoder) === void 0) + return; + break; + } + } + const type = str.slice(0, i).toLowerCase(); + return { type, params }; + } + __name(parseDisposition, "parseDisposition"); + function parseDispositionParams(str, i, params, defDecoder) { + while (i < str.length) { + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32 && code !== 9) + break; + } + if (i === str.length) + break; + if (str.charCodeAt(i++) !== 59) + return; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code !== 32 && code !== 9) + break; + } + if (i === str.length) + return; + let name; + const nameStart = i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (code === 61) + break; + return; + } + } + if (i === str.length) + return; + let value = ""; + let valueStart; + let charset; + name = str.slice(nameStart, i); + if (name.charCodeAt(name.length - 1) === 42) { + const charsetStart = ++i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (CHARSET[code] !== 1) { + if (code !== 39) + return; + break; + } + } + if (i === str.length) + return; + charset = str.slice(charsetStart, i); + ++i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code === 39) + break; + } + if (i === str.length) + return; + ++i; + if (i === str.length) + return; + valueStart = i; + let encode = 0; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (EXTENDED_VALUE[code] !== 1) { + if (code === 37) { + let hexUpper; + let hexLower; + if (i + 2 < str.length && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1 && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) { + const byteVal = (hexUpper << 4) + hexLower; + value += str.slice(valueStart, i); + value += String.fromCharCode(byteVal); + i += 2; + valueStart = i + 1; + if (byteVal >= 128) + encode = 2; + else if (encode === 0) + encode = 1; + continue; + } + return; + } + break; + } + } + value += str.slice(valueStart, i); + value = convertToUTF8(value, charset, encode); + if (value === void 0) + return; + } else { + ++i; + if (i === str.length) + return; + if (str.charCodeAt(i) === 34) { + valueStart = ++i; + let escaping = false; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (code === 92) { + if (escaping) { + valueStart = i; + escaping = false; + } else { + value += str.slice(valueStart, i); + escaping = true; + } + continue; + } + if (code === 34) { + if (escaping) { + valueStart = i; + escaping = false; + continue; + } + value += str.slice(valueStart, i); + break; + } + if (escaping) { + valueStart = i - 1; + escaping = false; + } + if (QDTEXT[code] !== 1) + return; + } + if (i === str.length) + return; + ++i; + } else { + valueStart = i; + for (; i < str.length; ++i) { + const code = str.charCodeAt(i); + if (TOKEN[code] !== 1) { + if (i === valueStart) + return; + break; + } + } + value = str.slice(valueStart, i); + } + value = defDecoder(value, 2); + if (value === void 0) + return; + } + name = name.toLowerCase(); + if (params[name] === void 0) + params[name] = value; + } + return params; + } + __name(parseDispositionParams, "parseDispositionParams"); + function getDecoder(charset) { + let lc; + while (true) { + switch (charset) { + case "utf-8": + case "utf8": + return decoders.utf8; + case "latin1": + case "ascii": + // TODO: Make these a separate, strict decoder? + case "us-ascii": + case "iso-8859-1": + case "iso8859-1": + case "iso88591": + case "iso_8859-1": + case "windows-1252": + case "iso_8859-1:1987": + case "cp1252": + case "x-cp1252": + return decoders.latin1; + case "utf16le": + case "utf-16le": + case "ucs2": + case "ucs-2": + return decoders.utf16le; + case "base64": + return decoders.base64; + default: + if (lc === void 0) { + lc = true; + charset = charset.toLowerCase(); + continue; + } + return decoders.other.bind(charset); + } + } + } + __name(getDecoder, "getDecoder"); + var decoders = { + utf8: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") { + if (hint < 2) + return data; + data = Buffer.from(data, "latin1"); + } + return data.utf8Slice(0, data.length); + }, "utf8"), + latin1: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") + return data; + return data.latin1Slice(0, data.length); + }, "latin1"), + utf16le: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") + data = Buffer.from(data, "latin1"); + return data.ucs2Slice(0, data.length); + }, "utf16le"), + base64: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") + data = Buffer.from(data, "latin1"); + return data.base64Slice(0, data.length); + }, "base64"), + other: /* @__PURE__ */ __name((data, hint) => { + if (data.length === 0) + return ""; + if (typeof data === "string") + data = Buffer.from(data, "latin1"); + try { + const decoder = new TextDecoder(exports2); + return decoder.decode(data); + } catch { + } + }, "other") + }; + function convertToUTF8(data, charset, hint) { + const decode = getDecoder(charset); + if (decode) + return decode(data, hint); + } + __name(convertToUTF8, "convertToUTF8"); + function basename(path) { + if (typeof path !== "string") + return ""; + for (let i = path.length - 1; i >= 0; --i) { + switch (path.charCodeAt(i)) { + case 47: + // '/' + case 92: + path = path.slice(i + 1); + return path === ".." || path === "." ? "" : path; + } + } + return path === ".." || path === "." ? "" : path; + } + __name(basename, "basename"); + var TOKEN = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + var QDTEXT = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ]; + var CHARSET = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + var EXTENDED_VALUE = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + var HEX_VALUES = [ + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 10, + 11, + 12, + 13, + 14, + 15, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 10, + 11, + 12, + 13, + 14, + 15, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1 + ]; + module2.exports = { + basename, + convertToUTF8, + getDecoder, + parseContentType, + parseDisposition + }; + } +}); + +// node_modules/streamsearch/lib/sbmh.js +var require_sbmh = __commonJS({ + "node_modules/streamsearch/lib/sbmh.js"(exports2, module2) { + "use strict"; + function memcmp(buf1, pos1, buf2, pos2, num) { + for (let i = 0; i < num; ++i) { + if (buf1[pos1 + i] !== buf2[pos2 + i]) + return false; + } + return true; + } + __name(memcmp, "memcmp"); + var SBMH = class { + static { + __name(this, "SBMH"); + } + constructor(needle, cb) { + if (typeof cb !== "function") + throw new Error("Missing match callback"); + if (typeof needle === "string") + needle = Buffer.from(needle); + else if (!Buffer.isBuffer(needle)) + throw new Error(`Expected Buffer for needle, got ${typeof needle}`); + const needleLen = needle.length; + this.maxMatches = Infinity; + this.matches = 0; + this._cb = cb; + this._lookbehindSize = 0; + this._needle = needle; + this._bufPos = 0; + this._lookbehind = Buffer.allocUnsafe(needleLen); + this._occ = [ + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen, + needleLen + ]; + if (needleLen > 1) { + for (let i = 0; i < needleLen - 1; ++i) + this._occ[needle[i]] = needleLen - 1 - i; + } + } + reset() { + this.matches = 0; + this._lookbehindSize = 0; + this._bufPos = 0; + } + push(chunk, pos) { + let result; + if (!Buffer.isBuffer(chunk)) + chunk = Buffer.from(chunk, "latin1"); + const chunkLen = chunk.length; + this._bufPos = pos || 0; + while (result !== chunkLen && this.matches < this.maxMatches) + result = feed(this, chunk); + return result; + } + destroy() { + const lbSize = this._lookbehindSize; + if (lbSize) + this._cb(false, this._lookbehind, 0, lbSize, false); + this.reset(); + } + }; + function feed(self2, data) { + const len = data.length; + const needle = self2._needle; + const needleLen = needle.length; + let pos = -self2._lookbehindSize; + const lastNeedleCharPos = needleLen - 1; + const lastNeedleChar = needle[lastNeedleCharPos]; + const end = len - needleLen; + const occ = self2._occ; + const lookbehind = self2._lookbehind; + if (pos < 0) { + while (pos < 0 && pos <= end) { + const nextPos = pos + lastNeedleCharPos; + const ch = nextPos < 0 ? lookbehind[self2._lookbehindSize + nextPos] : data[nextPos]; + if (ch === lastNeedleChar && matchNeedle(self2, data, pos, lastNeedleCharPos)) { + self2._lookbehindSize = 0; + ++self2.matches; + if (pos > -self2._lookbehindSize) + self2._cb(true, lookbehind, 0, self2._lookbehindSize + pos, false); + else + self2._cb(true, void 0, 0, 0, true); + return self2._bufPos = pos + needleLen; + } + pos += occ[ch]; + } + while (pos < 0 && !matchNeedle(self2, data, pos, len - pos)) + ++pos; + if (pos < 0) { + const bytesToCutOff = self2._lookbehindSize + pos; + if (bytesToCutOff > 0) { + self2._cb(false, lookbehind, 0, bytesToCutOff, false); + } + self2._lookbehindSize -= bytesToCutOff; + lookbehind.copy(lookbehind, 0, bytesToCutOff, self2._lookbehindSize); + lookbehind.set(data, self2._lookbehindSize); + self2._lookbehindSize += len; + self2._bufPos = len; + return len; + } + self2._cb(false, lookbehind, 0, self2._lookbehindSize, false); + self2._lookbehindSize = 0; + } + pos += self2._bufPos; + const firstNeedleChar = needle[0]; + while (pos <= end) { + const ch = data[pos + lastNeedleCharPos]; + if (ch === lastNeedleChar && data[pos] === firstNeedleChar && memcmp(needle, 0, data, pos, lastNeedleCharPos)) { + ++self2.matches; + if (pos > 0) + self2._cb(true, data, self2._bufPos, pos, true); + else + self2._cb(true, void 0, 0, 0, true); + return self2._bufPos = pos + needleLen; + } + pos += occ[ch]; + } + while (pos < len) { + if (data[pos] !== firstNeedleChar || !memcmp(data, pos, needle, 0, len - pos)) { + ++pos; + continue; + } + data.copy(lookbehind, 0, pos, len); + self2._lookbehindSize = len - pos; + break; + } + if (pos > 0) + self2._cb(false, data, self2._bufPos, pos < len ? pos : len, true); + self2._bufPos = len; + return len; + } + __name(feed, "feed"); + function matchNeedle(self2, data, pos, len) { + const lb = self2._lookbehind; + const lbSize = self2._lookbehindSize; + const needle = self2._needle; + for (let i = 0; i < len; ++i, ++pos) { + const ch = pos < 0 ? lb[lbSize + pos] : data[pos]; + if (ch !== needle[i]) + return false; + } + return true; + } + __name(matchNeedle, "matchNeedle"); + module2.exports = SBMH; + } +}); + +// node_modules/busboy/lib/types/multipart.js +var require_multipart = __commonJS({ + "node_modules/busboy/lib/types/multipart.js"(exports2, module2) { + "use strict"; + var { Readable, Writable } = require("stream"); + var StreamSearch = require_sbmh(); + var { + basename, + convertToUTF8, + getDecoder, + parseContentType, + parseDisposition + } = require_utils12(); + var BUF_CRLF = Buffer.from("\r\n"); + var BUF_CR = Buffer.from("\r"); + var BUF_DASH = Buffer.from("-"); + function noop() { + } + __name(noop, "noop"); + var MAX_HEADER_PAIRS = 2e3; + var MAX_HEADER_SIZE = 16 * 1024; + var HPARSER_NAME = 0; + var HPARSER_PRE_OWS = 1; + var HPARSER_VALUE = 2; + var HeaderParser = class { + static { + __name(this, "HeaderParser"); + } + constructor(cb) { + this.header = /* @__PURE__ */ Object.create(null); + this.pairCount = 0; + this.byteCount = 0; + this.state = HPARSER_NAME; + this.name = ""; + this.value = ""; + this.crlf = 0; + this.cb = cb; + } + reset() { + this.header = /* @__PURE__ */ Object.create(null); + this.pairCount = 0; + this.byteCount = 0; + this.state = HPARSER_NAME; + this.name = ""; + this.value = ""; + this.crlf = 0; + } + push(chunk, pos, end) { + let start = pos; + while (pos < end) { + switch (this.state) { + case HPARSER_NAME: { + let done = false; + for (; pos < end; ++pos) { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (TOKEN[code] !== 1) { + if (code !== 58) + return -1; + this.name += chunk.latin1Slice(start, pos); + if (this.name.length === 0) + return -1; + ++pos; + done = true; + this.state = HPARSER_PRE_OWS; + break; + } + } + if (!done) { + this.name += chunk.latin1Slice(start, pos); + break; + } + } + case HPARSER_PRE_OWS: { + let done = false; + for (; pos < end; ++pos) { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (code !== 32 && code !== 9) { + start = pos; + done = true; + this.state = HPARSER_VALUE; + break; + } + } + if (!done) + break; + } + case HPARSER_VALUE: + switch (this.crlf) { + case 0: + for (; pos < end; ++pos) { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (FIELD_VCHAR[code] !== 1) { + if (code !== 13) + return -1; + ++this.crlf; + break; + } + } + this.value += chunk.latin1Slice(start, pos++); + break; + case 1: + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + if (chunk[pos++] !== 10) + return -1; + ++this.crlf; + break; + case 2: { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + const code = chunk[pos]; + if (code === 32 || code === 9) { + start = pos; + this.crlf = 0; + } else { + if (++this.pairCount < MAX_HEADER_PAIRS) { + this.name = this.name.toLowerCase(); + if (this.header[this.name] === void 0) + this.header[this.name] = [this.value]; + else + this.header[this.name].push(this.value); + } + if (code === 13) { + ++this.crlf; + ++pos; + } else { + start = pos; + this.crlf = 0; + this.state = HPARSER_NAME; + this.name = ""; + this.value = ""; + } + } + break; + } + case 3: { + if (this.byteCount === MAX_HEADER_SIZE) + return -1; + ++this.byteCount; + if (chunk[pos++] !== 10) + return -1; + const header = this.header; + this.reset(); + this.cb(header); + return pos; + } + } + break; + } + } + return pos; + } + }; + var FileStream = class extends Readable { + static { + __name(this, "FileStream"); + } + constructor(opts, owner) { + super(opts); + this.truncated = false; + this._readcb = null; + this.once("end", () => { + this._read(); + if (--owner._fileEndsLeft === 0 && owner._finalcb) { + const cb = owner._finalcb; + owner._finalcb = null; + process.nextTick(cb); + } + }); + } + _read(n) { + const cb = this._readcb; + if (cb) { + this._readcb = null; + cb(); + } + } + }; + var ignoreData = { + push: /* @__PURE__ */ __name((chunk, pos) => { + }, "push"), + destroy: /* @__PURE__ */ __name(() => { + }, "destroy") + }; + function callAndUnsetCb(self2, err) { + const cb = self2._writecb; + self2._writecb = null; + if (err) + self2.destroy(err); + else if (cb) + cb(); + } + __name(callAndUnsetCb, "callAndUnsetCb"); + function nullDecoder(val, hint) { + return val; + } + __name(nullDecoder, "nullDecoder"); + var Multipart = class extends Writable { + static { + __name(this, "Multipart"); + } + constructor(cfg) { + const streamOpts = { + autoDestroy: true, + emitClose: true, + highWaterMark: typeof cfg.highWaterMark === "number" ? cfg.highWaterMark : void 0 + }; + super(streamOpts); + if (!cfg.conType.params || typeof cfg.conType.params.boundary !== "string") + throw new Error("Multipart: Boundary not found"); + const boundary = cfg.conType.params.boundary; + const paramDecoder = typeof cfg.defParamCharset === "string" && cfg.defParamCharset ? getDecoder(cfg.defParamCharset) : nullDecoder; + const defCharset = cfg.defCharset || "utf8"; + const preservePath = cfg.preservePath; + const fileOpts = { + autoDestroy: true, + emitClose: true, + highWaterMark: typeof cfg.fileHwm === "number" ? cfg.fileHwm : void 0 + }; + const limits = cfg.limits; + const fieldSizeLimit = limits && typeof limits.fieldSize === "number" ? limits.fieldSize : 1 * 1024 * 1024; + const fileSizeLimit = limits && typeof limits.fileSize === "number" ? limits.fileSize : Infinity; + const filesLimit = limits && typeof limits.files === "number" ? limits.files : Infinity; + const fieldsLimit = limits && typeof limits.fields === "number" ? limits.fields : Infinity; + const partsLimit = limits && typeof limits.parts === "number" ? limits.parts : Infinity; + let parts = -1; + let fields = 0; + let files = 0; + let skipPart = false; + this._fileEndsLeft = 0; + this._fileStream = void 0; + this._complete = false; + let fileSize = 0; + let field; + let fieldSize = 0; + let partCharset; + let partEncoding; + let partType; + let partName; + let partTruncated = false; + let hitFilesLimit = false; + let hitFieldsLimit = false; + this._hparser = null; + const hparser = new HeaderParser((header) => { + this._hparser = null; + skipPart = false; + partType = "text/plain"; + partCharset = defCharset; + partEncoding = "7bit"; + partName = void 0; + partTruncated = false; + let filename; + if (!header["content-disposition"]) { + skipPart = true; + return; + } + const disp = parseDisposition( + header["content-disposition"][0], + paramDecoder + ); + if (!disp || disp.type !== "form-data") { + skipPart = true; + return; + } + if (disp.params) { + if (disp.params.name) + partName = disp.params.name; + if (disp.params["filename*"]) + filename = disp.params["filename*"]; + else if (disp.params.filename) + filename = disp.params.filename; + if (filename !== void 0 && !preservePath) + filename = basename(filename); + } + if (header["content-type"]) { + const conType = parseContentType(header["content-type"][0]); + if (conType) { + partType = `${conType.type}/${conType.subtype}`; + if (conType.params && typeof conType.params.charset === "string") + partCharset = conType.params.charset.toLowerCase(); + } + } + if (header["content-transfer-encoding"]) + partEncoding = header["content-transfer-encoding"][0].toLowerCase(); + if (partType === "application/octet-stream" || filename !== void 0) { + if (files === filesLimit) { + if (!hitFilesLimit) { + hitFilesLimit = true; + this.emit("filesLimit"); + } + skipPart = true; + return; + } + ++files; + if (this.listenerCount("file") === 0) { + skipPart = true; + return; + } + fileSize = 0; + this._fileStream = new FileStream(fileOpts, this); + ++this._fileEndsLeft; + this.emit( + "file", + partName, + this._fileStream, + { + filename, + encoding: partEncoding, + mimeType: partType + } + ); + } else { + if (fields === fieldsLimit) { + if (!hitFieldsLimit) { + hitFieldsLimit = true; + this.emit("fieldsLimit"); + } + skipPart = true; + return; + } + ++fields; + if (this.listenerCount("field") === 0) { + skipPart = true; + return; + } + field = []; + fieldSize = 0; + } + }); + let matchPostBoundary = 0; + const ssCb = /* @__PURE__ */ __name((isMatch, data, start, end, isDataSafe) => { + retrydata: + while (data) { + if (this._hparser !== null) { + const ret = this._hparser.push(data, start, end); + if (ret === -1) { + this._hparser = null; + hparser.reset(); + this.emit("error", new Error("Malformed part header")); + break; + } + start = ret; + } + if (start === end) + break; + if (matchPostBoundary !== 0) { + if (matchPostBoundary === 1) { + switch (data[start]) { + case 45: + matchPostBoundary = 2; + ++start; + break; + case 13: + matchPostBoundary = 3; + ++start; + break; + default: + matchPostBoundary = 0; + } + if (start === end) + return; + } + if (matchPostBoundary === 2) { + matchPostBoundary = 0; + if (data[start] === 45) { + this._complete = true; + this._bparser = ignoreData; + return; + } + const writecb = this._writecb; + this._writecb = noop; + ssCb(false, BUF_DASH, 0, 1, false); + this._writecb = writecb; + } else if (matchPostBoundary === 3) { + matchPostBoundary = 0; + if (data[start] === 10) { + ++start; + if (parts >= partsLimit) + break; + this._hparser = hparser; + if (start === end) + break; + continue retrydata; + } else { + const writecb = this._writecb; + this._writecb = noop; + ssCb(false, BUF_CR, 0, 1, false); + this._writecb = writecb; + } + } + } + if (!skipPart) { + if (this._fileStream) { + let chunk; + const actualLen = Math.min(end - start, fileSizeLimit - fileSize); + if (!isDataSafe) { + chunk = Buffer.allocUnsafe(actualLen); + data.copy(chunk, 0, start, start + actualLen); + } else { + chunk = data.slice(start, start + actualLen); + } + fileSize += chunk.length; + if (fileSize === fileSizeLimit) { + if (chunk.length > 0) + this._fileStream.push(chunk); + this._fileStream.emit("limit"); + this._fileStream.truncated = true; + skipPart = true; + } else if (!this._fileStream.push(chunk)) { + if (this._writecb) + this._fileStream._readcb = this._writecb; + this._writecb = null; + } + } else if (field !== void 0) { + let chunk; + const actualLen = Math.min( + end - start, + fieldSizeLimit - fieldSize + ); + if (!isDataSafe) { + chunk = Buffer.allocUnsafe(actualLen); + data.copy(chunk, 0, start, start + actualLen); + } else { + chunk = data.slice(start, start + actualLen); + } + fieldSize += actualLen; + field.push(chunk); + if (fieldSize === fieldSizeLimit) { + skipPart = true; + partTruncated = true; + } + } + } + break; + } + if (isMatch) { + matchPostBoundary = 1; + if (this._fileStream) { + this._fileStream.push(null); + this._fileStream = null; + } else if (field !== void 0) { + let data2; + switch (field.length) { + case 0: + data2 = ""; + break; + case 1: + data2 = convertToUTF8(field[0], partCharset, 0); + break; + default: + data2 = convertToUTF8( + Buffer.concat(field, fieldSize), + partCharset, + 0 + ); + } + field = void 0; + fieldSize = 0; + this.emit( + "field", + partName, + data2, + { + nameTruncated: false, + valueTruncated: partTruncated, + encoding: partEncoding, + mimeType: partType + } + ); + } + if (++parts === partsLimit) + this.emit("partsLimit"); + } + }, "ssCb"); + this._bparser = new StreamSearch(`\r +--${boundary}`, ssCb); + this._writecb = null; + this._finalcb = null; + this.write(BUF_CRLF); + } + static detect(conType) { + return conType.type === "multipart" && conType.subtype === "form-data"; + } + _write(chunk, enc, cb) { + this._writecb = cb; + this._bparser.push(chunk, 0); + if (this._writecb) + callAndUnsetCb(this); + } + _destroy(err, cb) { + this._hparser = null; + this._bparser = ignoreData; + if (!err) + err = checkEndState(this); + const fileStream = this._fileStream; + if (fileStream) { + this._fileStream = null; + fileStream.destroy(err); + } + cb(err); + } + _final(cb) { + this._bparser.destroy(); + if (!this._complete) + return cb(new Error("Unexpected end of form")); + if (this._fileEndsLeft) + this._finalcb = finalcb.bind(null, this, cb); + else + finalcb(this, cb); + } + }; + function finalcb(self2, cb, err) { + if (err) + return cb(err); + err = checkEndState(self2); + cb(err); + } + __name(finalcb, "finalcb"); + function checkEndState(self2) { + if (self2._hparser) + return new Error("Malformed part header"); + const fileStream = self2._fileStream; + if (fileStream) { + self2._fileStream = null; + fileStream.destroy(new Error("Unexpected end of file")); + } + if (!self2._complete) + return new Error("Unexpected end of form"); + } + __name(checkEndState, "checkEndState"); + var TOKEN = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]; + var FIELD_VCHAR = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ]; + module2.exports = Multipart; + } +}); + +// node_modules/busboy/lib/types/urlencoded.js +var require_urlencoded2 = __commonJS({ + "node_modules/busboy/lib/types/urlencoded.js"(exports2, module2) { + "use strict"; + var { Writable } = require("stream"); + var { getDecoder } = require_utils12(); + var URLEncoded = class extends Writable { + static { + __name(this, "URLEncoded"); + } + constructor(cfg) { + const streamOpts = { + autoDestroy: true, + emitClose: true, + highWaterMark: typeof cfg.highWaterMark === "number" ? cfg.highWaterMark : void 0 + }; + super(streamOpts); + let charset = cfg.defCharset || "utf8"; + if (cfg.conType.params && typeof cfg.conType.params.charset === "string") + charset = cfg.conType.params.charset; + this.charset = charset; + const limits = cfg.limits; + this.fieldSizeLimit = limits && typeof limits.fieldSize === "number" ? limits.fieldSize : 1 * 1024 * 1024; + this.fieldsLimit = limits && typeof limits.fields === "number" ? limits.fields : Infinity; + this.fieldNameSizeLimit = limits && typeof limits.fieldNameSize === "number" ? limits.fieldNameSize : 100; + this._inKey = true; + this._keyTrunc = false; + this._valTrunc = false; + this._bytesKey = 0; + this._bytesVal = 0; + this._fields = 0; + this._key = ""; + this._val = ""; + this._byte = -2; + this._lastPos = 0; + this._encode = 0; + this._decoder = getDecoder(charset); + } + static detect(conType) { + return conType.type === "application" && conType.subtype === "x-www-form-urlencoded"; + } + _write(chunk, enc, cb) { + if (this._fields >= this.fieldsLimit) + return cb(); + let i = 0; + const len = chunk.length; + this._lastPos = 0; + if (this._byte !== -2) { + i = readPctEnc(this, chunk, i, len); + if (i === -1) + return cb(new Error("Malformed urlencoded form")); + if (i >= len) + return cb(); + if (this._inKey) + ++this._bytesKey; + else + ++this._bytesVal; + } + main: + while (i < len) { + if (this._inKey) { + i = skipKeyBytes(this, chunk, i, len); + while (i < len) { + switch (chunk[i]) { + case 61: + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._lastPos = ++i; + this._key = this._decoder(this._key, this._encode); + this._encode = 0; + this._inKey = false; + continue main; + case 38: + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._lastPos = ++i; + this._key = this._decoder(this._key, this._encode); + this._encode = 0; + if (this._bytesKey > 0) { + this.emit( + "field", + this._key, + "", + { + nameTruncated: this._keyTrunc, + valueTruncated: false, + encoding: this.charset, + mimeType: "text/plain" + } + ); + } + this._key = ""; + this._val = ""; + this._keyTrunc = false; + this._valTrunc = false; + this._bytesKey = 0; + this._bytesVal = 0; + if (++this._fields >= this.fieldsLimit) { + this.emit("fieldsLimit"); + return cb(); + } + continue; + case 43: + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._key += " "; + this._lastPos = i + 1; + break; + case 37: + if (this._encode === 0) + this._encode = 1; + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + this._lastPos = i + 1; + this._byte = -1; + i = readPctEnc(this, chunk, i + 1, len); + if (i === -1) + return cb(new Error("Malformed urlencoded form")); + if (i >= len) + return cb(); + ++this._bytesKey; + i = skipKeyBytes(this, chunk, i, len); + continue; + } + ++i; + ++this._bytesKey; + i = skipKeyBytes(this, chunk, i, len); + } + if (this._lastPos < i) + this._key += chunk.latin1Slice(this._lastPos, i); + } else { + i = skipValBytes(this, chunk, i, len); + while (i < len) { + switch (chunk[i]) { + case 38: + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + this._lastPos = ++i; + this._inKey = true; + this._val = this._decoder(this._val, this._encode); + this._encode = 0; + if (this._bytesKey > 0 || this._bytesVal > 0) { + this.emit( + "field", + this._key, + this._val, + { + nameTruncated: this._keyTrunc, + valueTruncated: this._valTrunc, + encoding: this.charset, + mimeType: "text/plain" + } + ); + } + this._key = ""; + this._val = ""; + this._keyTrunc = false; + this._valTrunc = false; + this._bytesKey = 0; + this._bytesVal = 0; + if (++this._fields >= this.fieldsLimit) { + this.emit("fieldsLimit"); + return cb(); + } + continue main; + case 43: + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + this._val += " "; + this._lastPos = i + 1; + break; + case 37: + if (this._encode === 0) + this._encode = 1; + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + this._lastPos = i + 1; + this._byte = -1; + i = readPctEnc(this, chunk, i + 1, len); + if (i === -1) + return cb(new Error("Malformed urlencoded form")); + if (i >= len) + return cb(); + ++this._bytesVal; + i = skipValBytes(this, chunk, i, len); + continue; + } + ++i; + ++this._bytesVal; + i = skipValBytes(this, chunk, i, len); + } + if (this._lastPos < i) + this._val += chunk.latin1Slice(this._lastPos, i); + } + } + cb(); + } + _final(cb) { + if (this._byte !== -2) + return cb(new Error("Malformed urlencoded form")); + if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) { + if (this._inKey) + this._key = this._decoder(this._key, this._encode); + else + this._val = this._decoder(this._val, this._encode); + this.emit( + "field", + this._key, + this._val, + { + nameTruncated: this._keyTrunc, + valueTruncated: this._valTrunc, + encoding: this.charset, + mimeType: "text/plain" + } + ); + } + cb(); + } + }; + function readPctEnc(self2, chunk, pos, len) { + if (pos >= len) + return len; + if (self2._byte === -1) { + const hexUpper = HEX_VALUES[chunk[pos++]]; + if (hexUpper === -1) + return -1; + if (hexUpper >= 8) + self2._encode = 2; + if (pos < len) { + const hexLower = HEX_VALUES[chunk[pos++]]; + if (hexLower === -1) + return -1; + if (self2._inKey) + self2._key += String.fromCharCode((hexUpper << 4) + hexLower); + else + self2._val += String.fromCharCode((hexUpper << 4) + hexLower); + self2._byte = -2; + self2._lastPos = pos; + } else { + self2._byte = hexUpper; + } + } else { + const hexLower = HEX_VALUES[chunk[pos++]]; + if (hexLower === -1) + return -1; + if (self2._inKey) + self2._key += String.fromCharCode((self2._byte << 4) + hexLower); + else + self2._val += String.fromCharCode((self2._byte << 4) + hexLower); + self2._byte = -2; + self2._lastPos = pos; + } + return pos; + } + __name(readPctEnc, "readPctEnc"); + function skipKeyBytes(self2, chunk, pos, len) { + if (self2._bytesKey > self2.fieldNameSizeLimit) { + if (!self2._keyTrunc) { + if (self2._lastPos < pos) + self2._key += chunk.latin1Slice(self2._lastPos, pos - 1); + } + self2._keyTrunc = true; + for (; pos < len; ++pos) { + const code = chunk[pos]; + if (code === 61 || code === 38) + break; + ++self2._bytesKey; + } + self2._lastPos = pos; + } + return pos; + } + __name(skipKeyBytes, "skipKeyBytes"); + function skipValBytes(self2, chunk, pos, len) { + if (self2._bytesVal > self2.fieldSizeLimit) { + if (!self2._valTrunc) { + if (self2._lastPos < pos) + self2._val += chunk.latin1Slice(self2._lastPos, pos - 1); + } + self2._valTrunc = true; + for (; pos < len; ++pos) { + if (chunk[pos] === 38) + break; + ++self2._bytesVal; + } + self2._lastPos = pos; + } + return pos; + } + __name(skipValBytes, "skipValBytes"); + var HEX_VALUES = [ + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 10, + 11, + 12, + 13, + 14, + 15, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 10, + 11, + 12, + 13, + 14, + 15, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1 + ]; + module2.exports = URLEncoded; + } +}); + +// node_modules/busboy/lib/index.js +var require_lib5 = __commonJS({ + "node_modules/busboy/lib/index.js"(exports2, module2) { + "use strict"; + var { parseContentType } = require_utils12(); + function getInstance(cfg) { + const headers = cfg.headers; + const conType = parseContentType(headers["content-type"]); + if (!conType) + throw new Error("Malformed content type"); + for (const type of TYPES) { + const matched = type.detect(conType); + if (!matched) + continue; + const instanceCfg = { + limits: cfg.limits, + headers, + conType, + highWaterMark: void 0, + fileHwm: void 0, + defCharset: void 0, + defParamCharset: void 0, + preservePath: false + }; + if (cfg.highWaterMark) + instanceCfg.highWaterMark = cfg.highWaterMark; + if (cfg.fileHwm) + instanceCfg.fileHwm = cfg.fileHwm; + instanceCfg.defCharset = cfg.defCharset; + instanceCfg.defParamCharset = cfg.defParamCharset; + instanceCfg.preservePath = cfg.preservePath; + return new type(instanceCfg); + } + throw new Error(`Unsupported content type: ${headers["content-type"]}`); + } + __name(getInstance, "getInstance"); + var TYPES = [ + require_multipart(), + require_urlencoded2() + ].filter(function(typemod) { + return typeof typemod.detect === "function"; + }); + module2.exports = (cfg) => { + if (typeof cfg !== "object" || cfg === null) + cfg = {}; + if (typeof cfg.headers !== "object" || cfg.headers === null || typeof cfg.headers["content-type"] !== "string") { + throw new Error("Missing Content-Type"); + } + return getInstance(cfg); + }; + } +}); + +// node_modules/append-field/lib/parse-path.js +var require_parse_path = __commonJS({ + "node_modules/append-field/lib/parse-path.js"(exports2, module2) { + var reFirstKey = /^[^\[]*/; + var reDigitPath = /^\[(\d+)\]/; + var reNormalPath = /^\[([^\]]+)\]/; + function parsePath(key) { + function failure() { + return [{ type: "object", key, last: true }]; + } + __name(failure, "failure"); + var firstKey = reFirstKey.exec(key)[0]; + if (!firstKey) return failure(); + var len = key.length; + var pos = firstKey.length; + var tail = { type: "object", key: firstKey }; + var steps = [tail]; + while (pos < len) { + var m; + if (key[pos] === "[" && key[pos + 1] === "]") { + pos += 2; + tail.append = true; + if (pos !== len) return failure(); + continue; + } + m = reDigitPath.exec(key.substring(pos)); + if (m !== null) { + pos += m[0].length; + tail.nextType = "array"; + tail = { type: "array", key: parseInt(m[1], 10) }; + steps.push(tail); + continue; + } + m = reNormalPath.exec(key.substring(pos)); + if (m !== null) { + pos += m[0].length; + tail.nextType = "object"; + tail = { type: "object", key: m[1] }; + steps.push(tail); + continue; + } + return failure(); + } + tail.last = true; + return steps; + } + __name(parsePath, "parsePath"); + module2.exports = parsePath; + } +}); + +// node_modules/append-field/lib/set-value.js +var require_set_value = __commonJS({ + "node_modules/append-field/lib/set-value.js"(exports2, module2) { + function valueType(value) { + if (value === void 0) return "undefined"; + if (Array.isArray(value)) return "array"; + if (typeof value === "object") return "object"; + return "scalar"; + } + __name(valueType, "valueType"); + function setLastValue(context, step, currentValue, entryValue) { + switch (valueType(currentValue)) { + case "undefined": + if (step.append) { + context[step.key] = [entryValue]; + } else { + context[step.key] = entryValue; + } + break; + case "array": + context[step.key].push(entryValue); + break; + case "object": + return setLastValue(currentValue, { type: "object", key: "", last: true }, currentValue[""], entryValue); + case "scalar": + context[step.key] = [context[step.key], entryValue]; + break; + } + return context; + } + __name(setLastValue, "setLastValue"); + function setValue(context, step, currentValue, entryValue) { + if (step.last) return setLastValue(context, step, currentValue, entryValue); + var obj; + switch (valueType(currentValue)) { + case "undefined": + if (step.nextType === "array") { + context[step.key] = []; + } else { + context[step.key] = /* @__PURE__ */ Object.create(null); + } + return context[step.key]; + case "object": + return context[step.key]; + case "array": + if (step.nextType === "array") { + return currentValue; + } + obj = /* @__PURE__ */ Object.create(null); + context[step.key] = obj; + currentValue.forEach(function(item, i) { + if (item !== void 0) obj["" + i] = item; + }); + return obj; + case "scalar": + obj = /* @__PURE__ */ Object.create(null); + obj[""] = currentValue; + context[step.key] = obj; + return obj; + } + } + __name(setValue, "setValue"); + module2.exports = setValue; + } +}); + +// node_modules/append-field/index.js +var require_append_field = __commonJS({ + "node_modules/append-field/index.js"(exports2, module2) { + var parsePath = require_parse_path(); + var setValue = require_set_value(); + function appendField(store, key, value) { + var steps = parsePath(key); + steps.reduce(function(context, step) { + return setValue(context, step, context[step.key], value); + }, store); + } + __name(appendField, "appendField"); + module2.exports = appendField; + } +}); + +// node_modules/multer/lib/counter.js +var require_counter = __commonJS({ + "node_modules/multer/lib/counter.js"(exports2, module2) { + var EventEmitter = require("events").EventEmitter; + function Counter() { + EventEmitter.call(this); + this.value = 0; + } + __name(Counter, "Counter"); + Counter.prototype = Object.create(EventEmitter.prototype); + Counter.prototype.increment = /* @__PURE__ */ __name(function increment() { + this.value++; + }, "increment"); + Counter.prototype.decrement = /* @__PURE__ */ __name(function decrement() { + if (--this.value === 0) this.emit("zero"); + }, "decrement"); + Counter.prototype.isZero = /* @__PURE__ */ __name(function isZero() { + return this.value === 0; + }, "isZero"); + Counter.prototype.onceZero = /* @__PURE__ */ __name(function onceZero(fn) { + if (this.isZero()) return fn(); + this.once("zero", fn); + }, "onceZero"); + module2.exports = Counter; + } +}); + +// node_modules/multer/lib/multer-error.js +var require_multer_error = __commonJS({ + "node_modules/multer/lib/multer-error.js"(exports2, module2) { + var util2 = require("util"); + var errorMessages = { + LIMIT_PART_COUNT: "Too many parts", + LIMIT_FILE_SIZE: "File too large", + LIMIT_FILE_COUNT: "Too many files", + LIMIT_FIELD_KEY: "Field name too long", + LIMIT_FIELD_VALUE: "Field value too long", + LIMIT_FIELD_COUNT: "Too many fields", + LIMIT_UNEXPECTED_FILE: "Unexpected field", + MISSING_FIELD_NAME: "Field name missing", + LIMIT_FIELD_NESTING: "Field name nesting too deep" + }; + function MulterError(code, field) { + Error.captureStackTrace(this, this.constructor); + this.name = this.constructor.name; + this.message = errorMessages[code]; + this.code = code; + if (field) this.field = field; + } + __name(MulterError, "MulterError"); + util2.inherits(MulterError, Error); + module2.exports = MulterError; + } +}); + +// node_modules/multer/lib/file-appender.js +var require_file_appender = __commonJS({ + "node_modules/multer/lib/file-appender.js"(exports2, module2) { + function arrayRemove(arr, item) { + var idx = arr.indexOf(item); + if (~idx) arr.splice(idx, 1); + } + __name(arrayRemove, "arrayRemove"); + function FileAppender(strategy, req) { + this.strategy = strategy; + this.req = req; + switch (strategy) { + case "NONE": + break; + case "VALUE": + break; + case "ARRAY": + req.files = []; + break; + case "OBJECT": + req.files = /* @__PURE__ */ Object.create(null); + break; + default: + throw new Error("Unknown file strategy: " + strategy); + } + } + __name(FileAppender, "FileAppender"); + FileAppender.prototype.insertPlaceholder = function(file) { + var placeholder = { + fieldname: file.fieldname + }; + switch (this.strategy) { + case "NONE": + break; + case "VALUE": + break; + case "ARRAY": + this.req.files.push(placeholder); + break; + case "OBJECT": + if (this.req.files[file.fieldname]) { + this.req.files[file.fieldname].push(placeholder); + } else { + this.req.files[file.fieldname] = [placeholder]; + } + break; + } + return placeholder; + }; + FileAppender.prototype.removePlaceholder = function(placeholder) { + switch (this.strategy) { + case "NONE": + break; + case "VALUE": + break; + case "ARRAY": + arrayRemove(this.req.files, placeholder); + break; + case "OBJECT": + if (this.req.files[placeholder.fieldname].length === 1) { + delete this.req.files[placeholder.fieldname]; + } else { + arrayRemove(this.req.files[placeholder.fieldname], placeholder); + } + break; + } + }; + FileAppender.prototype.replacePlaceholder = function(placeholder, file) { + if (this.strategy === "VALUE") { + this.req.file = file; + return; + } + delete placeholder.fieldname; + Object.assign(placeholder, file); + }; + module2.exports = FileAppender; + } +}); + +// node_modules/multer/lib/remove-uploaded-files.js +var require_remove_uploaded_files = __commonJS({ + "node_modules/multer/lib/remove-uploaded-files.js"(exports2, module2) { + function removeUploadedFiles(uploadedFiles, remove, cb) { + var length = uploadedFiles.length; + var errors = []; + if (length === 0) return cb(null, errors); + function handleFile(idx) { + var file = uploadedFiles[idx]; + remove(file, function(err) { + if (err) { + err.file = file; + err.field = file.fieldname; + errors.push(err); + } + if (idx < length - 1) { + setImmediate(function() { + handleFile(idx + 1); + }); + } else { + cb(null, errors); + } + }); + } + __name(handleFile, "handleFile"); + handleFile(0); + } + __name(removeUploadedFiles, "removeUploadedFiles"); + module2.exports = removeUploadedFiles; + } +}); + +// node_modules/multer/lib/make-middleware.js +var require_make_middleware = __commonJS({ + "node_modules/multer/lib/make-middleware.js"(exports2, module2) { + var is = require_type_is2(); + var Busboy = require_lib5(); + var appendField = require_append_field(); + var Counter = require_counter(); + var MulterError = require_multer_error(); + var FileAppender = require_file_appender(); + var removeUploadedFiles = require_remove_uploaded_files(); + function drainStream(stream) { + stream.on("readable", () => { + while (stream.read() !== null) { + } + }); + } + __name(drainStream, "drainStream"); + function makeMiddleware(setup) { + return /* @__PURE__ */ __name(function multerMiddleware(req, res, next) { + if (!is(req, ["multipart"])) return next(); + var options = setup(); + var limits = options.limits; + var storage = options.storage; + var fileFilter = options.fileFilter; + var fileStrategy = options.fileStrategy; + var preservePath = options.preservePath; + var defParamCharset = options.defParamCharset; + req.body = /* @__PURE__ */ Object.create(null); + var busboy; + var appender = null; + var isDone = false; + var readFinished = false; + var errorOccured = false; + var pendingWrites = new Counter(); + var uploadedFiles = []; + var pendingFiles = []; + function done(err) { + var called = false; + function onFinished() { + if (called) return; + called = true; + next(err); + } + __name(onFinished, "onFinished"); + if (isDone) return; + isDone = true; + if (busboy) { + req.unpipe(busboy); + setImmediate(() => { + busboy.removeAllListeners(); + }); + } + drainStream(req); + req.resume(); + if (err && req.readable && !req.destroyed) { + req.once("end", onFinished); + req.once("error", onFinished); + req.once("close", onFinished); + return; + } + next(err); + } + __name(done, "done"); + function indicateDone() { + if (readFinished && pendingWrites.isZero() && !errorOccured) done(); + } + __name(indicateDone, "indicateDone"); + function abortWithError(uploadError, skipPendingWait) { + if (errorOccured) return; + errorOccured = true; + function finishAbort() { + function remove(file, cb) { + storage._removeFile(req, file, cb); + } + __name(remove, "remove"); + var filesToRemove = uploadedFiles.concat( + pendingFiles.filter(function(f) { + return f.path; + }) + ); + pendingFiles = []; + removeUploadedFiles(filesToRemove, remove, function(err, storageErrors) { + if (err) return done(err); + uploadError.storageErrors = storageErrors; + done(uploadError); + }); + } + __name(finishAbort, "finishAbort"); + if (skipPendingWait) { + finishAbort(); + } else { + pendingWrites.onceZero(finishAbort); + } + } + __name(abortWithError, "abortWithError"); + function abortWithCode(code, optionalField) { + abortWithError(new MulterError(code, optionalField)); + } + __name(abortWithCode, "abortWithCode"); + function handleRequestFailure(err) { + if (isDone) return; + if (busboy) { + req.unpipe(busboy); + busboy.destroy(err); + } + abortWithError(err, true); + } + __name(handleRequestFailure, "handleRequestFailure"); + req.on("error", function(err) { + handleRequestFailure(err || new Error("Request error")); + }); + req.on("aborted", function() { + handleRequestFailure(new Error("Request aborted")); + }); + req.on("close", function() { + if (req.readableEnded) return; + handleRequestFailure(new Error("Request closed")); + }); + try { + busboy = Busboy({ + headers: req.headers, + limits, + preservePath, + defParamCharset + }); + } catch (err) { + return next(err); + } + appender = new FileAppender(fileStrategy, req); + busboy.on("field", function(fieldname, value, { nameTruncated, valueTruncated }) { + if (fieldname == null) return abortWithCode("MISSING_FIELD_NAME"); + if (nameTruncated) return abortWithCode("LIMIT_FIELD_KEY"); + if (valueTruncated) return abortWithCode("LIMIT_FIELD_VALUE", fieldname); + if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldNameSize")) { + if (fieldname.length > limits.fieldNameSize) return abortWithCode("LIMIT_FIELD_KEY"); + } + if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldNestingDepth")) { + if (fieldname.split("[").length - 1 > limits.fieldNestingDepth) return abortWithCode("LIMIT_FIELD_NESTING", fieldname); + } + appendField(req.body, fieldname, value); + }); + busboy.on("file", function(fieldname, fileStream, { filename, encoding, mimeType }) { + var pendingWritesIncremented = false; + fileStream.on("error", function(err) { + if (pendingWritesIncremented) { + pendingWrites.decrement(); + } + abortWithError(err); + }); + if (fieldname == null) return abortWithCode("MISSING_FIELD_NAME"); + if (!filename) return fileStream.resume(); + if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldNameSize")) { + if (fieldname.length > limits.fieldNameSize) return abortWithCode("LIMIT_FIELD_KEY"); + } + var file = { + fieldname, + originalname: filename, + encoding, + mimetype: mimeType + }; + var placeholder = appender.insertPlaceholder(file); + fileFilter(req, file, function(err, includeFile) { + if (errorOccured) { + appender.removePlaceholder(placeholder); + return fileStream.resume(); + } + if (err) { + appender.removePlaceholder(placeholder); + return abortWithError(err); + } + if (!includeFile) { + appender.removePlaceholder(placeholder); + return fileStream.resume(); + } + var aborting = false; + pendingWritesIncremented = true; + pendingWrites.increment(); + Object.defineProperty(file, "stream", { + configurable: true, + enumerable: false, + value: fileStream + }); + fileStream.on("limit", function() { + aborting = true; + abortWithCode("LIMIT_FILE_SIZE", fieldname); + }); + pendingFiles.push(file); + storage._handleFile(req, file, function(err2, info) { + var idx = pendingFiles.indexOf(file); + if (idx !== -1) pendingFiles.splice(idx, 1); + if (aborting) { + appender.removePlaceholder(placeholder); + uploadedFiles.push({ ...file, ...info }); + return pendingWrites.decrement(); + } + if (err2) { + appender.removePlaceholder(placeholder); + pendingWrites.decrement(); + return abortWithError(err2); + } + var fileInfo = { ...file, ...info }; + appender.replacePlaceholder(placeholder, fileInfo); + uploadedFiles.push(fileInfo); + pendingWrites.decrement(); + indicateDone(); + }); + }); + }); + busboy.on("error", function(err) { + abortWithError(err); + }); + busboy.on("partsLimit", function() { + abortWithCode("LIMIT_PART_COUNT"); + }); + busboy.on("filesLimit", function() { + abortWithCode("LIMIT_FILE_COUNT"); + }); + busboy.on("fieldsLimit", function() { + abortWithCode("LIMIT_FIELD_COUNT"); + }); + busboy.on("close", function() { + readFinished = true; + indicateDone(); + }); + req.pipe(busboy); + }, "multerMiddleware"); + } + __name(makeMiddleware, "makeMiddleware"); + module2.exports = makeMiddleware; + } +}); + +// node_modules/multer/storage/disk.js +var require_disk = __commonJS({ + "node_modules/multer/storage/disk.js"(exports2, module2) { + var fs = require("fs"); + var os = require("os"); + var path = require("path"); + var crypto2 = require("crypto"); + function getFilename(req, file, cb) { + crypto2.randomBytes(16, function(err, raw2) { + cb(err, err ? void 0 : raw2.toString("hex")); + }); + } + __name(getFilename, "getFilename"); + function getDestination(req, file, cb) { + cb(null, os.tmpdir()); + } + __name(getDestination, "getDestination"); + function DiskStorage(opts) { + this.getFilename = opts.filename || getFilename; + if (typeof opts.destination === "string") { + fs.mkdirSync(opts.destination, { recursive: true }); + this.getDestination = function($0, $1, cb) { + cb(null, opts.destination); + }; + } else { + this.getDestination = opts.destination || getDestination; + } + } + __name(DiskStorage, "DiskStorage"); + DiskStorage.prototype._handleFile = /* @__PURE__ */ __name(function _handleFile(req, file, cb) { + var that = this; + that.getDestination(req, file, function(err, destination) { + if (err) return cb(err); + that.getFilename(req, file, function(err2, filename) { + if (err2) return cb(err2); + var finalPath = path.join(destination, filename); + if (file.stream.destroyed) return; + var outStream = fs.createWriteStream(finalPath); + file.path = finalPath; + file.stream.pipe(outStream); + outStream.on("error", cb); + outStream.on("finish", function() { + cb(null, { + destination, + filename, + path: finalPath, + size: outStream.bytesWritten + }); + }); + }); + }); + }, "_handleFile"); + DiskStorage.prototype._removeFile = /* @__PURE__ */ __name(function _removeFile(req, file, cb) { + var path2 = file.path; + delete file.destination; + delete file.filename; + delete file.path; + fs.unlink(path2, cb); + }, "_removeFile"); + module2.exports = function(opts) { + return new DiskStorage(opts); + }; + } +}); + +// node_modules/readable-stream/lib/internal/streams/stream.js +var require_stream = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/stream.js"(exports2, module2) { + module2.exports = require("stream"); + } +}); + +// node_modules/readable-stream/lib/internal/streams/buffer_list.js +var require_buffer_list = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports2, module2) { + "use strict"; + function ownKeys2(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys2(Object(source), true).forEach(function(key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys2(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value; + } + return obj; + } + __name(_defineProperty, "_defineProperty"); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + __name(_classCallCheck, "_classCallCheck"); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); + } + } + __name(_defineProperties, "_defineProperties"); + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { writable: false }); + return Constructor; + } + __name(_createClass, "_createClass"); + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== void 0) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + __name(_toPrimitive, "_toPrimitive"); + var _require = require("buffer"); + var Buffer2 = _require.Buffer; + var _require2 = require("util"); + var inspect = _require2.inspect; + var custom = inspect && inspect.custom || "inspect"; + function copyBuffer(src, target, offset) { + Buffer2.prototype.copy.call(src, target, offset); + } + __name(copyBuffer, "copyBuffer"); + module2.exports = /* @__PURE__ */ (function() { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + __name(BufferList, "BufferList"); + _createClass(BufferList, [{ + key: "push", + value: /* @__PURE__ */ __name(function push(v) { + var entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry; + else this.head = entry; + this.tail = entry; + ++this.length; + }, "push") + }, { + key: "unshift", + value: /* @__PURE__ */ __name(function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + }, "unshift") + }, { + key: "shift", + value: /* @__PURE__ */ __name(function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null; + else this.head = this.head.next; + --this.length; + return ret; + }, "shift") + }, { + key: "clear", + value: /* @__PURE__ */ __name(function clear() { + this.head = this.tail = null; + this.length = 0; + }, "clear") + }, { + key: "join", + value: /* @__PURE__ */ __name(function join2(s) { + if (this.length === 0) return ""; + var p = this.head; + var ret = "" + p.data; + while (p = p.next) ret += s + p.data; + return ret; + }, "join") + }, { + key: "concat", + value: /* @__PURE__ */ __name(function concat(n) { + if (this.length === 0) return Buffer2.alloc(0); + var ret = Buffer2.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }, "concat") + // Consumes a specified amount of bytes or characters from the buffered data. + }, { + key: "consume", + value: /* @__PURE__ */ __name(function consume(n, hasStrings) { + var ret; + if (n < this.head.data.length) { + ret = this.head.data.slice(0, n); + this.head.data = this.head.data.slice(n); + } else if (n === this.head.data.length) { + ret = this.shift(); + } else { + ret = hasStrings ? this._getString(n) : this._getBuffer(n); + } + return ret; + }, "consume") + }, { + key: "first", + value: /* @__PURE__ */ __name(function first() { + return this.head.data; + }, "first") + // Consumes a specified amount of characters from the buffered data. + }, { + key: "_getString", + value: /* @__PURE__ */ __name(function _getString(n) { + var p = this.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str; + else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next; + else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + }, "_getString") + // Consumes a specified amount of bytes from the buffered data. + }, { + key: "_getBuffer", + value: /* @__PURE__ */ __name(function _getBuffer(n) { + var ret = Buffer2.allocUnsafe(n); + var p = this.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next; + else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + this.length -= c; + return ret; + }, "_getBuffer") + // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: /* @__PURE__ */ __name(function value(_, options) { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + }, "value") + }]); + return BufferList; + })(); + } +}); + +// node_modules/readable-stream/lib/internal/streams/destroy.js +var require_destroy = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports2, module2) { + "use strict"; + function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + process.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + process.nextTick(emitErrorNT, this, err); + } + } + return this; + } + if (this._readableState) { + this._readableState.destroyed = true; + } + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function(err2) { + if (!cb && err2) { + if (!_this._writableState) { + process.nextTick(emitErrorAndCloseNT, _this, err2); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + process.nextTick(emitErrorAndCloseNT, _this, err2); + } else { + process.nextTick(emitCloseNT, _this); + } + } else if (cb) { + process.nextTick(emitCloseNT, _this); + cb(err2); + } else { + process.nextTick(emitCloseNT, _this); + } + }); + return this; + } + __name(destroy, "destroy"); + function emitErrorAndCloseNT(self2, err) { + emitErrorNT(self2, err); + emitCloseNT(self2); + } + __name(emitErrorAndCloseNT, "emitErrorAndCloseNT"); + function emitCloseNT(self2) { + if (self2._writableState && !self2._writableState.emitClose) return; + if (self2._readableState && !self2._readableState.emitClose) return; + self2.emit("close"); + } + __name(emitCloseNT, "emitCloseNT"); + function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } + } + __name(undestroy, "undestroy"); + function emitErrorNT(self2, err) { + self2.emit("error", err); + } + __name(emitErrorNT, "emitErrorNT"); + function errorOrDestroy(stream, err) { + var rState = stream._readableState; + var wState = stream._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err); + else stream.emit("error", err); + } + __name(errorOrDestroy, "errorOrDestroy"); + module2.exports = { + destroy, + undestroy, + errorOrDestroy + }; + } +}); + +// node_modules/readable-stream/errors.js +var require_errors = __commonJS({ + "node_modules/readable-stream/errors.js"(exports2, module2) { + "use strict"; + var codes = {}; + function createErrorType(code, message, Base) { + if (!Base) { + Base = Error; + } + function getMessage(arg1, arg2, arg3) { + if (typeof message === "string") { + return message; + } else { + return message(arg1, arg2, arg3); + } + } + __name(getMessage, "getMessage"); + class NodeError extends Base { + static { + __name(this, "NodeError"); + } + constructor(arg1, arg2, arg3) { + super(getMessage(arg1, arg2, arg3)); + } + } + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; + codes[code] = NodeError; + } + __name(createErrorType, "createErrorType"); + function oneOf(expected, thing) { + if (Array.isArray(expected)) { + const len = expected.length; + expected = expected.map((i) => String(i)); + if (len > 2) { + return `one of ${thing} ${expected.slice(0, len - 1).join(", ")}, or ` + expected[len - 1]; + } else if (len === 2) { + return `one of ${thing} ${expected[0]} or ${expected[1]}`; + } else { + return `of ${thing} ${expected[0]}`; + } + } else { + return `of ${thing} ${String(expected)}`; + } + } + __name(oneOf, "oneOf"); + function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; + } + __name(startsWith, "startsWith"); + function endsWith(str, search, this_len) { + if (this_len === void 0 || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; + } + __name(endsWith, "endsWith"); + function includes(str, search, start) { + if (typeof start !== "number") { + start = 0; + } + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } + } + __name(includes, "includes"); + createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"'; + }, TypeError); + createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) { + let determiner; + if (typeof expected === "string" && startsWith(expected, "not ")) { + determiner = "must not be"; + expected = expected.replace(/^not /, ""); + } else { + determiner = "must be"; + } + let msg; + if (endsWith(name, " argument")) { + msg = `The ${name} ${determiner} ${oneOf(expected, "type")}`; + } else { + const type = includes(name, ".") ? "property" : "argument"; + msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, "type")}`; + } + msg += `. Received type ${typeof actual}`; + return msg; + }, TypeError); + createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF"); + createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) { + return "The " + name + " method is not implemented"; + }); + createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close"); + createErrorType("ERR_STREAM_DESTROYED", function(name) { + return "Cannot call " + name + " after a stream was destroyed"; + }); + createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times"); + createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable"); + createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end"); + createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError); + createErrorType("ERR_UNKNOWN_ENCODING", function(arg) { + return "Unknown encoding: " + arg; + }, TypeError); + createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event"); + module2.exports.codes = codes; + } +}); + +// node_modules/readable-stream/lib/internal/streams/state.js +var require_state = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/state.js"(exports2, module2) { + "use strict"; + var ERR_INVALID_OPT_VALUE = require_errors().codes.ERR_INVALID_OPT_VALUE; + function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; + } + __name(highWaterMarkFrom, "highWaterMarkFrom"); + function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : "highWaterMark"; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } + return Math.floor(hwm); + } + return state.objectMode ? 16 : 16 * 1024; + } + __name(getHighWaterMark, "getHighWaterMark"); + module2.exports = { + getHighWaterMark + }; + } +}); + +// node_modules/util-deprecate/node.js +var require_node2 = __commonJS({ + "node_modules/util-deprecate/node.js"(exports2, module2) { + module2.exports = require("util").deprecate; + } +}); + +// node_modules/readable-stream/lib/_stream_writable.js +var require_stream_writable = __commonJS({ + "node_modules/readable-stream/lib/_stream_writable.js"(exports2, module2) { + "use strict"; + module2.exports = Writable; + function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function() { + onCorkedFinish(_this, state); + }; + } + __name(CorkedRequest, "CorkedRequest"); + var Duplex; + Writable.WritableState = WritableState; + var internalUtil = { + deprecate: require_node2() + }; + var Stream = require_stream(); + var Buffer2 = require("buffer").Buffer; + var OurUint8Array = (typeof global !== "undefined" ? global : typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : {}).Uint8Array || function() { + }; + function _uint8ArrayToBuffer(chunk) { + return Buffer2.from(chunk); + } + __name(_uint8ArrayToBuffer, "_uint8ArrayToBuffer"); + function _isUint8Array(obj) { + return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; + } + __name(_isUint8Array, "_isUint8Array"); + var destroyImpl = require_destroy(); + var _require = require_state(); + var getHighWaterMark = _require.getHighWaterMark; + var _require$codes = require_errors().codes; + var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE; + var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED; + var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK; + var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE; + var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; + var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES; + var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END; + var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; + var errorOrDestroy = destroyImpl.errorOrDestroy; + require_inherits()(Writable, Stream); + function nop() { + } + __name(nop, "nop"); + function WritableState(options, stream, isDuplex) { + Duplex = Duplex || require_stream_duplex(); + options = options || {}; + if (typeof isDuplex !== "boolean") isDuplex = stream instanceof Duplex; + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex); + this.finalCalled = false; + this.needDrain = false; + this.ending = false; + this.ended = false; + this.finished = false; + this.destroyed = false; + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + this.defaultEncoding = options.defaultEncoding || "utf8"; + this.length = 0; + this.writing = false; + this.corked = 0; + this.sync = true; + this.bufferProcessing = false; + this.onwrite = function(er) { + onwrite(stream, er); + }; + this.writecb = null; + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; + this.pendingcb = 0; + this.prefinished = false; + this.errorEmitted = false; + this.emitClose = options.emitClose !== false; + this.autoDestroy = !!options.autoDestroy; + this.bufferedRequestCount = 0; + this.corkedRequestsFree = new CorkedRequest(this); + } + __name(WritableState, "WritableState"); + WritableState.prototype.getBuffer = /* @__PURE__ */ __name(function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; + }, "getBuffer"); + (function() { + try { + Object.defineProperty(WritableState.prototype, "buffer", { + get: internalUtil.deprecate(/* @__PURE__ */ __name(function writableStateBufferGetter() { + return this.getBuffer(); + }, "writableStateBufferGetter"), "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") + }); + } catch (_) { + } + })(); + var realHasInstance; + if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: /* @__PURE__ */ __name(function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; + }, "value") + }); + } else { + realHasInstance = /* @__PURE__ */ __name(function realHasInstance2(object) { + return object instanceof this; + }, "realHasInstance"); + } + function Writable(options) { + Duplex = Duplex || require_stream_duplex(); + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); + this.writable = true; + if (options) { + if (typeof options.write === "function") this._write = options.write; + if (typeof options.writev === "function") this._writev = options.writev; + if (typeof options.destroy === "function") this._destroy = options.destroy; + if (typeof options.final === "function") this._final = options.final; + } + Stream.call(this); + } + __name(Writable, "Writable"); + Writable.prototype.pipe = function() { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); + }; + function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); + errorOrDestroy(stream, er); + process.nextTick(cb, er); + } + __name(writeAfterEnd, "writeAfterEnd"); + function validChunk(stream, state, chunk, cb) { + var er; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== "string" && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk); + } + if (er) { + errorOrDestroy(stream, er); + process.nextTick(cb, er); + return false; + } + return true; + } + __name(validChunk, "validChunk"); + Writable.prototype.write = function(chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer2.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === "function") { + cb = encoding; + encoding = null; + } + if (isBuf) encoding = "buffer"; + else if (!encoding) encoding = state.defaultEncoding; + if (typeof cb !== "function") cb = nop; + if (state.ending) writeAfterEnd(this, cb); + else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; + }; + Writable.prototype.cork = function() { + this._writableState.corked++; + }; + Writable.prototype.uncork = function() { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } + }; + Writable.prototype.setDefaultEncoding = /* @__PURE__ */ __name(function setDefaultEncoding(encoding) { + if (typeof encoding === "string") encoding = encoding.toLowerCase(); + if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; + }, "setDefaultEncoding"); + Object.defineProperty(Writable.prototype, "writableBuffer", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._writableState && this._writableState.getBuffer(); + }, "get") + }); + function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") { + chunk = Buffer2.from(chunk, encoding); + } + return chunk; + } + __name(decodeChunk, "decodeChunk"); + Object.defineProperty(Writable.prototype, "writableHighWaterMark", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._writableState.highWaterMark; + }, "get") + }); + function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = "buffer"; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + if (!ret) state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk, + encoding, + isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + return ret; + } + __name(writeOrBuffer, "writeOrBuffer"); + function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED("write")); + else if (writev) stream._writev(chunk, state.onwrite); + else stream._write(chunk, encoding, state.onwrite); + state.sync = false; + } + __name(doWrite, "doWrite"); + function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + process.nextTick(cb, er); + process.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + } else { + cb(er); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + finishMaybe(stream, state); + } + } + __name(onwriteError, "onwriteError"); + function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; + } + __name(onwriteStateUpdate, "onwriteStateUpdate"); + function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== "function") throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) onwriteError(stream, state, sync, er, cb); + else { + var finished = needFinish(state) || stream.destroyed; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + if (sync) { + process.nextTick(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } + } + } + __name(onwrite, "onwrite"); + function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); + } + __name(afterWrite, "afterWrite"); + function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit("drain"); + } + } + __name(onwriteDrain, "onwriteDrain"); + function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream._writev && entry && entry.next) { + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, "", holder.finish); + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + if (state.writing) { + break; + } + } + if (entry === null) state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; + } + __name(clearBuffer, "clearBuffer"); + Writable.prototype._write = function(chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()")); + }; + Writable.prototype._writev = null; + Writable.prototype.end = function(chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === "function") { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === "function") { + cb = encoding; + encoding = null; + } + if (chunk !== null && chunk !== void 0) this.write(chunk, encoding); + if (state.corked) { + state.corked = 1; + this.uncork(); + } + if (!state.ending) endWritable(this, state, cb); + return this; + }; + Object.defineProperty(Writable.prototype, "writableLength", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._writableState.length; + }, "get") + }); + function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; + } + __name(needFinish, "needFinish"); + function callFinal(stream, state) { + stream._final(function(err) { + state.pendingcb--; + if (err) { + errorOrDestroy(stream, err); + } + state.prefinished = true; + stream.emit("prefinish"); + finishMaybe(stream, state); + }); + } + __name(callFinal, "callFinal"); + function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === "function" && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + process.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit("prefinish"); + } + } + } + __name(prefinish, "prefinish"); + function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit("finish"); + if (state.autoDestroy) { + var rState = stream._readableState; + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream.destroy(); + } + } + } + } + return need; + } + __name(finishMaybe, "finishMaybe"); + function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) process.nextTick(cb); + else stream.once("finish", cb); + } + state.ended = true; + stream.writable = false; + } + __name(endWritable, "endWritable"); + function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + state.corkedRequestsFree.next = corkReq; + } + __name(onCorkedFinish, "onCorkedFinish"); + Object.defineProperty(Writable.prototype, "destroyed", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + if (this._writableState === void 0) { + return false; + } + return this._writableState.destroyed; + }, "get"), + set: /* @__PURE__ */ __name(function set(value) { + if (!this._writableState) { + return; + } + this._writableState.destroyed = value; + }, "set") + }); + Writable.prototype.destroy = destroyImpl.destroy; + Writable.prototype._undestroy = destroyImpl.undestroy; + Writable.prototype._destroy = function(err, cb) { + cb(err); + }; + } +}); + +// node_modules/readable-stream/lib/_stream_duplex.js +var require_stream_duplex = __commonJS({ + "node_modules/readable-stream/lib/_stream_duplex.js"(exports2, module2) { + "use strict"; + var objectKeys = Object.keys || function(obj) { + var keys2 = []; + for (var key in obj) keys2.push(key); + return keys2; + }; + module2.exports = Duplex; + var Readable = require_stream_readable(); + var Writable = require_stream_writable(); + require_inherits()(Duplex, Readable); + { + keys = objectKeys(Writable.prototype); + for (v = 0; v < keys.length; v++) { + method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } + } + var keys; + var method; + var v; + function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; + if (options) { + if (options.readable === false) this.readable = false; + if (options.writable === false) this.writable = false; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once("end", onend); + } + } + } + __name(Duplex, "Duplex"); + Object.defineProperty(Duplex.prototype, "writableHighWaterMark", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._writableState.highWaterMark; + }, "get") + }); + Object.defineProperty(Duplex.prototype, "writableBuffer", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._writableState && this._writableState.getBuffer(); + }, "get") + }); + Object.defineProperty(Duplex.prototype, "writableLength", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._writableState.length; + }, "get") + }); + function onend() { + if (this._writableState.ended) return; + process.nextTick(onEndNT, this); + } + __name(onend, "onend"); + function onEndNT(self2) { + self2.end(); + } + __name(onEndNT, "onEndNT"); + Object.defineProperty(Duplex.prototype, "destroyed", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + if (this._readableState === void 0 || this._writableState === void 0) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, "get"), + set: /* @__PURE__ */ __name(function set(value) { + if (this._readableState === void 0 || this._writableState === void 0) { + return; + } + this._readableState.destroyed = value; + this._writableState.destroyed = value; + }, "set") + }); + } +}); + +// node_modules/safe-buffer/index.js +var require_safe_buffer = __commonJS({ + "node_modules/safe-buffer/index.js"(exports2, module2) { + var buffer = require("buffer"); + var Buffer2 = buffer.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + __name(copyProps, "copyProps"); + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + module2.exports = buffer; + } else { + copyProps(buffer, exports2); + exports2.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + __name(SafeBuffer, "SafeBuffer"); + SafeBuffer.prototype = Object.create(Buffer2.prototype); + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer.SlowBuffer(size); + }; + } +}); + +// node_modules/string_decoder/lib/string_decoder.js +var require_string_decoder = __commonJS({ + "node_modules/string_decoder/lib/string_decoder.js"(exports2) { + "use strict"; + var Buffer2 = require_safe_buffer().Buffer; + var isEncoding = Buffer2.isEncoding || function(encoding) { + encoding = "" + encoding; + switch (encoding && encoding.toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + case "raw": + return true; + default: + return false; + } + }; + function _normalizeEncoding(enc) { + if (!enc) return "utf8"; + var retried; + while (true) { + switch (enc) { + case "utf8": + case "utf-8": + return "utf8"; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return "utf16le"; + case "latin1": + case "binary": + return "latin1"; + case "base64": + case "ascii": + case "hex": + return enc; + default: + if (retried) return; + enc = ("" + enc).toLowerCase(); + retried = true; + } + } + } + __name(_normalizeEncoding, "_normalizeEncoding"); + function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== "string" && (Buffer2.isEncoding === isEncoding || !isEncoding(enc))) throw new Error("Unknown encoding: " + enc); + return nenc || enc; + } + __name(normalizeEncoding, "normalizeEncoding"); + exports2.StringDecoder = StringDecoder; + function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case "utf16le": + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case "utf8": + this.fillLast = utf8FillLast; + nb = 4; + break; + case "base64": + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer2.allocUnsafe(nb); + } + __name(StringDecoder, "StringDecoder"); + StringDecoder.prototype.write = function(buf) { + if (buf.length === 0) return ""; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === void 0) return ""; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ""; + }; + StringDecoder.prototype.end = utf8End; + StringDecoder.prototype.text = utf8Text; + StringDecoder.prototype.fillLast = function(buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; + }; + function utf8CheckByte(byte) { + if (byte <= 127) return 0; + else if (byte >> 5 === 6) return 2; + else if (byte >> 4 === 14) return 3; + else if (byte >> 3 === 30) return 4; + return byte >> 6 === 2 ? -1 : -2; + } + __name(utf8CheckByte, "utf8CheckByte"); + function utf8CheckIncomplete(self2, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self2.lastNeed = nb - 1; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self2.lastNeed = nb - 2; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0; + else self2.lastNeed = nb - 3; + } + return nb; + } + return 0; + } + __name(utf8CheckIncomplete, "utf8CheckIncomplete"); + function utf8CheckExtraBytes(self2, buf, p) { + if ((buf[0] & 192) !== 128) { + self2.lastNeed = 0; + return "\uFFFD"; + } + if (self2.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 192) !== 128) { + self2.lastNeed = 1; + return "\uFFFD"; + } + if (self2.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 192) !== 128) { + self2.lastNeed = 2; + return "\uFFFD"; + } + } + } + } + __name(utf8CheckExtraBytes, "utf8CheckExtraBytes"); + function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== void 0) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; + } + __name(utf8FillLast, "utf8FillLast"); + function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString("utf8", i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString("utf8", i, end); + } + __name(utf8Text, "utf8Text"); + function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) return r + "\uFFFD"; + return r; + } + __name(utf8End, "utf8End"); + function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString("utf16le", i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 55296 && c <= 56319) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString("utf16le", i, buf.length - 1); + } + __name(utf16Text, "utf16Text"); + function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString("utf16le", 0, end); + } + return r; + } + __name(utf16End, "utf16End"); + function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString("base64", i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString("base64", i, buf.length - n); + } + __name(base64Text, "base64Text"); + function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed); + return r; + } + __name(base64End, "base64End"); + function simpleWrite(buf) { + return buf.toString(this.encoding); + } + __name(simpleWrite, "simpleWrite"); + function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ""; + } + __name(simpleEnd, "simpleEnd"); + } +}); + +// node_modules/readable-stream/lib/internal/streams/end-of-stream.js +var require_end_of_stream = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports2, module2) { + "use strict"; + var ERR_STREAM_PREMATURE_CLOSE = require_errors().codes.ERR_STREAM_PREMATURE_CLOSE; + function once(callback) { + var called = false; + return function() { + if (called) return; + called = true; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + callback.apply(this, args); + }; + } + __name(once, "once"); + function noop() { + } + __name(noop, "noop"); + function isRequest(stream) { + return stream.setHeader && typeof stream.abort === "function"; + } + __name(isRequest, "isRequest"); + function eos(stream, opts, callback) { + if (typeof opts === "function") return eos(stream, null, opts); + if (!opts) opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream.readable; + var writable = opts.writable || opts.writable !== false && stream.writable; + var onlegacyfinish = /* @__PURE__ */ __name(function onlegacyfinish2() { + if (!stream.writable) onfinish(); + }, "onlegacyfinish"); + var writableEnded = stream._writableState && stream._writableState.finished; + var onfinish = /* @__PURE__ */ __name(function onfinish2() { + writable = false; + writableEnded = true; + if (!readable) callback.call(stream); + }, "onfinish"); + var readableEnded = stream._readableState && stream._readableState.endEmitted; + var onend = /* @__PURE__ */ __name(function onend2() { + readable = false; + readableEnded = true; + if (!writable) callback.call(stream); + }, "onend"); + var onerror = /* @__PURE__ */ __name(function onerror2(err) { + callback.call(stream, err); + }, "onerror"); + var onclose = /* @__PURE__ */ __name(function onclose2() { + var err; + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + }, "onclose"); + var onrequest = /* @__PURE__ */ __name(function onrequest2() { + stream.req.on("finish", onfinish); + }, "onrequest"); + if (isRequest(stream)) { + stream.on("complete", onfinish); + stream.on("abort", onclose); + if (stream.req) onrequest(); + else stream.on("request", onrequest); + } else if (writable && !stream._writableState) { + stream.on("end", onlegacyfinish); + stream.on("close", onlegacyfinish); + } + stream.on("end", onend); + stream.on("finish", onfinish); + if (opts.error !== false) stream.on("error", onerror); + stream.on("close", onclose); + return function() { + stream.removeListener("complete", onfinish); + stream.removeListener("abort", onclose); + stream.removeListener("request", onrequest); + if (stream.req) stream.req.removeListener("finish", onfinish); + stream.removeListener("end", onlegacyfinish); + stream.removeListener("close", onlegacyfinish); + stream.removeListener("finish", onfinish); + stream.removeListener("end", onend); + stream.removeListener("error", onerror); + stream.removeListener("close", onclose); + }; + } + __name(eos, "eos"); + module2.exports = eos; + } +}); + +// node_modules/readable-stream/lib/internal/streams/async_iterator.js +var require_async_iterator = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports2, module2) { + "use strict"; + var _Object$setPrototypeO; + function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value; + } + return obj; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== void 0) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + __name(_toPrimitive, "_toPrimitive"); + var finished = require_end_of_stream(); + var kLastResolve = /* @__PURE__ */ Symbol("lastResolve"); + var kLastReject = /* @__PURE__ */ Symbol("lastReject"); + var kError = /* @__PURE__ */ Symbol("error"); + var kEnded = /* @__PURE__ */ Symbol("ended"); + var kLastPromise = /* @__PURE__ */ Symbol("lastPromise"); + var kHandlePromise = /* @__PURE__ */ Symbol("handlePromise"); + var kStream = /* @__PURE__ */ Symbol("stream"); + function createIterResult(value, done) { + return { + value, + done + }; + } + __name(createIterResult, "createIterResult"); + function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + if (resolve !== null) { + var data = iter[kStream].read(); + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } + } + } + __name(readAndResolve, "readAndResolve"); + function onReadable(iter) { + process.nextTick(readAndResolve, iter); + } + __name(onReadable, "onReadable"); + function wrapForNext(lastPromise, iter) { + return function(resolve, reject) { + lastPromise.then(function() { + if (iter[kEnded]) { + resolve(createIterResult(void 0, true)); + return; + } + iter[kHandlePromise](resolve, reject); + }, reject); + }; + } + __name(wrapForNext, "wrapForNext"); + var AsyncIteratorPrototype = Object.getPrototypeOf(function() { + }); + var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, + next: /* @__PURE__ */ __name(function next() { + var _this = this; + var error = this[kError]; + if (error !== null) { + return Promise.reject(error); + } + if (this[kEnded]) { + return Promise.resolve(createIterResult(void 0, true)); + } + if (this[kStream].destroyed) { + return new Promise(function(resolve, reject) { + process.nextTick(function() { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(void 0, true)); + } + }); + }); + } + var lastPromise = this[kLastPromise]; + var promise; + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + var data = this[kStream].read(); + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } + promise = new Promise(this[kHandlePromise]); + } + this[kLastPromise] = promise; + return promise; + }, "next") + }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() { + return this; + }), _defineProperty(_Object$setPrototypeO, "return", /* @__PURE__ */ __name(function _return() { + var _this2 = this; + return new Promise(function(resolve, reject) { + _this2[kStream].destroy(null, function(err) { + if (err) { + reject(err); + return; + } + resolve(createIterResult(void 0, true)); + }); + }); + }, "_return")), _Object$setPrototypeO), AsyncIteratorPrototype); + var createReadableStreamAsyncIterator = /* @__PURE__ */ __name(function createReadableStreamAsyncIterator2(stream) { + var _Object$create; + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: /* @__PURE__ */ __name(function value(resolve, reject) { + var data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, "value"), + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function(err) { + if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") { + var reject = iterator[kLastReject]; + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } + iterator[kError] = err; + return; + } + var resolve = iterator[kLastResolve]; + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(void 0, true)); + } + iterator[kEnded] = true; + }); + stream.on("readable", onReadable.bind(null, iterator)); + return iterator; + }, "createReadableStreamAsyncIterator"); + module2.exports = createReadableStreamAsyncIterator; + } +}); + +// node_modules/readable-stream/lib/internal/streams/from.js +var require_from2 = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/from.js"(exports2, module2) { + "use strict"; + function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } + } + __name(asyncGeneratorStep, "asyncGeneratorStep"); + function _asyncToGenerator(fn) { + return function() { + var self2 = this, args = arguments; + return new Promise(function(resolve, reject) { + var gen = fn.apply(self2, args); + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + __name(_next, "_next"); + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + __name(_throw, "_throw"); + _next(void 0); + }); + }; + } + __name(_asyncToGenerator, "_asyncToGenerator"); + function ownKeys2(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys2(Object(source), true).forEach(function(key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys2(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; + } + __name(_objectSpread, "_objectSpread"); + function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value; + } + return obj; + } + __name(_defineProperty, "_defineProperty"); + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } + __name(_toPropertyKey, "_toPropertyKey"); + function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== void 0) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } + __name(_toPrimitive, "_toPrimitive"); + var ERR_INVALID_ARG_TYPE = require_errors().codes.ERR_INVALID_ARG_TYPE; + function from(Readable, iterable, opts) { + var iterator; + if (iterable && typeof iterable.next === "function") { + iterator = iterable; + } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator](); + else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator](); + else throw new ERR_INVALID_ARG_TYPE("iterable", ["Iterable"], iterable); + var readable = new Readable(_objectSpread({ + objectMode: true + }, opts)); + var reading = false; + readable._read = function() { + if (!reading) { + reading = true; + next(); + } + }; + function next() { + return _next2.apply(this, arguments); + } + __name(next, "next"); + function _next2() { + _next2 = _asyncToGenerator(function* () { + try { + var _yield$iterator$next = yield iterator.next(), value = _yield$iterator$next.value, done = _yield$iterator$next.done; + if (done) { + readable.push(null); + } else if (readable.push(yield value)) { + next(); + } else { + reading = false; + } + } catch (err) { + readable.destroy(err); + } + }); + return _next2.apply(this, arguments); + } + __name(_next2, "_next2"); + return readable; + } + __name(from, "from"); + module2.exports = from; + } +}); + +// node_modules/readable-stream/lib/_stream_readable.js +var require_stream_readable = __commonJS({ + "node_modules/readable-stream/lib/_stream_readable.js"(exports2, module2) { + "use strict"; + module2.exports = Readable; + var Duplex; + Readable.ReadableState = ReadableState; + var EE = require("events").EventEmitter; + var EElistenerCount = /* @__PURE__ */ __name(function EElistenerCount2(emitter, type) { + return emitter.listeners(type).length; + }, "EElistenerCount"); + var Stream = require_stream(); + var Buffer2 = require("buffer").Buffer; + var OurUint8Array = (typeof global !== "undefined" ? global : typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : {}).Uint8Array || function() { + }; + function _uint8ArrayToBuffer(chunk) { + return Buffer2.from(chunk); + } + __name(_uint8ArrayToBuffer, "_uint8ArrayToBuffer"); + function _isUint8Array(obj) { + return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; + } + __name(_isUint8Array, "_isUint8Array"); + var debugUtil = require("util"); + var debug; + if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog("stream"); + } else { + debug = /* @__PURE__ */ __name(function debug2() { + }, "debug"); + } + var BufferList = require_buffer_list(); + var destroyImpl = require_destroy(); + var _require = require_state(); + var getHighWaterMark = _require.getHighWaterMark; + var _require$codes = require_errors().codes; + var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE; + var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF; + var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED; + var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; + var StringDecoder; + var createReadableStreamAsyncIterator; + var from; + require_inherits()(Readable, Stream); + var errorOrDestroy = destroyImpl.errorOrDestroy; + var kProxyEvents = ["error", "close", "destroy", "pause", "resume"]; + function prependListener(emitter, event, fn) { + if (typeof emitter.prependListener === "function") return emitter.prependListener(event, fn); + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn); + else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn); + else emitter._events[event] = [fn, emitter._events[event]]; + } + __name(prependListener, "prependListener"); + function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || require_stream_duplex(); + options = options || {}; + if (typeof isDuplex !== "boolean") isDuplex = stream instanceof Duplex; + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex); + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + this.sync = true; + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; + this.emitClose = options.emitClose !== false; + this.autoDestroy = !!options.autoDestroy; + this.destroyed = false; + this.defaultEncoding = options.defaultEncoding || "utf8"; + this.awaitDrain = 0; + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } + } + __name(ReadableState, "ReadableState"); + function Readable(options) { + Duplex = Duplex || require_stream_duplex(); + if (!(this instanceof Readable)) return new Readable(options); + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); + this.readable = true; + if (options) { + if (typeof options.read === "function") this._read = options.read; + if (typeof options.destroy === "function") this._destroy = options.destroy; + } + Stream.call(this); + } + __name(Readable, "Readable"); + Object.defineProperty(Readable.prototype, "destroyed", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + if (this._readableState === void 0) { + return false; + } + return this._readableState.destroyed; + }, "get"), + set: /* @__PURE__ */ __name(function set(value) { + if (!this._readableState) { + return; + } + this._readableState.destroyed = value; + }, "set") + }); + Readable.prototype.destroy = destroyImpl.destroy; + Readable.prototype._undestroy = destroyImpl.undestroy; + Readable.prototype._destroy = function(err, cb) { + cb(err); + }; + Readable.prototype.push = function(chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === "string") { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer2.from(chunk, encoding); + encoding = ""; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); + }; + Readable.prototype.unshift = function(chunk) { + return readableAddChunk(this, chunk, null, true, false); + }; + function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + debug("readableAddChunk", chunk); + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + errorOrDestroy(stream, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer2.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); + else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false); + else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream, state); + } + } + return !state.ended && (state.length < state.highWaterMark || state.length === 0); + } + __name(readableAddChunk, "readableAddChunk"); + function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream.emit("data", chunk); + } else { + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk); + else state.buffer.push(chunk); + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); + } + __name(addChunk, "addChunk"); + function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk); + } + return er; + } + __name(chunkInvalid, "chunkInvalid"); + Readable.prototype.isPaused = function() { + return this._readableState.flowing === false; + }; + Readable.prototype.setEncoding = function(enc) { + if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder; + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + this._readableState.encoding = this._readableState.decoder.encoding; + var p = this._readableState.buffer.head; + var content = ""; + while (p !== null) { + content += decoder.write(p.data); + p = p.next; + } + this._readableState.buffer.clear(); + if (content !== "") this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; + }; + var MAX_HWM = 1073741824; + function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; + } + __name(computeNewHighWaterMark, "computeNewHighWaterMark"); + function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + if (state.flowing && state.length) return state.buffer.head.data.length; + else return state.length; + } + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; + } + __name(howMuchToRead, "howMuchToRead"); + Readable.prototype.read = function(n) { + debug("read", n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) state.emittedReadable = false; + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug("read: emitReadable", state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this); + else emitReadable(this); + return null; + } + n = howMuchToRead(n, state); + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + var doRead = state.needReadable; + debug("need readable", doRead); + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug("length less than watermark", doRead); + } + if (state.ended || state.reading) { + doRead = false; + debug("reading or ended", doRead); + } else if (doRead) { + debug("do read"); + state.reading = true; + state.sync = true; + if (state.length === 0) state.needReadable = true; + this._read(state.highWaterMark); + state.sync = false; + if (!state.reading) n = howMuchToRead(nOrig, state); + } + var ret; + if (n > 0) ret = fromList(n, state); + else ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; + } else { + state.length -= n; + state.awaitDrain = 0; + } + if (state.length === 0) { + if (!state.ended) state.needReadable = true; + if (nOrig !== n && state.ended) endReadable(this); + } + if (ret !== null) this.emit("data", ret); + return ret; + }; + function onEofChunk(stream, state) { + debug("onEofChunk"); + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + emitReadable(stream); + } else { + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream); + } + } + } + __name(onEofChunk, "onEofChunk"); + function emitReadable(stream) { + var state = stream._readableState; + debug("emitReadable", state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug("emitReadable", state.flowing); + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); + } + } + __name(emitReadable, "emitReadable"); + function emitReadable_(stream) { + var state = stream._readableState; + debug("emitReadable_", state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream.emit("readable"); + state.emittedReadable = false; + } + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); + } + __name(emitReadable_, "emitReadable_"); + function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + process.nextTick(maybeReadMore_, stream, state); + } + } + __name(maybeReadMore, "maybeReadMore"); + function maybeReadMore_(stream, state) { + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug("maybeReadMore read 0"); + stream.read(0); + if (len === state.length) + break; + } + state.readingMore = false; + } + __name(maybeReadMore_, "maybeReadMore_"); + Readable.prototype._read = function(n) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()")); + }; + Readable.prototype.pipe = function(dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) process.nextTick(endFn); + else src.once("end", endFn); + dest.on("unpipe", onunpipe); + function onunpipe(readable, unpipeInfo) { + debug("onunpipe"); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + __name(onunpipe, "onunpipe"); + function onend() { + debug("onend"); + dest.end(); + } + __name(onend, "onend"); + var ondrain = pipeOnDrain(src); + dest.on("drain", ondrain); + var cleanedUp = false; + function cleanup() { + debug("cleanup"); + dest.removeListener("close", onclose); + dest.removeListener("finish", onfinish); + dest.removeListener("drain", ondrain); + dest.removeListener("error", onerror); + dest.removeListener("unpipe", onunpipe); + src.removeListener("end", onend); + src.removeListener("end", unpipe); + src.removeListener("data", ondata); + cleanedUp = true; + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + __name(cleanup, "cleanup"); + src.on("data", ondata); + function ondata(chunk) { + debug("ondata"); + var ret = dest.write(chunk); + debug("dest.write", ret); + if (ret === false) { + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug("false write response, pause", state.awaitDrain); + state.awaitDrain++; + } + src.pause(); + } + } + __name(ondata, "ondata"); + function onerror(er) { + debug("onerror", er); + unpipe(); + dest.removeListener("error", onerror); + if (EElistenerCount(dest, "error") === 0) errorOrDestroy(dest, er); + } + __name(onerror, "onerror"); + prependListener(dest, "error", onerror); + function onclose() { + dest.removeListener("finish", onfinish); + unpipe(); + } + __name(onclose, "onclose"); + dest.once("close", onclose); + function onfinish() { + debug("onfinish"); + dest.removeListener("close", onclose); + unpipe(); + } + __name(onfinish, "onfinish"); + dest.once("finish", onfinish); + function unpipe() { + debug("unpipe"); + src.unpipe(dest); + } + __name(unpipe, "unpipe"); + dest.emit("pipe", src); + if (!state.flowing) { + debug("pipe resume"); + src.resume(); + } + return dest; + }; + function pipeOnDrain(src) { + return /* @__PURE__ */ __name(function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug("pipeOnDrain", state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, "data")) { + state.flowing = true; + flow(src); + } + }, "pipeOnDrainFunctionResult"); + } + __name(pipeOnDrain, "pipeOnDrain"); + Readable.prototype.unpipe = function(dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; + if (state.pipesCount === 0) return this; + if (state.pipesCount === 1) { + if (dest && dest !== state.pipes) return this; + if (!dest) dest = state.pipes; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit("unpipe", this, unpipeInfo); + return this; + } + if (!dest) { + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0; i < len; i++) dests[i].emit("unpipe", this, { + hasUnpiped: false + }); + return this; + } + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit("unpipe", this, unpipeInfo); + return this; + }; + Readable.prototype.on = function(ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; + if (ev === "data") { + state.readableListening = this.listenerCount("readable") > 0; + if (state.flowing !== false) this.resume(); + } else if (ev === "readable") { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug("on readable", state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this); + } + } + } + return res; + }; + Readable.prototype.addListener = Readable.prototype.on; + Readable.prototype.removeListener = function(ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === "readable") { + process.nextTick(updateReadableListening, this); + } + return res; + }; + Readable.prototype.removeAllListeners = function(ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === "readable" || ev === void 0) { + process.nextTick(updateReadableListening, this); + } + return res; + }; + function updateReadableListening(self2) { + var state = self2._readableState; + state.readableListening = self2.listenerCount("readable") > 0; + if (state.resumeScheduled && !state.paused) { + state.flowing = true; + } else if (self2.listenerCount("data") > 0) { + self2.resume(); + } + } + __name(updateReadableListening, "updateReadableListening"); + function nReadingNextTick(self2) { + debug("readable nexttick read 0"); + self2.read(0); + } + __name(nReadingNextTick, "nReadingNextTick"); + Readable.prototype.resume = function() { + var state = this._readableState; + if (!state.flowing) { + debug("resume"); + state.flowing = !state.readableListening; + resume(this, state); + } + state.paused = false; + return this; + }; + function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process.nextTick(resume_, stream, state); + } + } + __name(resume, "resume"); + function resume_(stream, state) { + debug("resume", state.reading); + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit("resume"); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); + } + __name(resume_, "resume_"); + Readable.prototype.pause = function() { + debug("call pause flowing=%j", this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug("pause"); + this._readableState.flowing = false; + this.emit("pause"); + } + this._readableState.paused = true; + return this; + }; + function flow(stream) { + var state = stream._readableState; + debug("flow", state.flowing); + while (state.flowing && stream.read() !== null) ; + } + __name(flow, "flow"); + Readable.prototype.wrap = function(stream) { + var _this = this; + var state = this._readableState; + var paused = false; + stream.on("end", function() { + debug("wrapped end"); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + _this.push(null); + }); + stream.on("data", function(chunk) { + debug("wrapped data"); + if (state.decoder) chunk = state.decoder.write(chunk); + if (state.objectMode && (chunk === null || chunk === void 0)) return; + else if (!state.objectMode && (!chunk || !chunk.length)) return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + for (var i in stream) { + if (this[i] === void 0 && typeof stream[i] === "function") { + this[i] = (/* @__PURE__ */ __name(function methodWrap(method) { + return /* @__PURE__ */ __name(function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }, "methodWrapReturnFunction"); + }, "methodWrap"))(i); + } + } + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + this._read = function(n2) { + debug("wrapped _read", n2); + if (paused) { + paused = false; + stream.resume(); + } + }; + return this; + }; + if (typeof Symbol === "function") { + Readable.prototype[Symbol.asyncIterator] = function() { + if (createReadableStreamAsyncIterator === void 0) { + createReadableStreamAsyncIterator = require_async_iterator(); + } + return createReadableStreamAsyncIterator(this); + }; + } + Object.defineProperty(Readable.prototype, "readableHighWaterMark", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._readableState.highWaterMark; + }, "get") + }); + Object.defineProperty(Readable.prototype, "readableBuffer", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._readableState && this._readableState.buffer; + }, "get") + }); + Object.defineProperty(Readable.prototype, "readableFlowing", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._readableState.flowing; + }, "get"), + set: /* @__PURE__ */ __name(function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + }, "set") + }); + Readable._fromList = fromList; + Object.defineProperty(Readable.prototype, "readableLength", { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: /* @__PURE__ */ __name(function get() { + return this._readableState.length; + }, "get") + }); + function fromList(n, state) { + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift(); + else if (!n || n >= state.length) { + if (state.decoder) ret = state.buffer.join(""); + else if (state.buffer.length === 1) ret = state.buffer.first(); + else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + ret = state.buffer.consume(n, state.decoder); + } + return ret; + } + __name(fromList, "fromList"); + function endReadable(stream) { + var state = stream._readableState; + debug("endReadable", state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + process.nextTick(endReadableNT, state, stream); + } + } + __name(endReadable, "endReadable"); + function endReadableNT(state, stream) { + debug("endReadableNT", state.endEmitted, state.length); + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit("end"); + if (state.autoDestroy) { + var wState = stream._writableState; + if (!wState || wState.autoDestroy && wState.finished) { + stream.destroy(); + } + } + } + } + __name(endReadableNT, "endReadableNT"); + if (typeof Symbol === "function") { + Readable.from = function(iterable, opts) { + if (from === void 0) { + from = require_from2(); + } + return from(Readable, iterable, opts); + }; + } + function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; + } + __name(indexOf, "indexOf"); + } +}); + +// node_modules/readable-stream/lib/_stream_transform.js +var require_stream_transform = __commonJS({ + "node_modules/readable-stream/lib/_stream_transform.js"(exports2, module2) { + "use strict"; + module2.exports = Transform; + var _require$codes = require_errors().codes; + var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED; + var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK; + var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING; + var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; + var Duplex = require_stream_duplex(); + require_inherits()(Transform, Duplex); + function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + if (cb === null) { + return this.emit("error", new ERR_MULTIPLE_CALLBACK()); + } + ts.writechunk = null; + ts.writecb = null; + if (data != null) + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } + } + __name(afterTransform, "afterTransform"); + function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + this._readableState.needReadable = true; + this._readableState.sync = false; + if (options) { + if (typeof options.transform === "function") this._transform = options.transform; + if (typeof options.flush === "function") this._flush = options.flush; + } + this.on("prefinish", prefinish); + } + __name(Transform, "Transform"); + function prefinish() { + var _this = this; + if (typeof this._flush === "function" && !this._readableState.destroyed) { + this._flush(function(er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } + } + __name(prefinish, "prefinish"); + Transform.prototype.push = function(chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); + }; + Transform.prototype._transform = function(chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()")); + }; + Transform.prototype._write = function(chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } + }; + Transform.prototype._read = function(n) { + var ts = this._transformState; + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + ts.needTransform = true; + } + }; + Transform.prototype._destroy = function(err, cb) { + Duplex.prototype._destroy.call(this, err, function(err2) { + cb(err2); + }); + }; + function done(stream, er, data) { + if (er) return stream.emit("error", er); + if (data != null) + stream.push(data); + if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream.push(null); + } + __name(done, "done"); + } +}); + +// node_modules/readable-stream/lib/_stream_passthrough.js +var require_stream_passthrough = __commonJS({ + "node_modules/readable-stream/lib/_stream_passthrough.js"(exports2, module2) { + "use strict"; + module2.exports = PassThrough; + var Transform = require_stream_transform(); + require_inherits()(PassThrough, Transform); + function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + Transform.call(this, options); + } + __name(PassThrough, "PassThrough"); + PassThrough.prototype._transform = function(chunk, encoding, cb) { + cb(null, chunk); + }; + } +}); + +// node_modules/readable-stream/lib/internal/streams/pipeline.js +var require_pipeline = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports2, module2) { + "use strict"; + var eos; + function once(callback) { + var called = false; + return function() { + if (called) return; + called = true; + callback.apply(void 0, arguments); + }; + } + __name(once, "once"); + var _require$codes = require_errors().codes; + var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS; + var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; + function noop(err) { + if (err) throw err; + } + __name(noop, "noop"); + function isRequest(stream) { + return stream.setHeader && typeof stream.abort === "function"; + } + __name(isRequest, "isRequest"); + function destroyer(stream, reading, writing, callback) { + callback = once(callback); + var closed = false; + stream.on("close", function() { + closed = true; + }); + if (eos === void 0) eos = require_end_of_stream(); + eos(stream, { + readable: reading, + writable: writing + }, function(err) { + if (err) return callback(err); + closed = true; + callback(); + }); + var destroyed = false; + return function(err) { + if (closed) return; + if (destroyed) return; + destroyed = true; + if (isRequest(stream)) return stream.abort(); + if (typeof stream.destroy === "function") return stream.destroy(); + callback(err || new ERR_STREAM_DESTROYED("pipe")); + }; + } + __name(destroyer, "destroyer"); + function call(fn) { + fn(); + } + __name(call, "call"); + function pipe(from, to) { + return from.pipe(to); + } + __name(pipe, "pipe"); + function popCallback(streams) { + if (!streams.length) return noop; + if (typeof streams[streams.length - 1] !== "function") return noop; + return streams.pop(); + } + __name(popCallback, "popCallback"); + function pipeline() { + for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { + streams[_key] = arguments[_key]; + } + var callback = popCallback(streams); + if (Array.isArray(streams[0])) streams = streams[0]; + if (streams.length < 2) { + throw new ERR_MISSING_ARGS("streams"); + } + var error; + var destroys = streams.map(function(stream, i) { + var reading = i < streams.length - 1; + var writing = i > 0; + return destroyer(stream, reading, writing, function(err) { + if (!error) error = err; + if (err) destroys.forEach(call); + if (reading) return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); + } + __name(pipeline, "pipeline"); + module2.exports = pipeline; + } +}); + +// node_modules/readable-stream/readable.js +var require_readable = __commonJS({ + "node_modules/readable-stream/readable.js"(exports2, module2) { + var Stream = require("stream"); + if (process.env.READABLE_STREAM === "disable" && Stream) { + module2.exports = Stream.Readable; + Object.assign(module2.exports, Stream); + module2.exports.Stream = Stream; + } else { + exports2 = module2.exports = require_stream_readable(); + exports2.Stream = Stream || exports2; + exports2.Readable = exports2; + exports2.Writable = require_stream_writable(); + exports2.Duplex = require_stream_duplex(); + exports2.Transform = require_stream_transform(); + exports2.PassThrough = require_stream_passthrough(); + exports2.finished = require_end_of_stream(); + exports2.pipeline = require_pipeline(); + } + } +}); + +// node_modules/buffer-from/index.js +var require_buffer_from = __commonJS({ + "node_modules/buffer-from/index.js"(exports2, module2) { + var toString2 = Object.prototype.toString; + var isModern = typeof Buffer !== "undefined" && typeof Buffer.alloc === "function" && typeof Buffer.allocUnsafe === "function" && typeof Buffer.from === "function"; + function isArrayBuffer(input) { + return toString2.call(input).slice(8, -1) === "ArrayBuffer"; + } + __name(isArrayBuffer, "isArrayBuffer"); + function fromArrayBuffer(obj, byteOffset, length) { + byteOffset >>>= 0; + var maxLength = obj.byteLength - byteOffset; + if (maxLength < 0) { + throw new RangeError("'offset' is out of bounds"); + } + if (length === void 0) { + length = maxLength; + } else { + length >>>= 0; + if (length > maxLength) { + throw new RangeError("'length' is out of bounds"); + } + } + return isModern ? Buffer.from(obj.slice(byteOffset, byteOffset + length)) : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length))); + } + __name(fromArrayBuffer, "fromArrayBuffer"); + function fromString(string, encoding) { + if (typeof encoding !== "string" || encoding === "") { + encoding = "utf8"; + } + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding'); + } + return isModern ? Buffer.from(string, encoding) : new Buffer(string, encoding); + } + __name(fromString, "fromString"); + function bufferFrom(value, encodingOrOffset, length) { + if (typeof value === "number") { + throw new TypeError('"value" argument must not be a number'); + } + if (isArrayBuffer(value)) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof value === "string") { + return fromString(value, encodingOrOffset); + } + return isModern ? Buffer.from(value) : new Buffer(value); + } + __name(bufferFrom, "bufferFrom"); + module2.exports = bufferFrom; + } +}); + +// node_modules/typedarray/index.js +var require_typedarray = __commonJS({ + "node_modules/typedarray/index.js"(exports2) { + var undefined2 = void 0; + var MAX_ARRAY_LENGTH = 1e5; + var ECMAScript = /* @__PURE__ */ (function() { + var opts = Object.prototype.toString, ophop = Object.prototype.hasOwnProperty; + return { + // Class returns internal [[Class]] property, used to avoid cross-frame instanceof issues: + Class: /* @__PURE__ */ __name(function(v) { + return opts.call(v).replace(/^\[object *|\]$/g, ""); + }, "Class"), + HasProperty: /* @__PURE__ */ __name(function(o, p) { + return p in o; + }, "HasProperty"), + HasOwnProperty: /* @__PURE__ */ __name(function(o, p) { + return ophop.call(o, p); + }, "HasOwnProperty"), + IsCallable: /* @__PURE__ */ __name(function(o) { + return typeof o === "function"; + }, "IsCallable"), + ToInt32: /* @__PURE__ */ __name(function(v) { + return v >> 0; + }, "ToInt32"), + ToUint32: /* @__PURE__ */ __name(function(v) { + return v >>> 0; + }, "ToUint32") + }; + })(); + var LN2 = Math.LN2; + var abs = Math.abs; + var floor = Math.floor; + var log = Math.log; + var min = Math.min; + var pow = Math.pow; + var round = Math.round; + function configureProperties(obj) { + if (getOwnPropNames && defineProp) { + var props = getOwnPropNames(obj), i; + for (i = 0; i < props.length; i += 1) { + defineProp(obj, props[i], { + value: obj[props[i]], + writable: false, + enumerable: false, + configurable: false + }); + } + } + } + __name(configureProperties, "configureProperties"); + var defineProp; + if (Object.defineProperty && (function() { + try { + Object.defineProperty({}, "x", {}); + return true; + } catch (e) { + return false; + } + })()) { + defineProp = Object.defineProperty; + } else { + defineProp = /* @__PURE__ */ __name(function(o, p, desc) { + if (!o === Object(o)) throw new TypeError("Object.defineProperty called on non-object"); + if (ECMAScript.HasProperty(desc, "get") && Object.prototype.__defineGetter__) { + Object.prototype.__defineGetter__.call(o, p, desc.get); + } + if (ECMAScript.HasProperty(desc, "set") && Object.prototype.__defineSetter__) { + Object.prototype.__defineSetter__.call(o, p, desc.set); + } + if (ECMAScript.HasProperty(desc, "value")) { + o[p] = desc.value; + } + return o; + }, "defineProp"); + } + var getOwnPropNames = Object.getOwnPropertyNames || function(o) { + if (o !== Object(o)) throw new TypeError("Object.getOwnPropertyNames called on non-object"); + var props = [], p; + for (p in o) { + if (ECMAScript.HasOwnProperty(o, p)) { + props.push(p); + } + } + return props; + }; + function makeArrayAccessors(obj) { + if (!defineProp) { + return; + } + if (obj.length > MAX_ARRAY_LENGTH) throw new RangeError("Array too large for polyfill"); + function makeArrayAccessor(index) { + defineProp(obj, index, { + "get": /* @__PURE__ */ __name(function() { + return obj._getter(index); + }, "get"), + "set": /* @__PURE__ */ __name(function(v) { + obj._setter(index, v); + }, "set"), + enumerable: true, + configurable: false + }); + } + __name(makeArrayAccessor, "makeArrayAccessor"); + var i; + for (i = 0; i < obj.length; i += 1) { + makeArrayAccessor(i); + } + } + __name(makeArrayAccessors, "makeArrayAccessors"); + function as_signed(value, bits) { + var s = 32 - bits; + return value << s >> s; + } + __name(as_signed, "as_signed"); + function as_unsigned(value, bits) { + var s = 32 - bits; + return value << s >>> s; + } + __name(as_unsigned, "as_unsigned"); + function packI8(n) { + return [n & 255]; + } + __name(packI8, "packI8"); + function unpackI8(bytes) { + return as_signed(bytes[0], 8); + } + __name(unpackI8, "unpackI8"); + function packU8(n) { + return [n & 255]; + } + __name(packU8, "packU8"); + function unpackU8(bytes) { + return as_unsigned(bytes[0], 8); + } + __name(unpackU8, "unpackU8"); + function packU8Clamped(n) { + n = round(Number(n)); + return [n < 0 ? 0 : n > 255 ? 255 : n & 255]; + } + __name(packU8Clamped, "packU8Clamped"); + function packI16(n) { + return [n >> 8 & 255, n & 255]; + } + __name(packI16, "packI16"); + function unpackI16(bytes) { + return as_signed(bytes[0] << 8 | bytes[1], 16); + } + __name(unpackI16, "unpackI16"); + function packU16(n) { + return [n >> 8 & 255, n & 255]; + } + __name(packU16, "packU16"); + function unpackU16(bytes) { + return as_unsigned(bytes[0] << 8 | bytes[1], 16); + } + __name(unpackU16, "unpackU16"); + function packI32(n) { + return [n >> 24 & 255, n >> 16 & 255, n >> 8 & 255, n & 255]; + } + __name(packI32, "packI32"); + function unpackI32(bytes) { + return as_signed(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); + } + __name(unpackI32, "unpackI32"); + function packU32(n) { + return [n >> 24 & 255, n >> 16 & 255, n >> 8 & 255, n & 255]; + } + __name(packU32, "packU32"); + function unpackU32(bytes) { + return as_unsigned(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); + } + __name(unpackU32, "unpackU32"); + function packIEEE754(v, ebits, fbits) { + var bias = (1 << ebits - 1) - 1, s, e, f, ln, i, bits, str, bytes; + function roundToEven(n) { + var w = floor(n), f2 = n - w; + if (f2 < 0.5) + return w; + if (f2 > 0.5) + return w + 1; + return w % 2 ? w + 1 : w; + } + __name(roundToEven, "roundToEven"); + if (v !== v) { + e = (1 << ebits) - 1; + f = pow(2, fbits - 1); + s = 0; + } else if (v === Infinity || v === -Infinity) { + e = (1 << ebits) - 1; + f = 0; + s = v < 0 ? 1 : 0; + } else if (v === 0) { + e = 0; + f = 0; + s = 1 / v === -Infinity ? 1 : 0; + } else { + s = v < 0; + v = abs(v); + if (v >= pow(2, 1 - bias)) { + e = min(floor(log(v) / LN2), 1023); + f = roundToEven(v / pow(2, e) * pow(2, fbits)); + if (f / pow(2, fbits) >= 2) { + e = e + 1; + f = 1; + } + if (e > bias) { + e = (1 << ebits) - 1; + f = 0; + } else { + e = e + bias; + f = f - pow(2, fbits); + } + } else { + e = 0; + f = roundToEven(v / pow(2, 1 - bias - fbits)); + } + } + bits = []; + for (i = fbits; i; i -= 1) { + bits.push(f % 2 ? 1 : 0); + f = floor(f / 2); + } + for (i = ebits; i; i -= 1) { + bits.push(e % 2 ? 1 : 0); + e = floor(e / 2); + } + bits.push(s ? 1 : 0); + bits.reverse(); + str = bits.join(""); + bytes = []; + while (str.length) { + bytes.push(parseInt(str.substring(0, 8), 2)); + str = str.substring(8); + } + return bytes; + } + __name(packIEEE754, "packIEEE754"); + function unpackIEEE754(bytes, ebits, fbits) { + var bits = [], i, j, b, str, bias, s, e, f; + for (i = bytes.length; i; i -= 1) { + b = bytes[i - 1]; + for (j = 8; j; j -= 1) { + bits.push(b % 2 ? 1 : 0); + b = b >> 1; + } + } + bits.reverse(); + str = bits.join(""); + bias = (1 << ebits - 1) - 1; + s = parseInt(str.substring(0, 1), 2) ? -1 : 1; + e = parseInt(str.substring(1, 1 + ebits), 2); + f = parseInt(str.substring(1 + ebits), 2); + if (e === (1 << ebits) - 1) { + return f !== 0 ? NaN : s * Infinity; + } else if (e > 0) { + return s * pow(2, e - bias) * (1 + f / pow(2, fbits)); + } else if (f !== 0) { + return s * pow(2, -(bias - 1)) * (f / pow(2, fbits)); + } else { + return s < 0 ? -0 : 0; + } + } + __name(unpackIEEE754, "unpackIEEE754"); + function unpackF64(b) { + return unpackIEEE754(b, 11, 52); + } + __name(unpackF64, "unpackF64"); + function packF64(v) { + return packIEEE754(v, 11, 52); + } + __name(packF64, "packF64"); + function unpackF32(b) { + return unpackIEEE754(b, 8, 23); + } + __name(unpackF32, "unpackF32"); + function packF32(v) { + return packIEEE754(v, 8, 23); + } + __name(packF32, "packF32"); + (function() { + var ArrayBuffer2 = /* @__PURE__ */ __name(function ArrayBuffer3(length) { + length = ECMAScript.ToInt32(length); + if (length < 0) throw new RangeError("ArrayBuffer size is not a small enough positive integer"); + this.byteLength = length; + this._bytes = []; + this._bytes.length = length; + var i; + for (i = 0; i < this.byteLength; i += 1) { + this._bytes[i] = 0; + } + configureProperties(this); + }, "ArrayBuffer"); + exports2.ArrayBuffer = exports2.ArrayBuffer || ArrayBuffer2; + var ArrayBufferView = /* @__PURE__ */ __name(function ArrayBufferView2() { + }, "ArrayBufferView"); + function makeConstructor(bytesPerElement, pack, unpack) { + var ctor; + ctor = /* @__PURE__ */ __name(function(buffer, byteOffset, length) { + var array, sequence, i, s; + if (!arguments.length || typeof arguments[0] === "number") { + this.length = ECMAScript.ToInt32(arguments[0]); + if (length < 0) throw new RangeError("ArrayBufferView size is not a small enough positive integer"); + this.byteLength = this.length * this.BYTES_PER_ELEMENT; + this.buffer = new ArrayBuffer2(this.byteLength); + this.byteOffset = 0; + } else if (typeof arguments[0] === "object" && arguments[0].constructor === ctor) { + array = arguments[0]; + this.length = array.length; + this.byteLength = this.length * this.BYTES_PER_ELEMENT; + this.buffer = new ArrayBuffer2(this.byteLength); + this.byteOffset = 0; + for (i = 0; i < this.length; i += 1) { + this._setter(i, array._getter(i)); + } + } else if (typeof arguments[0] === "object" && !(arguments[0] instanceof ArrayBuffer2 || ECMAScript.Class(arguments[0]) === "ArrayBuffer")) { + sequence = arguments[0]; + this.length = ECMAScript.ToUint32(sequence.length); + this.byteLength = this.length * this.BYTES_PER_ELEMENT; + this.buffer = new ArrayBuffer2(this.byteLength); + this.byteOffset = 0; + for (i = 0; i < this.length; i += 1) { + s = sequence[i]; + this._setter(i, Number(s)); + } + } else if (typeof arguments[0] === "object" && (arguments[0] instanceof ArrayBuffer2 || ECMAScript.Class(arguments[0]) === "ArrayBuffer")) { + this.buffer = buffer; + this.byteOffset = ECMAScript.ToUint32(byteOffset); + if (this.byteOffset > this.buffer.byteLength) { + throw new RangeError("byteOffset out of range"); + } + if (this.byteOffset % this.BYTES_PER_ELEMENT) { + throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size."); + } + if (arguments.length < 3) { + this.byteLength = this.buffer.byteLength - this.byteOffset; + if (this.byteLength % this.BYTES_PER_ELEMENT) { + throw new RangeError("length of buffer minus byteOffset not a multiple of the element size"); + } + this.length = this.byteLength / this.BYTES_PER_ELEMENT; + } else { + this.length = ECMAScript.ToUint32(length); + this.byteLength = this.length * this.BYTES_PER_ELEMENT; + } + if (this.byteOffset + this.byteLength > this.buffer.byteLength) { + throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); + } + } else { + throw new TypeError("Unexpected argument type(s)"); + } + this.constructor = ctor; + configureProperties(this); + makeArrayAccessors(this); + }, "ctor"); + ctor.prototype = new ArrayBufferView(); + ctor.prototype.BYTES_PER_ELEMENT = bytesPerElement; + ctor.prototype._pack = pack; + ctor.prototype._unpack = unpack; + ctor.BYTES_PER_ELEMENT = bytesPerElement; + ctor.prototype._getter = function(index) { + if (arguments.length < 1) throw new SyntaxError("Not enough arguments"); + index = ECMAScript.ToUint32(index); + if (index >= this.length) { + return undefined2; + } + var bytes = [], i, o; + for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; i < this.BYTES_PER_ELEMENT; i += 1, o += 1) { + bytes.push(this.buffer._bytes[o]); + } + return this._unpack(bytes); + }; + ctor.prototype.get = ctor.prototype._getter; + ctor.prototype._setter = function(index, value) { + if (arguments.length < 2) throw new SyntaxError("Not enough arguments"); + index = ECMAScript.ToUint32(index); + if (index >= this.length) { + return undefined2; + } + var bytes = this._pack(value), i, o; + for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; i < this.BYTES_PER_ELEMENT; i += 1, o += 1) { + this.buffer._bytes[o] = bytes[i]; + } + }; + ctor.prototype.set = function(index, value) { + if (arguments.length < 1) throw new SyntaxError("Not enough arguments"); + var array, sequence, offset, len, i, s, d, byteOffset, byteLength, tmp; + if (typeof arguments[0] === "object" && arguments[0].constructor === this.constructor) { + array = arguments[0]; + offset = ECMAScript.ToUint32(arguments[1]); + if (offset + array.length > this.length) { + throw new RangeError("Offset plus length of array is out of range"); + } + byteOffset = this.byteOffset + offset * this.BYTES_PER_ELEMENT; + byteLength = array.length * this.BYTES_PER_ELEMENT; + if (array.buffer === this.buffer) { + tmp = []; + for (i = 0, s = array.byteOffset; i < byteLength; i += 1, s += 1) { + tmp[i] = array.buffer._bytes[s]; + } + for (i = 0, d = byteOffset; i < byteLength; i += 1, d += 1) { + this.buffer._bytes[d] = tmp[i]; + } + } else { + for (i = 0, s = array.byteOffset, d = byteOffset; i < byteLength; i += 1, s += 1, d += 1) { + this.buffer._bytes[d] = array.buffer._bytes[s]; + } + } + } else if (typeof arguments[0] === "object" && typeof arguments[0].length !== "undefined") { + sequence = arguments[0]; + len = ECMAScript.ToUint32(sequence.length); + offset = ECMAScript.ToUint32(arguments[1]); + if (offset + len > this.length) { + throw new RangeError("Offset plus length of array is out of range"); + } + for (i = 0; i < len; i += 1) { + s = sequence[i]; + this._setter(offset + i, Number(s)); + } + } else { + throw new TypeError("Unexpected argument type(s)"); + } + }; + ctor.prototype.subarray = function(start, end) { + function clamp(v, min2, max) { + return v < min2 ? min2 : v > max ? max : v; + } + __name(clamp, "clamp"); + start = ECMAScript.ToInt32(start); + end = ECMAScript.ToInt32(end); + if (arguments.length < 1) { + start = 0; + } + if (arguments.length < 2) { + end = this.length; + } + if (start < 0) { + start = this.length + start; + } + if (end < 0) { + end = this.length + end; + } + start = clamp(start, 0, this.length); + end = clamp(end, 0, this.length); + var len = end - start; + if (len < 0) { + len = 0; + } + return new this.constructor( + this.buffer, + this.byteOffset + start * this.BYTES_PER_ELEMENT, + len + ); + }; + return ctor; + } + __name(makeConstructor, "makeConstructor"); + var Int8Array2 = makeConstructor(1, packI8, unpackI8); + var Uint8Array2 = makeConstructor(1, packU8, unpackU8); + var Uint8ClampedArray2 = makeConstructor(1, packU8Clamped, unpackU8); + var Int16Array2 = makeConstructor(2, packI16, unpackI16); + var Uint16Array2 = makeConstructor(2, packU16, unpackU16); + var Int32Array2 = makeConstructor(4, packI32, unpackI32); + var Uint32Array2 = makeConstructor(4, packU32, unpackU32); + var Float32Array2 = makeConstructor(4, packF32, unpackF32); + var Float64Array2 = makeConstructor(8, packF64, unpackF64); + exports2.Int8Array = exports2.Int8Array || Int8Array2; + exports2.Uint8Array = exports2.Uint8Array || Uint8Array2; + exports2.Uint8ClampedArray = exports2.Uint8ClampedArray || Uint8ClampedArray2; + exports2.Int16Array = exports2.Int16Array || Int16Array2; + exports2.Uint16Array = exports2.Uint16Array || Uint16Array2; + exports2.Int32Array = exports2.Int32Array || Int32Array2; + exports2.Uint32Array = exports2.Uint32Array || Uint32Array2; + exports2.Float32Array = exports2.Float32Array || Float32Array2; + exports2.Float64Array = exports2.Float64Array || Float64Array2; + })(); + (function() { + function r(array, index) { + return ECMAScript.IsCallable(array.get) ? array.get(index) : array[index]; + } + __name(r, "r"); + var IS_BIG_ENDIAN = (function() { + var u16array = new exports2.Uint16Array([4660]), u8array = new exports2.Uint8Array(u16array.buffer); + return r(u8array, 0) === 18; + })(); + var DataView2 = /* @__PURE__ */ __name(function DataView3(buffer, byteOffset, byteLength) { + if (arguments.length === 0) { + buffer = new exports2.ArrayBuffer(0); + } else if (!(buffer instanceof exports2.ArrayBuffer || ECMAScript.Class(buffer) === "ArrayBuffer")) { + throw new TypeError("TypeError"); + } + this.buffer = buffer || new exports2.ArrayBuffer(0); + this.byteOffset = ECMAScript.ToUint32(byteOffset); + if (this.byteOffset > this.buffer.byteLength) { + throw new RangeError("byteOffset out of range"); + } + if (arguments.length < 3) { + this.byteLength = this.buffer.byteLength - this.byteOffset; + } else { + this.byteLength = ECMAScript.ToUint32(byteLength); + } + if (this.byteOffset + this.byteLength > this.buffer.byteLength) { + throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); + } + configureProperties(this); + }, "DataView"); + function makeGetter(arrayType) { + return function(byteOffset, littleEndian) { + byteOffset = ECMAScript.ToUint32(byteOffset); + if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) { + throw new RangeError("Array index out of range"); + } + byteOffset += this.byteOffset; + var uint8Array = new exports2.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT), bytes = [], i; + for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) { + bytes.push(r(uint8Array, i)); + } + if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) { + bytes.reverse(); + } + return r(new arrayType(new exports2.Uint8Array(bytes).buffer), 0); + }; + } + __name(makeGetter, "makeGetter"); + DataView2.prototype.getUint8 = makeGetter(exports2.Uint8Array); + DataView2.prototype.getInt8 = makeGetter(exports2.Int8Array); + DataView2.prototype.getUint16 = makeGetter(exports2.Uint16Array); + DataView2.prototype.getInt16 = makeGetter(exports2.Int16Array); + DataView2.prototype.getUint32 = makeGetter(exports2.Uint32Array); + DataView2.prototype.getInt32 = makeGetter(exports2.Int32Array); + DataView2.prototype.getFloat32 = makeGetter(exports2.Float32Array); + DataView2.prototype.getFloat64 = makeGetter(exports2.Float64Array); + function makeSetter(arrayType) { + return function(byteOffset, value, littleEndian) { + byteOffset = ECMAScript.ToUint32(byteOffset); + if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) { + throw new RangeError("Array index out of range"); + } + var typeArray = new arrayType([value]), byteArray = new exports2.Uint8Array(typeArray.buffer), bytes = [], i, byteView; + for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) { + bytes.push(r(byteArray, i)); + } + if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) { + bytes.reverse(); + } + byteView = new exports2.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT); + byteView.set(bytes); + }; + } + __name(makeSetter, "makeSetter"); + DataView2.prototype.setUint8 = makeSetter(exports2.Uint8Array); + DataView2.prototype.setInt8 = makeSetter(exports2.Int8Array); + DataView2.prototype.setUint16 = makeSetter(exports2.Uint16Array); + DataView2.prototype.setInt16 = makeSetter(exports2.Int16Array); + DataView2.prototype.setUint32 = makeSetter(exports2.Uint32Array); + DataView2.prototype.setInt32 = makeSetter(exports2.Int32Array); + DataView2.prototype.setFloat32 = makeSetter(exports2.Float32Array); + DataView2.prototype.setFloat64 = makeSetter(exports2.Float64Array); + exports2.DataView = exports2.DataView || DataView2; + })(); + } +}); + +// node_modules/concat-stream/index.js +var require_concat_stream = __commonJS({ + "node_modules/concat-stream/index.js"(exports2, module2) { + var Writable = require_readable().Writable; + var inherits = require_inherits(); + var bufferFrom = require_buffer_from(); + if (typeof Uint8Array === "undefined") { + U8 = require_typedarray().Uint8Array; + } else { + U8 = Uint8Array; + } + var U8; + function ConcatStream(opts, cb) { + if (!(this instanceof ConcatStream)) return new ConcatStream(opts, cb); + if (typeof opts === "function") { + cb = opts; + opts = {}; + } + if (!opts) opts = {}; + var encoding = opts.encoding; + var shouldInferEncoding = false; + if (!encoding) { + shouldInferEncoding = true; + } else { + encoding = String(encoding).toLowerCase(); + if (encoding === "u8" || encoding === "uint8") { + encoding = "uint8array"; + } + } + Writable.call(this, { objectMode: true }); + this.encoding = encoding; + this.shouldInferEncoding = shouldInferEncoding; + if (cb) this.on("finish", function() { + cb(this.getBody()); + }); + this.body = []; + } + __name(ConcatStream, "ConcatStream"); + module2.exports = ConcatStream; + inherits(ConcatStream, Writable); + ConcatStream.prototype._write = function(chunk, enc, next) { + this.body.push(chunk); + next(); + }; + ConcatStream.prototype.inferEncoding = function(buff) { + var firstBuffer = buff === void 0 ? this.body[0] : buff; + if (Buffer.isBuffer(firstBuffer)) return "buffer"; + if (typeof Uint8Array !== "undefined" && firstBuffer instanceof Uint8Array) return "uint8array"; + if (Array.isArray(firstBuffer)) return "array"; + if (typeof firstBuffer === "string") return "string"; + if (Object.prototype.toString.call(firstBuffer) === "[object Object]") return "object"; + return "buffer"; + }; + ConcatStream.prototype.getBody = function() { + if (!this.encoding && this.body.length === 0) return []; + if (this.shouldInferEncoding) this.encoding = this.inferEncoding(); + if (this.encoding === "array") return arrayConcat(this.body); + if (this.encoding === "string") return stringConcat(this.body); + if (this.encoding === "buffer") return bufferConcat(this.body); + if (this.encoding === "uint8array") return u8Concat(this.body); + return this.body; + }; + function isArrayish(arr) { + return /Array\]$/.test(Object.prototype.toString.call(arr)); + } + __name(isArrayish, "isArrayish"); + function isBufferish(p) { + return typeof p === "string" || isArrayish(p) || p && typeof p.subarray === "function"; + } + __name(isBufferish, "isBufferish"); + function stringConcat(parts) { + var strings = []; + var needsToString = false; + for (var i = 0; i < parts.length; i++) { + var p = parts[i]; + if (typeof p === "string") { + strings.push(p); + } else if (Buffer.isBuffer(p)) { + strings.push(p); + } else if (isBufferish(p)) { + strings.push(bufferFrom(p)); + } else { + strings.push(bufferFrom(String(p))); + } + } + if (Buffer.isBuffer(parts[0])) { + strings = Buffer.concat(strings); + strings = strings.toString("utf8"); + } else { + strings = strings.join(""); + } + return strings; + } + __name(stringConcat, "stringConcat"); + function bufferConcat(parts) { + var bufs = []; + for (var i = 0; i < parts.length; i++) { + var p = parts[i]; + if (Buffer.isBuffer(p)) { + bufs.push(p); + } else if (isBufferish(p)) { + bufs.push(bufferFrom(p)); + } else { + bufs.push(bufferFrom(String(p))); + } + } + return Buffer.concat(bufs); + } + __name(bufferConcat, "bufferConcat"); + function arrayConcat(parts) { + var res = []; + for (var i = 0; i < parts.length; i++) { + res.push.apply(res, parts[i]); + } + return res; + } + __name(arrayConcat, "arrayConcat"); + function u8Concat(parts) { + var len = 0; + for (var i = 0; i < parts.length; i++) { + if (typeof parts[i] === "string") { + parts[i] = bufferFrom(parts[i]); + } + len += parts[i].length; + } + var u8 = new U8(len); + for (var i = 0, offset = 0; i < parts.length; i++) { + var part = parts[i]; + for (var j = 0; j < part.length; j++) { + u8[offset++] = part[j]; + } + } + return u8; + } + __name(u8Concat, "u8Concat"); + } +}); + +// node_modules/multer/storage/memory.js +var require_memory = __commonJS({ + "node_modules/multer/storage/memory.js"(exports2, module2) { + var concat = require_concat_stream(); + function MemoryStorage(opts) { + } + __name(MemoryStorage, "MemoryStorage"); + MemoryStorage.prototype._handleFile = /* @__PURE__ */ __name(function _handleFile(req, file, cb) { + file.stream.pipe(concat({ encoding: "buffer" }, function(data) { + cb(null, { + buffer: data, + size: data.length + }); + })); + }, "_handleFile"); + MemoryStorage.prototype._removeFile = /* @__PURE__ */ __name(function _removeFile(req, file, cb) { + delete file.buffer; + cb(null); + }, "_removeFile"); + module2.exports = function(opts) { + return new MemoryStorage(opts); + }; + } +}); + +// node_modules/multer/index.js +var require_multer = __commonJS({ + "node_modules/multer/index.js"(exports2, module2) { + var makeMiddleware = require_make_middleware(); + var diskStorage = require_disk(); + var memoryStorage = require_memory(); + var MulterError = require_multer_error(); + function allowAll(req, file, cb) { + cb(null, true); + } + __name(allowAll, "allowAll"); + function Multer(options) { + if (options.storage) { + this.storage = options.storage; + } else if (options.dest) { + this.storage = diskStorage({ destination: options.dest }); + } else { + this.storage = memoryStorage(); + } + this.limits = options.limits; + this.preservePath = options.preservePath; + this.defParamCharset = options.defParamCharset || "latin1"; + this.fileFilter = options.fileFilter || allowAll; + } + __name(Multer, "Multer"); + Multer.prototype._makeMiddleware = function(fields, fileStrategy) { + function setup() { + var fileFilter = this.fileFilter; + var filesLeft = /* @__PURE__ */ Object.create(null); + fields.forEach(function(field) { + if (typeof field.maxCount === "number") { + filesLeft[field.name] = field.maxCount; + } else { + filesLeft[field.name] = Infinity; + } + }); + function wrappedFileFilter(req, file, cb) { + if ((filesLeft[file.fieldname] || 0) <= 0) { + return cb(new MulterError("LIMIT_UNEXPECTED_FILE", file.fieldname)); + } + filesLeft[file.fieldname] -= 1; + fileFilter(req, file, cb); + } + __name(wrappedFileFilter, "wrappedFileFilter"); + return { + limits: this.limits, + preservePath: this.preservePath, + defParamCharset: this.defParamCharset, + storage: this.storage, + fileFilter: wrappedFileFilter, + fileStrategy + }; + } + __name(setup, "setup"); + return makeMiddleware(setup.bind(this)); + }; + Multer.prototype.single = function(name) { + return this._makeMiddleware([{ name, maxCount: 1 }], "VALUE"); + }; + Multer.prototype.array = function(name, maxCount) { + return this._makeMiddleware([{ name, maxCount }], "ARRAY"); + }; + Multer.prototype.fields = function(fields) { + return this._makeMiddleware(fields, "OBJECT"); + }; + Multer.prototype.none = function() { + return this._makeMiddleware([], "NONE"); + }; + Multer.prototype.any = function() { + function setup() { + return { + limits: this.limits, + preservePath: this.preservePath, + defParamCharset: this.defParamCharset, + storage: this.storage, + fileFilter: this.fileFilter, + fileStrategy: "ARRAY" + }; + } + __name(setup, "setup"); + return makeMiddleware(setup.bind(this)); + }; + function multer(options) { + if (options === void 0) { + return new Multer({}); + } + if (typeof options === "object" && options !== null) { + return new Multer(options); + } + throw new TypeError("Expected object for argument options"); + } + __name(multer, "multer"); + module2.exports = multer; + module2.exports.diskStorage = diskStorage; + module2.exports.memoryStorage = memoryStorage; + module2.exports.MulterError = MulterError; + } +}); + +// node_modules/@nestjs/platform-express/multer/files.constants.js +var require_files_constants = __commonJS({ + "node_modules/@nestjs/platform-express/multer/files.constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MULTER_MODULE_OPTIONS = void 0; + exports2.MULTER_MODULE_OPTIONS = "MULTER_MODULE_OPTIONS"; + } +}); + +// node_modules/@nestjs/platform-express/multer/multer/multer.constants.js +var require_multer_constants = __commonJS({ + "node_modules/@nestjs/platform-express/multer/multer/multer.constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.busboyExceptions = exports2.multerExceptions = void 0; + exports2.multerExceptions = { + // from https://github.com/expressjs/multer/blob/master/lib/multer-error.js + LIMIT_PART_COUNT: "Too many parts", + LIMIT_FILE_SIZE: "File too large", + LIMIT_FILE_COUNT: "Too many files", + LIMIT_FIELD_KEY: "Field name too long", + LIMIT_FIELD_VALUE: "Field value too long", + LIMIT_FIELD_COUNT: "Too many fields", + LIMIT_UNEXPECTED_FILE: "Unexpected field", + MISSING_FIELD_NAME: "Field name missing" + }; + exports2.busboyExceptions = { + // from https://github.com/mscdex/busboy/blob/master/lib/types/multipart.js + MULTIPART_BOUNDARY_NOT_FOUND: "Multipart: Boundary not found", + MULTIPART_MALFORMED_PART_HEADER: "Malformed part header", + MULTIPART_UNEXPECTED_END_OF_FORM: "Unexpected end of form", + MULTIPART_UNEXPECTED_END_OF_FILE: "Unexpected end of file" + }; + } +}); + +// node_modules/@nestjs/platform-express/multer/multer/multer.utils.js +var require_multer_utils = __commonJS({ + "node_modules/@nestjs/platform-express/multer/multer/multer.utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.transformException = transformException; + var common_12 = require_common(); + var multer_constants_1 = require_multer_constants(); + function transformException(error) { + if (!error || error instanceof common_12.HttpException) { + return error; + } + switch (error.message) { + case multer_constants_1.multerExceptions.LIMIT_FILE_SIZE: + return new common_12.PayloadTooLargeException(error.message); + case multer_constants_1.multerExceptions.LIMIT_FILE_COUNT: + case multer_constants_1.multerExceptions.LIMIT_FIELD_KEY: + case multer_constants_1.multerExceptions.LIMIT_FIELD_VALUE: + case multer_constants_1.multerExceptions.LIMIT_FIELD_COUNT: + case multer_constants_1.multerExceptions.LIMIT_UNEXPECTED_FILE: + case multer_constants_1.multerExceptions.LIMIT_PART_COUNT: + case multer_constants_1.multerExceptions.MISSING_FIELD_NAME: + if (error.field) { + return new common_12.BadRequestException(`${error.message} - ${error.field}`); + } + return new common_12.BadRequestException(error.message); + case multer_constants_1.busboyExceptions.MULTIPART_BOUNDARY_NOT_FOUND: + return new common_12.BadRequestException(error.message); + case multer_constants_1.busboyExceptions.MULTIPART_MALFORMED_PART_HEADER: + case multer_constants_1.busboyExceptions.MULTIPART_UNEXPECTED_END_OF_FORM: + case multer_constants_1.busboyExceptions.MULTIPART_UNEXPECTED_END_OF_FILE: + return new common_12.BadRequestException(`Multipart: ${error.message}`); + } + return error; + } + __name(transformException, "transformException"); + } +}); + +// node_modules/@nestjs/platform-express/multer/interceptors/any-files.interceptor.js +var require_any_files_interceptor = __commonJS({ + "node_modules/@nestjs/platform-express/multer/interceptors/any-files.interceptor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AnyFilesInterceptor = AnyFilesInterceptor; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var multer = require_multer(); + var files_constants_1 = require_files_constants(); + var multer_utils_1 = require_multer_utils(); + function AnyFilesInterceptor(localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + constructor(options = {}) { + this.multer = multer({ + ...options, + ...localOptions + }); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.any()(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = (0, multer_utils_1.transformException)(err); + return reject(error); + } + resolve(); + })); + return next.handle(); + } + }; + MixinInterceptor = tslib_1.__decorate([ + tslib_1.__param(0, (0, common_12.Optional)()), + tslib_1.__param(0, (0, common_12.Inject)(files_constants_1.MULTER_MODULE_OPTIONS)), + tslib_1.__metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = (0, common_12.mixin)(MixinInterceptor); + return Interceptor; + } + __name(AnyFilesInterceptor, "AnyFilesInterceptor"); + } +}); + +// node_modules/@nestjs/platform-express/multer/interceptors/file-fields.interceptor.js +var require_file_fields_interceptor = __commonJS({ + "node_modules/@nestjs/platform-express/multer/interceptors/file-fields.interceptor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.FileFieldsInterceptor = FileFieldsInterceptor; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var multer = require_multer(); + var files_constants_1 = require_files_constants(); + var multer_utils_1 = require_multer_utils(); + function FileFieldsInterceptor(uploadFields, localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + constructor(options = {}) { + this.multer = multer({ + ...options, + ...localOptions + }); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.fields(uploadFields)(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = (0, multer_utils_1.transformException)(err); + return reject(error); + } + resolve(); + })); + return next.handle(); + } + }; + MixinInterceptor = tslib_1.__decorate([ + tslib_1.__param(0, (0, common_12.Optional)()), + tslib_1.__param(0, (0, common_12.Inject)(files_constants_1.MULTER_MODULE_OPTIONS)), + tslib_1.__metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = (0, common_12.mixin)(MixinInterceptor); + return Interceptor; + } + __name(FileFieldsInterceptor, "FileFieldsInterceptor"); + } +}); + +// node_modules/@nestjs/platform-express/multer/interceptors/file.interceptor.js +var require_file_interceptor = __commonJS({ + "node_modules/@nestjs/platform-express/multer/interceptors/file.interceptor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.FileInterceptor = FileInterceptor; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var multer = require_multer(); + var files_constants_1 = require_files_constants(); + var multer_utils_1 = require_multer_utils(); + function FileInterceptor(fieldName, localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + constructor(options = {}) { + this.multer = multer({ + ...options, + ...localOptions + }); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.single(fieldName)(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = (0, multer_utils_1.transformException)(err); + return reject(error); + } + resolve(); + })); + return next.handle(); + } + }; + MixinInterceptor = tslib_1.__decorate([ + tslib_1.__param(0, (0, common_12.Optional)()), + tslib_1.__param(0, (0, common_12.Inject)(files_constants_1.MULTER_MODULE_OPTIONS)), + tslib_1.__metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = (0, common_12.mixin)(MixinInterceptor); + return Interceptor; + } + __name(FileInterceptor, "FileInterceptor"); + } +}); + +// node_modules/@nestjs/platform-express/multer/interceptors/files.interceptor.js +var require_files_interceptor = __commonJS({ + "node_modules/@nestjs/platform-express/multer/interceptors/files.interceptor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.FilesInterceptor = FilesInterceptor; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var multer = require_multer(); + var files_constants_1 = require_files_constants(); + var multer_utils_1 = require_multer_utils(); + function FilesInterceptor(fieldName, maxCount, localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + constructor(options = {}) { + this.multer = multer({ + ...options, + ...localOptions + }); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.array(fieldName, maxCount)(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = (0, multer_utils_1.transformException)(err); + return reject(error); + } + resolve(); + })); + return next.handle(); + } + }; + MixinInterceptor = tslib_1.__decorate([ + tslib_1.__param(0, (0, common_12.Optional)()), + tslib_1.__param(0, (0, common_12.Inject)(files_constants_1.MULTER_MODULE_OPTIONS)), + tslib_1.__metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = (0, common_12.mixin)(MixinInterceptor); + return Interceptor; + } + __name(FilesInterceptor, "FilesInterceptor"); + } +}); + +// node_modules/@nestjs/platform-express/multer/interceptors/no-files.interceptor.js +var require_no_files_interceptor = __commonJS({ + "node_modules/@nestjs/platform-express/multer/interceptors/no-files.interceptor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NoFilesInterceptor = NoFilesInterceptor; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var multer = require_multer(); + var files_constants_1 = require_files_constants(); + var multer_utils_1 = require_multer_utils(); + function NoFilesInterceptor(localOptions) { + let MixinInterceptor = class MixinInterceptor { + static { + __name(this, "MixinInterceptor"); + } + constructor(options = {}) { + this.multer = multer({ + ...options, + ...localOptions + }); + } + async intercept(context, next) { + const ctx = context.switchToHttp(); + await new Promise((resolve, reject) => this.multer.none()(ctx.getRequest(), ctx.getResponse(), (err) => { + if (err) { + const error = (0, multer_utils_1.transformException)(err); + return reject(error); + } + resolve(); + })); + return next.handle(); + } + }; + MixinInterceptor = tslib_1.__decorate([ + tslib_1.__param(0, (0, common_12.Optional)()), + tslib_1.__param(0, (0, common_12.Inject)(files_constants_1.MULTER_MODULE_OPTIONS)), + tslib_1.__metadata("design:paramtypes", [Object]) + ], MixinInterceptor); + const Interceptor = (0, common_12.mixin)(MixinInterceptor); + return Interceptor; + } + __name(NoFilesInterceptor, "NoFilesInterceptor"); + } +}); + +// node_modules/@nestjs/platform-express/multer/interceptors/index.js +var require_interceptors2 = __commonJS({ + "node_modules/@nestjs/platform-express/multer/interceptors/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_any_files_interceptor(), exports2); + tslib_1.__exportStar(require_file_fields_interceptor(), exports2); + tslib_1.__exportStar(require_file_interceptor(), exports2); + tslib_1.__exportStar(require_files_interceptor(), exports2); + tslib_1.__exportStar(require_no_files_interceptor(), exports2); + } +}); + +// node_modules/@nestjs/platform-express/multer/interfaces/files-upload-module.interface.js +var require_files_upload_module_interface = __commonJS({ + "node_modules/@nestjs/platform-express/multer/interfaces/files-upload-module.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/platform-express/multer/interfaces/index.js +var require_interfaces5 = __commonJS({ + "node_modules/@nestjs/platform-express/multer/interfaces/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_files_upload_module_interface(), exports2); + } +}); + +// node_modules/@nestjs/platform-express/multer/multer.constants.js +var require_multer_constants2 = __commonJS({ + "node_modules/@nestjs/platform-express/multer/multer.constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MULTER_MODULE_ID = void 0; + exports2.MULTER_MODULE_ID = "MULTER_MODULE_ID"; + } +}); + +// node_modules/@nestjs/platform-express/multer/multer.module.js +var require_multer_module = __commonJS({ + "node_modules/@nestjs/platform-express/multer/multer.module.js"(exports2) { + "use strict"; + var MulterModule_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MulterModule = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var common_12 = require_common(); + var random_string_generator_util_1 = require_random_string_generator_util(); + var files_constants_1 = require_files_constants(); + var multer_constants_1 = require_multer_constants2(); + var MulterModule = MulterModule_1 = class MulterModule { + static { + __name(this, "MulterModule"); + } + static register(options = {}) { + return { + module: MulterModule_1, + providers: [ + { provide: files_constants_1.MULTER_MODULE_OPTIONS, useFactory: /* @__PURE__ */ __name(() => options, "useFactory") }, + { + provide: multer_constants_1.MULTER_MODULE_ID, + useValue: (0, random_string_generator_util_1.randomStringGenerator)() + } + ], + exports: [files_constants_1.MULTER_MODULE_OPTIONS] + }; + } + static registerAsync(options) { + return { + module: MulterModule_1, + imports: options.imports, + providers: [ + ...this.createAsyncProviders(options), + { + provide: multer_constants_1.MULTER_MODULE_ID, + useValue: (0, random_string_generator_util_1.randomStringGenerator)() + } + ], + exports: [files_constants_1.MULTER_MODULE_OPTIONS] + }; + } + static createAsyncProviders(options) { + if (options.useExisting || options.useFactory) { + return [this.createAsyncOptionsProvider(options)]; + } + return [ + this.createAsyncOptionsProvider(options), + { + provide: options.useClass, + useClass: options.useClass + } + ]; + } + static createAsyncOptionsProvider(options) { + if (options.useFactory) { + return { + provide: files_constants_1.MULTER_MODULE_OPTIONS, + useFactory: options.useFactory, + inject: options.inject || [] + }; + } + return { + provide: files_constants_1.MULTER_MODULE_OPTIONS, + useFactory: /* @__PURE__ */ __name(async (optionsFactory) => optionsFactory.createMulterOptions(), "useFactory"), + inject: [options.useExisting || options.useClass] + }; + } + }; + exports2.MulterModule = MulterModule; + exports2.MulterModule = MulterModule = MulterModule_1 = tslib_1.__decorate([ + (0, common_12.Module)({}) + ], MulterModule); + } +}); + +// node_modules/@nestjs/platform-express/multer/index.js +var require_multer2 = __commonJS({ + "node_modules/@nestjs/platform-express/multer/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_interceptors2(), exports2); + tslib_1.__exportStar(require_interfaces5(), exports2); + tslib_1.__exportStar(require_multer_module(), exports2); + } +}); + +// node_modules/@nestjs/platform-express/index.js +var require_platform_express = __commonJS({ + "node_modules/@nestjs/platform-express/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_adapters2(), exports2); + tslib_1.__exportStar(require_interfaces4(), exports2); + tslib_1.__exportStar(require_multer2(), exports2); + } +}); + +// node_modules/@nestjs/core/nest-factory.js +var require_nest_factory = __commonJS({ + "node_modules/@nestjs/core/nest-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NestFactory = exports2.NestFactoryStatic = void 0; + var console_logger_service_1 = require_console_logger_service(); + var logger_service_1 = require_logger_service(); + var load_package_util_1 = require_load_package_util(); + var shared_utils_1 = require_shared_utils(); + var application_config_1 = require_application_config(); + var constants_1 = require_constants(); + var exceptions_zone_1 = require_exceptions_zone(); + var load_adapter_1 = require_load_adapter(); + var rethrow_1 = require_rethrow(); + var container_1 = require_container2(); + var injector_1 = require_injector(); + var instance_loader_1 = require_instance_loader(); + var graph_inspector_1 = require_graph_inspector(); + var noop_graph_inspector_1 = require_noop_graph_inspector(); + var uuid_factory_1 = require_uuid_factory(); + var metadata_scanner_1 = require_metadata_scanner(); + var nest_application_1 = require_nest_application(); + var nest_application_context_1 = require_nest_application_context(); + var scanner_1 = require_scanner(); + var NestFactoryStatic = class { + static { + __name(this, "NestFactoryStatic"); + } + constructor() { + this.logger = new logger_service_1.Logger("NestFactory", { + timestamp: true + }); + this.abortOnError = true; + this.autoFlushLogs = false; + } + async create(moduleCls, serverOrOptions, options) { + const [httpServer, appOptions] = this.isHttpServer(serverOrOptions) ? [serverOrOptions, options] : [this.createHttpAdapter(), serverOrOptions]; + const applicationConfig = new application_config_1.ApplicationConfig(); + const container = new container_1.NestContainer(applicationConfig, appOptions); + const graphInspector = this.createGraphInspector(appOptions, container); + this.setAbortOnError(serverOrOptions, options); + this.registerLoggerConfiguration(appOptions); + await this.initialize(moduleCls, container, graphInspector, applicationConfig, appOptions, httpServer); + const instance = new nest_application_1.NestApplication(container, httpServer, applicationConfig, graphInspector, appOptions); + const target = this.createNestInstance(instance); + return this.createAdapterProxy(target, httpServer); + } + /** + * Creates an instance of NestMicroservice. + * + * @param moduleCls Entry (root) application module class + * @param options Optional microservice configuration + * + * @returns A promise that, when resolved, + * contains a reference to the NestMicroservice instance. + */ + async createMicroservice(moduleCls, options) { + const { NestMicroservice } = (0, load_package_util_1.loadPackage)("@nestjs/microservices", "NestFactory", () => require("@nestjs/microservices")); + const applicationConfig = new application_config_1.ApplicationConfig(); + const container = new container_1.NestContainer(applicationConfig, options); + const graphInspector = this.createGraphInspector(options, container); + this.setAbortOnError(options); + this.registerLoggerConfiguration(options); + await this.initialize(moduleCls, container, graphInspector, applicationConfig, options); + return this.createNestInstance(new NestMicroservice(container, options, graphInspector, applicationConfig)); + } + /** + * Creates an instance of NestApplicationContext. + * + * @param moduleCls Entry (root) application module class + * @param options Optional Nest application configuration + * + * @returns A promise that, when resolved, + * contains a reference to the NestApplicationContext instance. + */ + async createApplicationContext(moduleCls, options) { + const applicationConfig = new application_config_1.ApplicationConfig(); + const container = new container_1.NestContainer(applicationConfig, options); + const graphInspector = this.createGraphInspector(options, container); + this.setAbortOnError(options); + this.registerLoggerConfiguration(options); + await this.initialize(moduleCls, container, graphInspector, applicationConfig, options); + const modules = container.getModules().values(); + const root = modules.next().value; + const context = this.createNestInstance(new nest_application_context_1.NestApplicationContext(container, options, root)); + if (this.autoFlushLogs) { + context.flushLogsOnOverride(); + } + return context.init(); + } + createNestInstance(instance) { + return this.createProxy(instance); + } + async initialize(module3, container, graphInspector, config = new application_config_1.ApplicationConfig(), options = {}, httpServer = null) { + uuid_factory_1.UuidFactory.mode = options.snapshot ? uuid_factory_1.UuidFactoryMode.Deterministic : uuid_factory_1.UuidFactoryMode.Random; + const injector = new injector_1.Injector({ + preview: options.preview, + snapshot: options.snapshot, + instanceDecorator: options.instrument?.instanceDecorator + }); + const instanceLoader = new instance_loader_1.InstanceLoader(container, injector, graphInspector); + const metadataScanner = new metadata_scanner_1.MetadataScanner(); + const dependenciesScanner = new scanner_1.DependenciesScanner(container, metadataScanner, graphInspector, config); + container.setHttpAdapter(httpServer); + const teardown = this.abortOnError === false ? rethrow_1.rethrow : void 0; + await httpServer?.init?.(); + try { + this.logger.log(constants_1.MESSAGES.APPLICATION_START); + await exceptions_zone_1.ExceptionsZone.asyncRun(async () => { + await dependenciesScanner.scan(module3); + await instanceLoader.createInstancesOfDependencies(); + dependenciesScanner.applyApplicationProviders(); + }, teardown, this.autoFlushLogs); + } catch (e) { + this.handleInitializationError(e); + } + } + handleInitializationError(err) { + if (this.abortOnError) { + process.abort(); + } + (0, rethrow_1.rethrow)(err); + } + createProxy(target) { + const proxy = this.createExceptionProxy(); + return new Proxy(target, { + get: proxy, + set: proxy + }); + } + createExceptionProxy() { + return (receiver, prop) => { + if (!(prop in receiver)) { + return; + } + if ((0, shared_utils_1.isFunction)(receiver[prop])) { + return this.createExceptionZone(receiver, prop); + } + return receiver[prop]; + }; + } + createExceptionZone(receiver, prop) { + const teardown = this.abortOnError === false ? rethrow_1.rethrow : void 0; + return (...args) => { + let result; + exceptions_zone_1.ExceptionsZone.run(() => { + result = receiver[prop](...args); + }, teardown, this.autoFlushLogs); + return result; + }; + } + registerLoggerConfiguration(options) { + if (!options) { + return; + } + const { logger, bufferLogs, autoFlushLogs, forceConsole } = options; + if (logger !== true && !(0, shared_utils_1.isNil)(logger)) { + logger_service_1.Logger.overrideLogger(logger); + } else if (forceConsole) { + const consoleLogger = new console_logger_service_1.ConsoleLogger({ forceConsole: true }); + logger_service_1.Logger.overrideLogger(consoleLogger); + } + if (bufferLogs) { + logger_service_1.Logger.attachBuffer(); + } + this.autoFlushLogs = autoFlushLogs ?? true; + } + createHttpAdapter(httpServer) { + const { ExpressAdapter } = (0, load_adapter_1.loadAdapter)("@nestjs/platform-express", "HTTP", () => require_platform_express()); + return new ExpressAdapter(httpServer); + } + isHttpServer(serverOrOptions) { + return !!(serverOrOptions && serverOrOptions.patch); + } + setAbortOnError(serverOrOptions, options) { + this.abortOnError = this.isHttpServer(serverOrOptions) ? !(options && options.abortOnError === false) : !(serverOrOptions && serverOrOptions.abortOnError === false); + } + createAdapterProxy(app, adapter) { + const proxy = new Proxy(app, { + get: /* @__PURE__ */ __name((receiver, prop) => { + const mapToProxy = /* @__PURE__ */ __name((result) => { + return result instanceof Promise ? result.then(mapToProxy) : result instanceof nest_application_1.NestApplication ? proxy : result; + }, "mapToProxy"); + if (!(prop in receiver) && prop in adapter) { + return (...args) => { + const result = this.createExceptionZone(adapter, prop)(...args); + return mapToProxy(result); + }; + } + if ((0, shared_utils_1.isFunction)(receiver[prop])) { + return (...args) => { + const result = receiver[prop](...args); + return mapToProxy(result); + }; + } + return receiver[prop]; + }, "get") + }); + return proxy; + } + createGraphInspector(appOptions, container) { + return appOptions?.snapshot ? new graph_inspector_1.GraphInspector(container) : noop_graph_inspector_1.NoopGraphInspector; + } + }; + exports2.NestFactoryStatic = NestFactoryStatic; + exports2.NestFactory = new NestFactoryStatic(); + } +}); + +// node_modules/@nestjs/core/repl/assign-to-object.util.js +var require_assign_to_object_util = __commonJS({ + "node_modules/@nestjs/core/repl/assign-to-object.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.assignToObject = assignToObject; + function assignToObject(target, source) { + Object.defineProperties(target, Object.keys(source).reduce((descriptors, key) => { + descriptors[key] = Object.getOwnPropertyDescriptor(source, key); + return descriptors; + }, /* @__PURE__ */ Object.create(null))); + return target; + } + __name(assignToObject, "assignToObject"); + } +}); + +// node_modules/@nestjs/core/repl/constants.js +var require_constants7 = __commonJS({ + "node_modules/@nestjs/core/repl/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.REPL_INITIALIZED_MESSAGE = void 0; + exports2.REPL_INITIALIZED_MESSAGE = "REPL initialized"; + } +}); + +// node_modules/@nestjs/core/repl/repl-function.js +var require_repl_function = __commonJS({ + "node_modules/@nestjs/core/repl/repl-function.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ReplFunction = void 0; + var cli_colors_util_1 = require_cli_colors_util(); + var ReplFunction = class { + static { + __name(this, "ReplFunction"); + } + constructor(ctx) { + this.ctx = ctx; + this.logger = ctx.logger; + } + /** + * @returns A message displayed by calling `.help` + */ + makeHelpMessage() { + const { description, name, signature } = this.fnDefinition; + const fnSignatureWithName = `${name}${signature}`; + return `${cli_colors_util_1.clc.yellow(description)} +${cli_colors_util_1.clc.magentaBright("Interface:")} ${cli_colors_util_1.clc.bold(fnSignatureWithName)} +`; + } + }; + exports2.ReplFunction = ReplFunction; + } +}); + +// node_modules/@nestjs/core/repl/native-functions/help-repl-fn.js +var require_help_repl_fn = __commonJS({ + "node_modules/@nestjs/core/repl/native-functions/help-repl-fn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HelpReplFn = void 0; + var iterare_1 = require_lib(); + var cli_colors_util_1 = require_cli_colors_util(); + var repl_function_1 = require_repl_function(); + var HelpReplFn = class _HelpReplFn extends repl_function_1.ReplFunction { + static { + __name(this, "HelpReplFn"); + } + constructor() { + super(...arguments); + this.fnDefinition = { + name: "help", + signature: "() => void", + description: "Display all available REPL native functions." + }; + } + action() { + const sortedNativeFunctions = (0, iterare_1.iterate)(this.ctx.nativeFunctions).map(([, nativeFunction]) => nativeFunction.fnDefinition).toArray().sort((a, b) => a.name < b.name ? -1 : 1); + this.ctx.writeToStdout(`You can call ${cli_colors_util_1.clc.bold(".help")} on any function listed below (e.g.: ${cli_colors_util_1.clc.bold("help.help")}): + +` + sortedNativeFunctions.map(_HelpReplFn.buildHelpMessage).join("\n") + // Without the following LF the last item won't be displayed + "\n"); + } + }; + exports2.HelpReplFn = HelpReplFn; + HelpReplFn.buildHelpMessage = ({ name, description }) => cli_colors_util_1.clc.cyanBright(name) + (description ? ` ${cli_colors_util_1.clc.bold("-")} ${description}` : ""); + } +}); + +// node_modules/@nestjs/core/repl/native-functions/get-repl-fn.js +var require_get_repl_fn = __commonJS({ + "node_modules/@nestjs/core/repl/native-functions/get-repl-fn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.GetReplFn = void 0; + var repl_function_1 = require_repl_function(); + var GetReplFn = class extends repl_function_1.ReplFunction { + static { + __name(this, "GetReplFn"); + } + constructor() { + super(...arguments); + this.fnDefinition = { + name: "get", + signature: "(token: InjectionToken) => any", + description: "Retrieves an instance of either injectable or controller, otherwise, throws exception.", + aliases: ["$"] + }; + } + action(token) { + return this.ctx.app.get(token); + } + }; + exports2.GetReplFn = GetReplFn; + } +}); + +// node_modules/@nestjs/core/repl/native-functions/resolve-repl-fn.js +var require_resolve_repl_fn = __commonJS({ + "node_modules/@nestjs/core/repl/native-functions/resolve-repl-fn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ResolveReplFn = void 0; + var repl_function_1 = require_repl_function(); + var ResolveReplFn = class extends repl_function_1.ReplFunction { + static { + __name(this, "ResolveReplFn"); + } + constructor() { + super(...arguments); + this.fnDefinition = { + name: "resolve", + description: "Resolves transient or request-scoped instance of either injectable or controller, otherwise, throws exception.", + signature: "(token: InjectionToken, contextId: any) => Promise" + }; + } + action(token, contextId) { + return this.ctx.app.resolve(token, contextId); + } + }; + exports2.ResolveReplFn = ResolveReplFn; + } +}); + +// node_modules/@nestjs/core/repl/native-functions/select-relp-fn.js +var require_select_relp_fn = __commonJS({ + "node_modules/@nestjs/core/repl/native-functions/select-relp-fn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SelectReplFn = void 0; + var repl_function_1 = require_repl_function(); + var SelectReplFn = class extends repl_function_1.ReplFunction { + static { + __name(this, "SelectReplFn"); + } + constructor() { + super(...arguments); + this.fnDefinition = { + name: "select", + description: "Allows navigating through the modules tree, for example, to pull out a specific instance from the selected module.", + signature: "(token: DynamicModule | ClassRef) => INestApplicationContext" + }; + } + action(token) { + return this.ctx.app.select(token); + } + }; + exports2.SelectReplFn = SelectReplFn; + } +}); + +// node_modules/@nestjs/core/repl/native-functions/debug-repl-fn.js +var require_debug_repl_fn = __commonJS({ + "node_modules/@nestjs/core/repl/native-functions/debug-repl-fn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DebugReplFn = void 0; + var cli_colors_util_1 = require_cli_colors_util(); + var repl_function_1 = require_repl_function(); + var DebugReplFn = class extends repl_function_1.ReplFunction { + static { + __name(this, "DebugReplFn"); + } + constructor() { + super(...arguments); + this.fnDefinition = { + name: "debug", + description: 'Print all registered modules as a list together with their controllers and providers.\nIf the argument is passed in, for example, "debug(MyModule)" then it will only print components of this specific module.', + signature: "(moduleCls?: ClassRef | string) => void" + }; + } + action(moduleCls) { + this.ctx.writeToStdout("\n"); + if (moduleCls) { + const token = typeof moduleCls === "function" ? moduleCls.name : moduleCls; + const moduleEntry = this.ctx.debugRegistry[token]; + if (!moduleEntry) { + return this.logger.error(`"${token}" has not been found in the modules registry`); + } + this.printCtrlsAndProviders(token, moduleEntry); + } else { + Object.keys(this.ctx.debugRegistry).forEach((moduleKey) => { + this.printCtrlsAndProviders(moduleKey, this.ctx.debugRegistry[moduleKey]); + }); + } + this.ctx.writeToStdout("\n"); + } + printCtrlsAndProviders(moduleName, moduleDebugEntry) { + this.ctx.writeToStdout(`${cli_colors_util_1.clc.green(moduleName)}: +`); + this.printCollection("controllers", moduleDebugEntry["controllers"]); + this.printCollection("providers", moduleDebugEntry["providers"]); + } + printCollection(title, collectionValue) { + const collectionEntries = Object.keys(collectionValue); + if (collectionEntries.length <= 0) { + return; + } + this.ctx.writeToStdout(` ${cli_colors_util_1.clc.yellow(`- ${title}`)}: +`); + collectionEntries.forEach((provider) => this.ctx.writeToStdout(` ${cli_colors_util_1.clc.green("\u25FB")} ${provider} +`)); + } + }; + exports2.DebugReplFn = DebugReplFn; + } +}); + +// node_modules/@nestjs/core/repl/native-functions/methods-repl-fn.js +var require_methods_repl_fn = __commonJS({ + "node_modules/@nestjs/core/repl/native-functions/methods-repl-fn.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MethodsReplFn = void 0; + var cli_colors_util_1 = require_cli_colors_util(); + var metadata_scanner_1 = require_metadata_scanner(); + var repl_function_1 = require_repl_function(); + var MethodsReplFn = class extends repl_function_1.ReplFunction { + static { + __name(this, "MethodsReplFn"); + } + constructor() { + super(...arguments); + this.fnDefinition = { + name: "methods", + description: "Display all public methods available on a given provider or controller.", + signature: "(token: ClassRef | string) => void" + }; + this.metadataScanner = new metadata_scanner_1.MetadataScanner(); + } + action(token) { + const proto = typeof token !== "function" ? Object.getPrototypeOf(this.ctx.app.get(token)) : token?.prototype; + const methods = this.metadataScanner.getAllMethodNames(proto); + this.ctx.writeToStdout("\n"); + this.ctx.writeToStdout(`${cli_colors_util_1.clc.green("Methods")}: +`); + methods.forEach((methodName) => this.ctx.writeToStdout(` ${cli_colors_util_1.clc.yellow("\u25FB")} ${methodName} +`)); + this.ctx.writeToStdout("\n"); + } + }; + exports2.MethodsReplFn = MethodsReplFn; + } +}); + +// node_modules/@nestjs/core/repl/native-functions/index.js +var require_native_functions = __commonJS({ + "node_modules/@nestjs/core/repl/native-functions/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_help_repl_fn(), exports2); + tslib_1.__exportStar(require_get_repl_fn(), exports2); + tslib_1.__exportStar(require_resolve_repl_fn(), exports2); + tslib_1.__exportStar(require_select_relp_fn(), exports2); + tslib_1.__exportStar(require_debug_repl_fn(), exports2); + tslib_1.__exportStar(require_methods_repl_fn(), exports2); + } +}); + +// node_modules/@nestjs/core/repl/repl-context.js +var require_repl_context = __commonJS({ + "node_modules/@nestjs/core/repl/repl-context.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ReplContext = void 0; + var common_12 = require_common(); + var application_config_1 = require_application_config(); + var injector_1 = require_injector2(); + var internal_core_module_1 = require_internal_core_module(); + var native_functions_1 = require_native_functions(); + var ReplContext = class _ReplContext { + static { + __name(this, "ReplContext"); + } + constructor(app, nativeFunctionsClassRefs) { + this.app = app; + this.logger = new common_12.Logger(_ReplContext.name); + this.debugRegistry = {}; + this.globalScope = /* @__PURE__ */ Object.create(null); + this.nativeFunctions = /* @__PURE__ */ new Map(); + this.container = app.container; + this.initializeContext(); + this.initializeNativeFunctions(nativeFunctionsClassRefs || []); + } + writeToStdout(text) { + process.stdout.write(text); + } + initializeContext() { + const modules = this.container.getModules(); + modules.forEach((moduleRef) => { + let moduleName = moduleRef.metatype.name; + if (moduleName === internal_core_module_1.InternalCoreModule.name) { + return; + } + if (this.globalScope[moduleName]) { + moduleName += ` (${moduleRef.token})`; + } + this.introspectCollection(moduleRef, moduleName, "providers"); + this.introspectCollection(moduleRef, moduleName, "controllers"); + Object.defineProperty(this.globalScope, moduleName, { + value: moduleRef.metatype, + configurable: false, + enumerable: true + }); + }); + } + introspectCollection(moduleRef, moduleKey, collection) { + const moduleDebugEntry = {}; + moduleRef[collection].forEach(({ token }) => { + const stringifiedToken = this.stringifyToken(token); + if (stringifiedToken === application_config_1.ApplicationConfig.name || stringifiedToken === moduleRef.metatype.name) { + return; + } + if (!this.globalScope[stringifiedToken]) { + Object.defineProperty(this.globalScope, stringifiedToken, { + value: token, + configurable: false, + enumerable: true + }); + } + if (stringifiedToken === injector_1.ModuleRef.name) { + return; + } + moduleDebugEntry[stringifiedToken] = token; + }); + this.debugRegistry[moduleKey] = { + ...this.debugRegistry?.[moduleKey], + [collection]: moduleDebugEntry + }; + } + stringifyToken(token) { + return typeof token !== "string" ? typeof token === "function" ? token.name : token?.toString() : `"${token}"`; + } + addNativeFunction(NativeFunctionRef) { + const nativeFunction = new NativeFunctionRef(this); + const nativeFunctions = [nativeFunction]; + this.nativeFunctions.set(nativeFunction.fnDefinition.name, nativeFunction); + nativeFunction.fnDefinition.aliases?.forEach((aliasName) => { + const aliasNativeFunction = Object.create(nativeFunction); + aliasNativeFunction.fnDefinition = { + name: aliasName, + description: aliasNativeFunction.fnDefinition.description, + signature: aliasNativeFunction.fnDefinition.signature + }; + this.nativeFunctions.set(aliasName, aliasNativeFunction); + nativeFunctions.push(aliasNativeFunction); + }); + return nativeFunctions; + } + registerFunctionIntoGlobalScope(nativeFunction) { + this.globalScope[nativeFunction.fnDefinition.name] = nativeFunction.action.bind(nativeFunction); + const functionBoundRef = this.globalScope[nativeFunction.fnDefinition.name]; + Object.defineProperty(functionBoundRef, "help", { + enumerable: false, + configurable: false, + get: /* @__PURE__ */ __name(() => ( + // Dynamically builds the help message as will unlikely to be called + // several times. + this.writeToStdout(nativeFunction.makeHelpMessage()) + ), "get") + }); + } + initializeNativeFunctions(nativeFunctionsClassRefs) { + const builtInFunctionsClassRefs = [ + native_functions_1.HelpReplFn, + native_functions_1.GetReplFn, + native_functions_1.ResolveReplFn, + native_functions_1.SelectReplFn, + native_functions_1.DebugReplFn, + native_functions_1.MethodsReplFn + ]; + builtInFunctionsClassRefs.concat(nativeFunctionsClassRefs).forEach((NativeFunction) => { + const nativeFunctions = this.addNativeFunction(NativeFunction); + nativeFunctions.forEach((nativeFunction) => { + this.registerFunctionIntoGlobalScope(nativeFunction); + }); + }); + } + }; + exports2.ReplContext = ReplContext; + } +}); + +// node_modules/@nestjs/core/repl/repl-logger.js +var require_repl_logger = __commonJS({ + "node_modules/@nestjs/core/repl/repl-logger.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ReplLogger = void 0; + var common_12 = require_common(); + var nest_application_1 = require_nest_application(); + var router_explorer_1 = require_router_explorer(); + var routes_resolver_1 = require_routes_resolver(); + var ReplLogger = class _ReplLogger extends common_12.ConsoleLogger { + static { + __name(this, "ReplLogger"); + } + log(_message, context) { + if (_ReplLogger.ignoredContexts.includes(context)) { + return; + } + return super.log.apply(this, Array.from(arguments)); + } + }; + exports2.ReplLogger = ReplLogger; + ReplLogger.ignoredContexts = [ + routes_resolver_1.RoutesResolver.name, + router_explorer_1.RouterExplorer.name, + nest_application_1.NestApplication.name + ]; + } +}); + +// node_modules/@nestjs/core/repl/repl-native-commands.js +var require_repl_native_commands = __commonJS({ + "node_modules/@nestjs/core/repl/repl-native-commands.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defineDefaultCommandsOnRepl = defineDefaultCommandsOnRepl; + function listAllCommands(replServer) { + Object.keys(replServer.commands).sort().forEach((name) => { + const cmd = replServer.commands[name]; + if (cmd) { + replServer.output.write(`${name} ${cmd.help || ""} +`); + } + }); + } + __name(listAllCommands, "listAllCommands"); + function defineDefaultCommandsOnRepl(replServer) { + replServer.defineCommand("help", { + help: "Show REPL options", + action(name) { + this.clearBufferedCommand(); + if (name) { + const nativeCommandOrFunction = this.commands[name] || this.context[name]; + const helpMessage = nativeCommandOrFunction?.help; + if (helpMessage) { + this.output.write(`${helpMessage} +`); + } + } else { + listAllCommands(this); + this.output.write("\n\n"); + this.context.help(); + this.output.write("\nPress Ctrl+C to abort current expression, Ctrl+D to exit the REPL\n"); + } + this.displayPrompt(); + } + }); + } + __name(defineDefaultCommandsOnRepl, "defineDefaultCommandsOnRepl"); + } +}); + +// node_modules/@nestjs/core/repl/repl.js +var require_repl = __commonJS({ + "node_modules/@nestjs/core/repl/repl.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.repl = repl; + var common_12 = require_common(); + var cli_colors_util_1 = require_cli_colors_util(); + var nest_factory_1 = require_nest_factory(); + var assign_to_object_util_1 = require_assign_to_object_util(); + var constants_1 = require_constants7(); + var repl_context_1 = require_repl_context(); + var repl_logger_1 = require_repl_logger(); + var repl_native_commands_1 = require_repl_native_commands(); + async function repl(module3, replOptions = {}) { + const app = await nest_factory_1.NestFactory.createApplicationContext(module3, { + abortOnError: false, + logger: new repl_logger_1.ReplLogger() + }); + await app.init(); + const replContext = new repl_context_1.ReplContext(app); + common_12.Logger.log(constants_1.REPL_INITIALIZED_MESSAGE); + const _repl = await Promise.resolve().then(() => require("repl")); + const replServer = _repl.start({ + prompt: cli_colors_util_1.clc.green("> "), + ignoreUndefined: true, + ...replOptions + }); + (0, assign_to_object_util_1.assignToObject)(replServer.context, replContext.globalScope); + (0, repl_native_commands_1.defineDefaultCommandsOnRepl)(replServer); + replServer.on("exit", async () => { + await app.close(); + }); + return replServer; + } + __name(repl, "repl"); + } +}); + +// node_modules/@nestjs/core/repl/index.js +var require_repl2 = __commonJS({ + "node_modules/@nestjs/core/repl/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_repl(), exports2); + } +}); + +// node_modules/@nestjs/core/router/interfaces/routes.interface.js +var require_routes_interface = __commonJS({ + "node_modules/@nestjs/core/router/interfaces/routes.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/core/router/interfaces/index.js +var require_interfaces6 = __commonJS({ + "node_modules/@nestjs/core/router/interfaces/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_routes_interface(), exports2); + } +}); + +// node_modules/@nestjs/core/router/request/index.js +var require_request2 = __commonJS({ + "node_modules/@nestjs/core/router/request/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.REQUEST = void 0; + var request_constants_1 = require_request_constants(); + Object.defineProperty(exports2, "REQUEST", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return request_constants_1.REQUEST; + }, "get") }); + } +}); + +// node_modules/@nestjs/core/router/index.js +var require_router2 = __commonJS({ + "node_modules/@nestjs/core/router/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RouterModule = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + tslib_1.__exportStar(require_interfaces6(), exports2); + tslib_1.__exportStar(require_request2(), exports2); + var router_module_1 = require_router_module(); + Object.defineProperty(exports2, "RouterModule", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return router_module_1.RouterModule; + }, "get") }); + } +}); + +// node_modules/@nestjs/core/index.js +var require_core3 = __commonJS({ + "node_modules/@nestjs/core/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NestFactory = exports2.APP_PIPE = exports2.APP_INTERCEPTOR = exports2.APP_GUARD = exports2.APP_FILTER = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + require_Reflect(); + tslib_1.__exportStar(require_adapters(), exports2); + tslib_1.__exportStar(require_application_config(), exports2); + var constants_1 = require_constants(); + Object.defineProperty(exports2, "APP_FILTER", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return constants_1.APP_FILTER; + }, "get") }); + Object.defineProperty(exports2, "APP_GUARD", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return constants_1.APP_GUARD; + }, "get") }); + Object.defineProperty(exports2, "APP_INTERCEPTOR", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return constants_1.APP_INTERCEPTOR; + }, "get") }); + Object.defineProperty(exports2, "APP_PIPE", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return constants_1.APP_PIPE; + }, "get") }); + tslib_1.__exportStar(require_discovery(), exports2); + tslib_1.__exportStar(require_exceptions2(), exports2); + tslib_1.__exportStar(require_helpers(), exports2); + tslib_1.__exportStar(require_injector2(), exports2); + tslib_1.__exportStar(require_inspector(), exports2); + tslib_1.__exportStar(require_metadata_scanner(), exports2); + tslib_1.__exportStar(require_middleware2(), exports2); + tslib_1.__exportStar(require_nest_application(), exports2); + tslib_1.__exportStar(require_nest_application_context(), exports2); + var nest_factory_1 = require_nest_factory(); + Object.defineProperty(exports2, "NestFactory", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return nest_factory_1.NestFactory; + }, "get") }); + tslib_1.__exportStar(require_repl2(), exports2); + tslib_1.__exportStar(require_router2(), exports2); + tslib_1.__exportStar(require_services2(), exports2); + } +}); + +// node_modules/lodash/lodash.js +var require_lodash = __commonJS({ + "node_modules/lodash/lodash.js"(exports2, module2) { + (function() { + var undefined2; + var VERSION = "4.18.1"; + var LARGE_ARRAY_SIZE = 200; + var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`", INVALID_TEMPL_IMPORTS_ERROR_TEXT = "Invalid `imports` option passed into `_.template`"; + var HASH_UNDEFINED = "__lodash_hash_undefined__"; + var MAX_MEMOIZE_SIZE = 500; + var PLACEHOLDER = "__lodash_placeholder__"; + var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; + var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; + var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512; + var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "..."; + var HOT_COUNT = 800, HOT_SPAN = 16; + var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3; + var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0; + var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + var wrapFlags = [ + ["ary", WRAP_ARY_FLAG], + ["bind", WRAP_BIND_FLAG], + ["bindKey", WRAP_BIND_KEY_FLAG], + ["curry", WRAP_CURRY_FLAG], + ["curryRight", WRAP_CURRY_RIGHT_FLAG], + ["flip", WRAP_FLIP_FLAG], + ["partial", WRAP_PARTIAL_FLAG], + ["partialRight", WRAP_PARTIAL_RIGHT_FLAG], + ["rearg", WRAP_REARG_FLAG] + ]; + var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]"; + var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; + var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; + var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g; + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); + var reTrimStart = /^\s+/; + var reWhitespace = /\s/; + var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /; + var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; + var reEscapeChar = /\\(\\)?/g; + var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; + var reFlags = /\w*$/; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsHostCtor = /^\[object .+?Constructor\]$/; + var reIsOctal = /^0o[0-7]+$/i; + var reIsUint = /^(?:0|[1-9]\d*)$/; + var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + var reNoMatch = /($^)/; + var reUnescapedString = /['\n\r\u2028\u2029\\]/g; + var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; + var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; + var reApos = RegExp(rsApos, "g"); + var reComboMark = RegExp(rsCombo, "g"); + var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); + var reUnicodeWord = RegExp([ + rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", + rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", + rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, + rsUpper + "+" + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, + rsDigits, + rsEmoji + ].join("|"), "g"); + var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); + var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + var contextProps = [ + "Array", + "Buffer", + "DataView", + "Date", + "Error", + "Float32Array", + "Float64Array", + "Function", + "Int8Array", + "Int16Array", + "Int32Array", + "Map", + "Math", + "Object", + "Promise", + "RegExp", + "Set", + "String", + "Symbol", + "TypeError", + "Uint8Array", + "Uint8ClampedArray", + "Uint16Array", + "Uint32Array", + "WeakMap", + "_", + "clearTimeout", + "isFinite", + "parseInt", + "setTimeout" + ]; + var templateCounter = -1; + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + var cloneableTags = {}; + cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; + var deburredLetters = { + // Latin-1 Supplement block. + "\xC0": "A", + "\xC1": "A", + "\xC2": "A", + "\xC3": "A", + "\xC4": "A", + "\xC5": "A", + "\xE0": "a", + "\xE1": "a", + "\xE2": "a", + "\xE3": "a", + "\xE4": "a", + "\xE5": "a", + "\xC7": "C", + "\xE7": "c", + "\xD0": "D", + "\xF0": "d", + "\xC8": "E", + "\xC9": "E", + "\xCA": "E", + "\xCB": "E", + "\xE8": "e", + "\xE9": "e", + "\xEA": "e", + "\xEB": "e", + "\xCC": "I", + "\xCD": "I", + "\xCE": "I", + "\xCF": "I", + "\xEC": "i", + "\xED": "i", + "\xEE": "i", + "\xEF": "i", + "\xD1": "N", + "\xF1": "n", + "\xD2": "O", + "\xD3": "O", + "\xD4": "O", + "\xD5": "O", + "\xD6": "O", + "\xD8": "O", + "\xF2": "o", + "\xF3": "o", + "\xF4": "o", + "\xF5": "o", + "\xF6": "o", + "\xF8": "o", + "\xD9": "U", + "\xDA": "U", + "\xDB": "U", + "\xDC": "U", + "\xF9": "u", + "\xFA": "u", + "\xFB": "u", + "\xFC": "u", + "\xDD": "Y", + "\xFD": "y", + "\xFF": "y", + "\xC6": "Ae", + "\xE6": "ae", + "\xDE": "Th", + "\xFE": "th", + "\xDF": "ss", + // Latin Extended-A block. + "\u0100": "A", + "\u0102": "A", + "\u0104": "A", + "\u0101": "a", + "\u0103": "a", + "\u0105": "a", + "\u0106": "C", + "\u0108": "C", + "\u010A": "C", + "\u010C": "C", + "\u0107": "c", + "\u0109": "c", + "\u010B": "c", + "\u010D": "c", + "\u010E": "D", + "\u0110": "D", + "\u010F": "d", + "\u0111": "d", + "\u0112": "E", + "\u0114": "E", + "\u0116": "E", + "\u0118": "E", + "\u011A": "E", + "\u0113": "e", + "\u0115": "e", + "\u0117": "e", + "\u0119": "e", + "\u011B": "e", + "\u011C": "G", + "\u011E": "G", + "\u0120": "G", + "\u0122": "G", + "\u011D": "g", + "\u011F": "g", + "\u0121": "g", + "\u0123": "g", + "\u0124": "H", + "\u0126": "H", + "\u0125": "h", + "\u0127": "h", + "\u0128": "I", + "\u012A": "I", + "\u012C": "I", + "\u012E": "I", + "\u0130": "I", + "\u0129": "i", + "\u012B": "i", + "\u012D": "i", + "\u012F": "i", + "\u0131": "i", + "\u0134": "J", + "\u0135": "j", + "\u0136": "K", + "\u0137": "k", + "\u0138": "k", + "\u0139": "L", + "\u013B": "L", + "\u013D": "L", + "\u013F": "L", + "\u0141": "L", + "\u013A": "l", + "\u013C": "l", + "\u013E": "l", + "\u0140": "l", + "\u0142": "l", + "\u0143": "N", + "\u0145": "N", + "\u0147": "N", + "\u014A": "N", + "\u0144": "n", + "\u0146": "n", + "\u0148": "n", + "\u014B": "n", + "\u014C": "O", + "\u014E": "O", + "\u0150": "O", + "\u014D": "o", + "\u014F": "o", + "\u0151": "o", + "\u0154": "R", + "\u0156": "R", + "\u0158": "R", + "\u0155": "r", + "\u0157": "r", + "\u0159": "r", + "\u015A": "S", + "\u015C": "S", + "\u015E": "S", + "\u0160": "S", + "\u015B": "s", + "\u015D": "s", + "\u015F": "s", + "\u0161": "s", + "\u0162": "T", + "\u0164": "T", + "\u0166": "T", + "\u0163": "t", + "\u0165": "t", + "\u0167": "t", + "\u0168": "U", + "\u016A": "U", + "\u016C": "U", + "\u016E": "U", + "\u0170": "U", + "\u0172": "U", + "\u0169": "u", + "\u016B": "u", + "\u016D": "u", + "\u016F": "u", + "\u0171": "u", + "\u0173": "u", + "\u0174": "W", + "\u0175": "w", + "\u0176": "Y", + "\u0177": "y", + "\u0178": "Y", + "\u0179": "Z", + "\u017B": "Z", + "\u017D": "Z", + "\u017A": "z", + "\u017C": "z", + "\u017E": "z", + "\u0132": "IJ", + "\u0133": "ij", + "\u0152": "Oe", + "\u0153": "oe", + "\u0149": "'n", + "\u017F": "s" + }; + var htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" + }; + var htmlUnescapes = { + "&": "&", + "<": "<", + ">": ">", + """: '"', + "'": "'" + }; + var stringEscapes = { + "\\": "\\", + "'": "'", + "\n": "n", + "\r": "r", + "\u2028": "u2028", + "\u2029": "u2029" + }; + var freeParseFloat = parseFloat, freeParseInt = parseInt; + var freeGlobal = typeof global == "object" && global && global.Object === Object && global; + var freeSelf = typeof self == "object" && self && self.Object === Object && self; + var root = freeGlobal || freeSelf || Function("return this")(); + var freeExports = typeof exports2 == "object" && exports2 && !exports2.nodeType && exports2; + var freeModule = freeExports && typeof module2 == "object" && module2 && !module2.nodeType && module2; + var moduleExports = freeModule && freeModule.exports === freeExports; + var freeProcess = moduleExports && freeGlobal.process; + var nodeUtil = (function() { + try { + var types = freeModule && freeModule.require && freeModule.require("util").types; + if (types) { + return types; + } + return freeProcess && freeProcess.binding && freeProcess.binding("util"); + } catch (e) { + } + })(); + var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + function apply(func, thisArg, args) { + switch (args.length) { + case 0: + return func.call(thisArg); + case 1: + return func.call(thisArg, args[0]); + case 2: + return func.call(thisArg, args[0], args[1]); + case 3: + return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + __name(apply, "apply"); + function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + return accumulator; + } + __name(arrayAggregator, "arrayAggregator"); + function arrayEach(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; + } + __name(arrayEach, "arrayEach"); + function arrayEachRight(array, iteratee) { + var length = array == null ? 0 : array.length; + while (length--) { + if (iteratee(array[length], length, array) === false) { + break; + } + } + return array; + } + __name(arrayEachRight, "arrayEachRight"); + function arrayEvery(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; + } + __name(arrayEvery, "arrayEvery"); + function arrayFilter(array, predicate) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } + __name(arrayFilter, "arrayFilter"); + function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; + } + __name(arrayIncludes, "arrayIncludes"); + function arrayIncludesWith(array, value, comparator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; + } + __name(arrayIncludesWith, "arrayIncludesWith"); + function arrayMap(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length, result = Array(length); + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + __name(arrayMap, "arrayMap"); + function arrayPush(array, values) { + var index = -1, length = values.length, offset = array.length; + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + __name(arrayPush, "arrayPush"); + function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } + __name(arrayReduce, "arrayReduce"); + function arrayReduceRight(array, iteratee, accumulator, initAccum) { + var length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[--length]; + } + while (length--) { + accumulator = iteratee(accumulator, array[length], length, array); + } + return accumulator; + } + __name(arrayReduceRight, "arrayReduceRight"); + function arraySome(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + __name(arraySome, "arraySome"); + var asciiSize = baseProperty("length"); + function asciiToArray(string) { + return string.split(""); + } + __name(asciiToArray, "asciiToArray"); + function asciiWords(string) { + return string.match(reAsciiWord) || []; + } + __name(asciiWords, "asciiWords"); + function baseFindKey(collection, predicate, eachFunc) { + var result; + eachFunc(collection, function(value, key, collection2) { + if (predicate(value, key, collection2)) { + result = key; + return false; + } + }); + return result; + } + __name(baseFindKey, "baseFindKey"); + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + __name(baseFindIndex, "baseFindIndex"); + function baseIndexOf(array, value, fromIndex) { + return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); + } + __name(baseIndexOf, "baseIndexOf"); + function baseIndexOfWith(array, value, fromIndex, comparator) { + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (comparator(array[index], value)) { + return index; + } + } + return -1; + } + __name(baseIndexOfWith, "baseIndexOfWith"); + function baseIsNaN(value) { + return value !== value; + } + __name(baseIsNaN, "baseIsNaN"); + function baseMean(array, iteratee) { + var length = array == null ? 0 : array.length; + return length ? baseSum(array, iteratee) / length : NAN; + } + __name(baseMean, "baseMean"); + function baseProperty(key) { + return function(object) { + return object == null ? undefined2 : object[key]; + }; + } + __name(baseProperty, "baseProperty"); + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined2 : object[key]; + }; + } + __name(basePropertyOf, "basePropertyOf"); + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection2) { + accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2); + }); + return accumulator; + } + __name(baseReduce, "baseReduce"); + function baseSortBy(array, comparer) { + var length = array.length; + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; + } + __name(baseSortBy, "baseSortBy"); + function baseSum(array, iteratee) { + var result, index = -1, length = array.length; + while (++index < length) { + var current = iteratee(array[index]); + if (current !== undefined2) { + result = result === undefined2 ? current : result + current; + } + } + return result; + } + __name(baseSum, "baseSum"); + function baseTimes(n, iteratee) { + var index = -1, result = Array(n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + __name(baseTimes, "baseTimes"); + function baseToPairs(object, props) { + return arrayMap(props, function(key) { + return [key, object[key]]; + }); + } + __name(baseToPairs, "baseToPairs"); + function baseTrim(string) { + return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; + } + __name(baseTrim, "baseTrim"); + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + __name(baseUnary, "baseUnary"); + function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); + } + __name(baseValues, "baseValues"); + function cacheHas(cache, key) { + return cache.has(key); + } + __name(cacheHas, "cacheHas"); + function charsStartIndex(strSymbols, chrSymbols) { + var index = -1, length = strSymbols.length; + while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { + } + return index; + } + __name(charsStartIndex, "charsStartIndex"); + function charsEndIndex(strSymbols, chrSymbols) { + var index = strSymbols.length; + while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { + } + return index; + } + __name(charsEndIndex, "charsEndIndex"); + function countHolders(array, placeholder) { + var length = array.length, result = 0; + while (length--) { + if (array[length] === placeholder) { + ++result; + } + } + return result; + } + __name(countHolders, "countHolders"); + var deburrLetter = basePropertyOf(deburredLetters); + var escapeHtmlChar = basePropertyOf(htmlEscapes); + function escapeStringChar(chr) { + return "\\" + stringEscapes[chr]; + } + __name(escapeStringChar, "escapeStringChar"); + function getValue(object, key) { + return object == null ? undefined2 : object[key]; + } + __name(getValue, "getValue"); + function hasUnicode(string) { + return reHasUnicode.test(string); + } + __name(hasUnicode, "hasUnicode"); + function hasUnicodeWord(string) { + return reHasUnicodeWord.test(string); + } + __name(hasUnicodeWord, "hasUnicodeWord"); + function iteratorToArray(iterator) { + var data, result = []; + while (!(data = iterator.next()).done) { + result.push(data.value); + } + return result; + } + __name(iteratorToArray, "iteratorToArray"); + function mapToArray(map) { + var index = -1, result = Array(map.size); + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + __name(mapToArray, "mapToArray"); + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + __name(overArg, "overArg"); + function replaceHolders(array, placeholder) { + var index = -1, length = array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (value === placeholder || value === PLACEHOLDER) { + array[index] = PLACEHOLDER; + result[resIndex++] = index; + } + } + return result; + } + __name(replaceHolders, "replaceHolders"); + function setToArray(set) { + var index = -1, result = Array(set.size); + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + __name(setToArray, "setToArray"); + function setToPairs(set) { + var index = -1, result = Array(set.size); + set.forEach(function(value) { + result[++index] = [value, value]; + }); + return result; + } + __name(setToPairs, "setToPairs"); + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + __name(strictIndexOf, "strictIndexOf"); + function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; + } + } + return index; + } + __name(strictLastIndexOf, "strictLastIndexOf"); + function stringSize(string) { + return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); + } + __name(stringSize, "stringSize"); + function stringToArray(string) { + return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); + } + __name(stringToArray, "stringToArray"); + function trimmedEndIndex(string) { + var index = string.length; + while (index-- && reWhitespace.test(string.charAt(index))) { + } + return index; + } + __name(trimmedEndIndex, "trimmedEndIndex"); + var unescapeHtmlChar = basePropertyOf(htmlUnescapes); + function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + ++result; + } + return result; + } + __name(unicodeSize, "unicodeSize"); + function unicodeToArray(string) { + return string.match(reUnicode) || []; + } + __name(unicodeToArray, "unicodeToArray"); + function unicodeWords(string) { + return string.match(reUnicodeWord) || []; + } + __name(unicodeWords, "unicodeWords"); + var runInContext = /* @__PURE__ */ __name((function runInContext2(context) { + context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); + var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError; + var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype; + var coreJsData = context["__core-js_shared__"]; + var funcToString = funcProto.toString; + var hasOwnProperty = objectProto.hasOwnProperty; + var idCounter = 0; + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; + })(); + var nativeObjectToString = objectProto.toString; + var objectCtorString = funcToString.call(Object2); + var oldDash = root._; + var reIsNative = RegExp2( + "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" + ); + var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2; + var defineProperty = (function() { + try { + var func = getNative(Object2, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) { + } + })(); + var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; + var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse; + var DataView2 = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create"); + var metaMap = WeakMap2 && new WeakMap2(); + var realNames = {}; + var dataViewCtorString = toSource(DataView2), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2); + var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2; + function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, "__wrapped__")) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); + } + __name(lodash, "lodash"); + var baseCreate = /* @__PURE__ */ (function() { + function object() { + } + __name(object, "object"); + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result2 = new object(); + object.prototype = undefined2; + return result2; + }; + })(); + function baseLodash() { + } + __name(baseLodash, "baseLodash"); + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + this.__index__ = 0; + this.__values__ = undefined2; + } + __name(LodashWrapper, "LodashWrapper"); + lodash.templateSettings = { + /** + * Used to detect `data` property values to be HTML-escaped. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + "escape": reEscape, + /** + * Used to detect code to be evaluated. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + "evaluate": reEvaluate, + /** + * Used to detect `data` property values to inject. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + "interpolate": reInterpolate, + /** + * Used to reference the data object in the template text. + * + * @memberOf _.templateSettings + * @type {string} + */ + "variable": "", + /** + * Used to import variables into the compiled template. + * + * @memberOf _.templateSettings + * @type {Object} + */ + "imports": { + /** + * A reference to the `lodash` function. + * + * @memberOf _.templateSettings.imports + * @type {Function} + */ + "_": lodash + } + }; + lodash.prototype = baseLodash.prototype; + lodash.prototype.constructor = lodash; + LodashWrapper.prototype = baseCreate(baseLodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = MAX_ARRAY_LENGTH; + this.__views__ = []; + } + __name(LazyWrapper, "LazyWrapper"); + function lazyClone() { + var result2 = new LazyWrapper(this.__wrapped__); + result2.__actions__ = copyArray(this.__actions__); + result2.__dir__ = this.__dir__; + result2.__filtered__ = this.__filtered__; + result2.__iteratees__ = copyArray(this.__iteratees__); + result2.__takeCount__ = this.__takeCount__; + result2.__views__ = copyArray(this.__views__); + return result2; + } + __name(lazyClone, "lazyClone"); + function lazyReverse() { + if (this.__filtered__) { + var result2 = new LazyWrapper(this); + result2.__dir__ = -1; + result2.__filtered__ = true; + } else { + result2 = this.clone(); + result2.__dir__ *= -1; + } + return result2; + } + __name(lazyReverse, "lazyReverse"); + function lazyValue() { + var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__); + if (!isArr || !isRight && arrLength == length && takeCount == length) { + return baseWrapperValue(array, this.__actions__); + } + var result2 = []; + outer: + while (length-- && resIndex < takeCount) { + index += dir; + var iterIndex = -1, value = array[index]; + while (++iterIndex < iterLength) { + var data = iteratees[iterIndex], iteratee2 = data.iteratee, type = data.type, computed = iteratee2(value); + if (type == LAZY_MAP_FLAG) { + value = computed; + } else if (!computed) { + if (type == LAZY_FILTER_FLAG) { + continue outer; + } else { + break outer; + } + } + } + result2[resIndex++] = value; + } + return result2; + } + __name(lazyValue, "lazyValue"); + LazyWrapper.prototype = baseCreate(baseLodash.prototype); + LazyWrapper.prototype.constructor = LazyWrapper; + function Hash(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + __name(Hash, "Hash"); + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + __name(hashClear, "hashClear"); + function hashDelete(key) { + var result2 = this.has(key) && delete this.__data__[key]; + this.size -= result2 ? 1 : 0; + return result2; + } + __name(hashDelete, "hashDelete"); + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result2 = data[key]; + return result2 === HASH_UNDEFINED ? undefined2 : result2; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined2; + } + __name(hashGet, "hashGet"); + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key); + } + __name(hashHas, "hashHas"); + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value; + return this; + } + __name(hashSet, "hashSet"); + Hash.prototype.clear = hashClear; + Hash.prototype["delete"] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + function ListCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + __name(ListCache, "ListCache"); + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + __name(listCacheClear, "listCacheClear"); + function listCacheDelete(key) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + __name(listCacheDelete, "listCacheDelete"); + function listCacheGet(key) { + var data = this.__data__, index = assocIndexOf(data, key); + return index < 0 ? undefined2 : data[index][1]; + } + __name(listCacheGet, "listCacheGet"); + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + __name(listCacheHas, "listCacheHas"); + function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + __name(listCacheSet, "listCacheSet"); + ListCache.prototype.clear = listCacheClear; + ListCache.prototype["delete"] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + function MapCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + __name(MapCache, "MapCache"); + function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new Hash(), + "map": new (Map2 || ListCache)(), + "string": new Hash() + }; + } + __name(mapCacheClear, "mapCacheClear"); + function mapCacheDelete(key) { + var result2 = getMapData(this, key)["delete"](key); + this.size -= result2 ? 1 : 0; + return result2; + } + __name(mapCacheDelete, "mapCacheDelete"); + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + __name(mapCacheGet, "mapCacheGet"); + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + __name(mapCacheHas, "mapCacheHas"); + function mapCacheSet(key, value) { + var data = getMapData(this, key), size2 = data.size; + data.set(key, value); + this.size += data.size == size2 ? 0 : 1; + return this; + } + __name(mapCacheSet, "mapCacheSet"); + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype["delete"] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + function SetCache(values2) { + var index = -1, length = values2 == null ? 0 : values2.length; + this.__data__ = new MapCache(); + while (++index < length) { + this.add(values2[index]); + } + } + __name(SetCache, "SetCache"); + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + __name(setCacheAdd, "setCacheAdd"); + function setCacheHas(value) { + return this.__data__.has(value); + } + __name(setCacheHas, "setCacheHas"); + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + __name(Stack, "Stack"); + function stackClear() { + this.__data__ = new ListCache(); + this.size = 0; + } + __name(stackClear, "stackClear"); + function stackDelete(key) { + var data = this.__data__, result2 = data["delete"](key); + this.size = data.size; + return result2; + } + __name(stackDelete, "stackDelete"); + function stackGet(key) { + return this.__data__.get(key); + } + __name(stackGet, "stackGet"); + function stackHas(key) { + return this.__data__.has(key); + } + __name(stackHas, "stackHas"); + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + __name(stackSet, "stackSet"); + Stack.prototype.clear = stackClear; + Stack.prototype["delete"] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length; + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. + (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. + isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. + isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. + isIndex(key, length)))) { + result2.push(key); + } + } + return result2; + } + __name(arrayLikeKeys, "arrayLikeKeys"); + function arraySample(array) { + var length = array.length; + return length ? array[baseRandom(0, length - 1)] : undefined2; + } + __name(arraySample, "arraySample"); + function arraySampleSize(array, n) { + return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); + } + __name(arraySampleSize, "arraySampleSize"); + function arrayShuffle(array) { + return shuffleSelf(copyArray(array)); + } + __name(arrayShuffle, "arrayShuffle"); + function assignMergeValue(object, key, value) { + if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) { + baseAssignValue(object, key, value); + } + } + __name(assignMergeValue, "assignMergeValue"); + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) { + baseAssignValue(object, key, value); + } + } + __name(assignValue, "assignValue"); + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; + } + __name(assocIndexOf, "assocIndexOf"); + function baseAggregator(collection, setter, iteratee2, accumulator) { + baseEach(collection, function(value, key, collection2) { + setter(accumulator, value, iteratee2(value), collection2); + }); + return accumulator; + } + __name(baseAggregator, "baseAggregator"); + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + __name(baseAssign, "baseAssign"); + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + __name(baseAssignIn, "baseAssignIn"); + function baseAssignValue(object, key, value) { + if (key == "__proto__" && defineProperty) { + defineProperty(object, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + } else { + object[key] = value; + } + } + __name(baseAssignValue, "baseAssignValue"); + function baseAt(object, paths) { + var index = -1, length = paths.length, result2 = Array2(length), skip2 = object == null; + while (++index < length) { + result2[index] = skip2 ? undefined2 : get(object, paths[index]); + } + return result2; + } + __name(baseAt, "baseAt"); + function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined2) { + number = number <= upper ? number : upper; + } + if (lower !== undefined2) { + number = number >= lower ? number : lower; + } + } + return number; + } + __name(baseClamp, "baseClamp"); + function baseClone(value, bitmask, customizer, key, object, stack) { + var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; + if (customizer) { + result2 = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result2 !== undefined2) { + return result2; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result2 = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result2); + } + } else { + var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || isFunc && !object) { + result2 = isFlat || isFunc ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result2 = initCloneByTag(value, tag, isDeep); + } + } + stack || (stack = new Stack()); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result2); + if (isSet(value)) { + value.forEach(function(subValue) { + result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap(value)) { + value.forEach(function(subValue, key2) { + result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + } + var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; + var props = isArr ? undefined2 : keysFunc(value); + arrayEach(props || value, function(subValue, key2) { + if (props) { + key2 = subValue; + subValue = value[key2]; + } + assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + return result2; + } + __name(baseClone, "baseClone"); + function baseConforms(source) { + var props = keys(source); + return function(object) { + return baseConformsTo(object, source, props); + }; + } + __name(baseConforms, "baseConforms"); + function baseConformsTo(object, source, props) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object2(object); + while (length--) { + var key = props[length], predicate = source[key], value = object[key]; + if (value === undefined2 && !(key in object) || !predicate(value)) { + return false; + } + } + return true; + } + __name(baseConformsTo, "baseConformsTo"); + function baseDelay(func, wait, args) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return setTimeout2(function() { + func.apply(undefined2, args); + }, wait); + } + __name(baseDelay, "baseDelay"); + function baseDifference(array, values2, iteratee2, comparator) { + var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values2.length; + if (!length) { + return result2; + } + if (iteratee2) { + values2 = arrayMap(values2, baseUnary(iteratee2)); + } + if (comparator) { + includes2 = arrayIncludesWith; + isCommon = false; + } else if (values2.length >= LARGE_ARRAY_SIZE) { + includes2 = cacheHas; + isCommon = false; + values2 = new SetCache(values2); + } + outer: + while (++index < length) { + var value = array[index], computed = iteratee2 == null ? value : iteratee2(value); + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values2[valuesIndex] === computed) { + continue outer; + } + } + result2.push(value); + } else if (!includes2(values2, computed, comparator)) { + result2.push(value); + } + } + return result2; + } + __name(baseDifference, "baseDifference"); + var baseEach = createBaseEach(baseForOwn); + var baseEachRight = createBaseEach(baseForOwnRight, true); + function baseEvery(collection, predicate) { + var result2 = true; + baseEach(collection, function(value, index, collection2) { + result2 = !!predicate(value, index, collection2); + return result2; + }); + return result2; + } + __name(baseEvery, "baseEvery"); + function baseExtremum(array, iteratee2, comparator) { + var index = -1, length = array.length; + while (++index < length) { + var value = array[index], current = iteratee2(value); + if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) { + var computed = current, result2 = value; + } + } + return result2; + } + __name(baseExtremum, "baseExtremum"); + function baseFill(array, value, start, end) { + var length = array.length; + start = toInteger(start); + if (start < 0) { + start = -start > length ? 0 : length + start; + } + end = end === undefined2 || end > length ? length : toInteger(end); + if (end < 0) { + end += length; + } + end = start > end ? 0 : toLength(end); + while (start < end) { + array[start++] = value; + } + return array; + } + __name(baseFill, "baseFill"); + function baseFilter(collection, predicate) { + var result2 = []; + baseEach(collection, function(value, index, collection2) { + if (predicate(value, index, collection2)) { + result2.push(value); + } + }); + return result2; + } + __name(baseFilter, "baseFilter"); + function baseFlatten(array, depth, predicate, isStrict, result2) { + var index = -1, length = array.length; + predicate || (predicate = isFlattenable); + result2 || (result2 = []); + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + baseFlatten(value, depth - 1, predicate, isStrict, result2); + } else { + arrayPush(result2, value); + } + } else if (!isStrict) { + result2[result2.length] = value; + } + } + return result2; + } + __name(baseFlatten, "baseFlatten"); + var baseFor = createBaseFor(); + var baseForRight = createBaseFor(true); + function baseForOwn(object, iteratee2) { + return object && baseFor(object, iteratee2, keys); + } + __name(baseForOwn, "baseForOwn"); + function baseForOwnRight(object, iteratee2) { + return object && baseForRight(object, iteratee2, keys); + } + __name(baseForOwnRight, "baseForOwnRight"); + function baseFunctions(object, props) { + return arrayFilter(props, function(key) { + return isFunction(object[key]); + }); + } + __name(baseFunctions, "baseFunctions"); + function baseGet(object, path) { + path = castPath(path, object); + var index = 0, length = path.length; + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return index && index == length ? object : undefined2; + } + __name(baseGet, "baseGet"); + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result2 = keysFunc(object); + return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object)); + } + __name(baseGetAllKeys, "baseGetAllKeys"); + function baseGetTag(value) { + if (value == null) { + return value === undefined2 ? undefinedTag : nullTag; + } + return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value); + } + __name(baseGetTag, "baseGetTag"); + function baseGt(value, other) { + return value > other; + } + __name(baseGt, "baseGt"); + function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); + } + __name(baseHas, "baseHas"); + function baseHasIn(object, key) { + return object != null && key in Object2(object); + } + __name(baseHasIn, "baseHasIn"); + function baseInRange(number, start, end) { + return number >= nativeMin(start, end) && number < nativeMax(start, end); + } + __name(baseInRange, "baseInRange"); + function baseIntersection(arrays, iteratee2, comparator) { + var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = []; + while (othIndex--) { + var array = arrays[othIndex]; + if (othIndex && iteratee2) { + array = arrayMap(array, baseUnary(iteratee2)); + } + maxLength = nativeMin(array.length, maxLength); + caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2; + } + array = arrays[0]; + var index = -1, seen = caches[0]; + outer: + while (++index < length && result2.length < maxLength) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + value = comparator || value !== 0 ? value : 0; + if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) { + othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) { + continue outer; + } + } + if (seen) { + seen.push(computed); + } + result2.push(value); + } + } + return result2; + } + __name(baseIntersection, "baseIntersection"); + function baseInverter(object, setter, iteratee2, accumulator) { + baseForOwn(object, function(value, key, object2) { + setter(accumulator, iteratee2(value), key, object2); + }); + return accumulator; + } + __name(baseInverter, "baseInverter"); + function baseInvoke(object, path, args) { + path = castPath(path, object); + object = parent(object, path); + var func = object == null ? object : object[toKey(last(path))]; + return func == null ? undefined2 : apply(func, object, args); + } + __name(baseInvoke, "baseInvoke"); + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + __name(baseIsArguments, "baseIsArguments"); + function baseIsArrayBuffer(value) { + return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; + } + __name(baseIsArrayBuffer, "baseIsArrayBuffer"); + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } + __name(baseIsDate, "baseIsDate"); + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + __name(baseIsEqual, "baseIsEqual"); + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack()); + return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new Stack()); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack()); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + __name(baseIsEqualDeep, "baseIsEqualDeep"); + function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; + } + __name(baseIsMap, "baseIsMap"); + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, length = index, noCustomizer = !customizer; + if (object == null) { + return !length; + } + object = Object2(object); + while (index--) { + var data = matchData[index]; + if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], objValue = object[key], srcValue = data[1]; + if (noCustomizer && data[2]) { + if (objValue === undefined2 && !(key in object)) { + return false; + } + } else { + var stack = new Stack(); + if (customizer) { + var result2 = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) { + return false; + } + } + } + return true; + } + __name(baseIsMatch, "baseIsMatch"); + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + __name(baseIsNative, "baseIsNative"); + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } + __name(baseIsRegExp, "baseIsRegExp"); + function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; + } + __name(baseIsSet, "baseIsSet"); + function baseIsTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + __name(baseIsTypedArray, "baseIsTypedArray"); + function baseIteratee(value) { + if (typeof value == "function") { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == "object") { + return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); + } + return property(value); + } + __name(baseIteratee, "baseIteratee"); + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result2 = []; + for (var key in Object2(object)) { + if (hasOwnProperty.call(object, key) && key != "constructor") { + result2.push(key); + } + } + return result2; + } + __name(baseKeys, "baseKeys"); + function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), result2 = []; + for (var key in object) { + if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) { + result2.push(key); + } + } + return result2; + } + __name(baseKeysIn, "baseKeysIn"); + function baseLt(value, other) { + return value < other; + } + __name(baseLt, "baseLt"); + function baseMap(collection, iteratee2) { + var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : []; + baseEach(collection, function(value, key, collection2) { + result2[++index] = iteratee2(value, key, collection2); + }); + return result2; + } + __name(baseMap, "baseMap"); + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + __name(baseMatches, "baseMatches"); + function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + __name(baseMatchesProperty, "baseMatchesProperty"); + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack()); + if (isObject(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } else { + var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2; + if (newValue === undefined2) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + __name(baseMerge, "baseMerge"); + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2; + var isCommon = newValue === undefined2; + if (isCommon) { + var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } else { + newValue = []; + } + } else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } else if (!isObject(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } else { + isCommon = false; + } + } + if (isCommon) { + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack["delete"](srcValue); + } + assignMergeValue(object, key, newValue); + } + __name(baseMergeDeep, "baseMergeDeep"); + function baseNth(array, n) { + var length = array.length; + if (!length) { + return; + } + n += n < 0 ? length : 0; + return isIndex(n, length) ? array[n] : undefined2; + } + __name(baseNth, "baseNth"); + function baseOrderBy(collection, iteratees, orders) { + if (iteratees.length) { + iteratees = arrayMap(iteratees, function(iteratee2) { + if (isArray(iteratee2)) { + return function(value) { + return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2); + }; + } + return iteratee2; + }); + } else { + iteratees = [identity]; + } + var index = -1; + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + var result2 = baseMap(collection, function(value, key, collection2) { + var criteria = arrayMap(iteratees, function(iteratee2) { + return iteratee2(value); + }); + return { "criteria": criteria, "index": ++index, "value": value }; + }); + return baseSortBy(result2, function(object, other) { + return compareMultiple(object, other, orders); + }); + } + __name(baseOrderBy, "baseOrderBy"); + function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); + } + __name(basePick, "basePick"); + function basePickBy(object, paths, predicate) { + var index = -1, length = paths.length, result2 = {}; + while (++index < length) { + var path = paths[index], value = baseGet(object, path); + if (predicate(value, path)) { + baseSet(result2, castPath(path, object), value); + } + } + return result2; + } + __name(basePickBy, "basePickBy"); + function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; + } + __name(basePropertyDeep, "basePropertyDeep"); + function basePullAll(array, values2, iteratee2, comparator) { + var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values2.length, seen = array; + if (array === values2) { + values2 = copyArray(values2); + } + if (iteratee2) { + seen = arrayMap(array, baseUnary(iteratee2)); + } + while (++index < length) { + var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value; + while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) { + if (seen !== array) { + splice.call(seen, fromIndex, 1); + } + splice.call(array, fromIndex, 1); + } + } + return array; + } + __name(basePullAll, "basePullAll"); + function basePullAt(array, indexes) { + var length = array ? indexes.length : 0, lastIndex = length - 1; + while (length--) { + var index = indexes[length]; + if (length == lastIndex || index !== previous) { + var previous = index; + if (isIndex(index)) { + splice.call(array, index, 1); + } else { + baseUnset(array, index); + } + } + } + return array; + } + __name(basePullAt, "basePullAt"); + function baseRandom(lower, upper) { + return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); + } + __name(baseRandom, "baseRandom"); + function baseRange(start, end, step, fromRight) { + var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length); + while (length--) { + result2[fromRight ? length : ++index] = start; + start += step; + } + return result2; + } + __name(baseRange, "baseRange"); + function baseRepeat(string, n) { + var result2 = ""; + if (!string || n < 1 || n > MAX_SAFE_INTEGER) { + return result2; + } + do { + if (n % 2) { + result2 += string; + } + n = nativeFloor(n / 2); + if (n) { + string += string; + } + } while (n); + return result2; + } + __name(baseRepeat, "baseRepeat"); + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ""); + } + __name(baseRest, "baseRest"); + function baseSample(collection) { + return arraySample(values(collection)); + } + __name(baseSample, "baseSample"); + function baseSampleSize(collection, n) { + var array = values(collection); + return shuffleSelf(array, baseClamp(n, 0, array.length)); + } + __name(baseSampleSize, "baseSampleSize"); + function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + var index = -1, length = path.length, lastIndex = length - 1, nested = object; + while (nested != null && ++index < length) { + var key = toKey(path[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") { + return object; + } + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined2; + if (newValue === undefined2) { + newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + __name(baseSet, "baseSet"); + var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; + }; + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, "toString", { + "configurable": true, + "enumerable": false, + "value": constant(string), + "writable": true + }); + }; + function baseShuffle(collection) { + return shuffleSelf(values(collection)); + } + __name(baseShuffle, "baseShuffle"); + function baseSlice(array, start, end) { + var index = -1, length = array.length; + if (start < 0) { + start = -start > length ? 0 : length + start; + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : end - start >>> 0; + start >>>= 0; + var result2 = Array2(length); + while (++index < length) { + result2[index] = array[index + start]; + } + return result2; + } + __name(baseSlice, "baseSlice"); + function baseSome(collection, predicate) { + var result2; + baseEach(collection, function(value, index, collection2) { + result2 = predicate(value, index, collection2); + return !result2; + }); + return !!result2; + } + __name(baseSome, "baseSome"); + function baseSortedIndex(array, value, retHighest) { + var low = 0, high = array == null ? low : array.length; + if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = low + high >>> 1, computed = array[mid]; + if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return baseSortedIndexBy(array, value, identity, retHighest); + } + __name(baseSortedIndex, "baseSortedIndex"); + function baseSortedIndexBy(array, value, iteratee2, retHighest) { + var low = 0, high = array == null ? 0 : array.length; + if (high === 0) { + return 0; + } + value = iteratee2(value); + var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2; + while (low < high) { + var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed); + if (valIsNaN) { + var setLow = retHighest || othIsReflexive; + } else if (valIsUndefined) { + setLow = othIsReflexive && (retHighest || othIsDefined); + } else if (valIsNull) { + setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); + } else if (valIsSymbol) { + setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); + } else if (othIsNull || othIsSymbol) { + setLow = false; + } else { + setLow = retHighest ? computed <= value : computed < value; + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); + } + __name(baseSortedIndexBy, "baseSortedIndexBy"); + function baseSortedUniq(array, iteratee2) { + var index = -1, length = array.length, resIndex = 0, result2 = []; + while (++index < length) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + if (!index || !eq(computed, seen)) { + var seen = computed; + result2[resIndex++] = value === 0 ? 0 : value; + } + } + return result2; + } + __name(baseSortedUniq, "baseSortedUniq"); + function baseToNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + return +value; + } + __name(baseToNumber, "baseToNumber"); + function baseToString(value) { + if (typeof value == "string") { + return value; + } + if (isArray(value)) { + return arrayMap(value, baseToString) + ""; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ""; + } + var result2 = value + ""; + return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; + } + __name(baseToString, "baseToString"); + function baseUniq(array, iteratee2, comparator) { + var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2; + if (comparator) { + isCommon = false; + includes2 = arrayIncludesWith; + } else if (length >= LARGE_ARRAY_SIZE) { + var set2 = iteratee2 ? null : createSet(array); + if (set2) { + return setToArray(set2); + } + isCommon = false; + includes2 = cacheHas; + seen = new SetCache(); + } else { + seen = iteratee2 ? [] : result2; + } + outer: + while (++index < length) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee2) { + seen.push(computed); + } + result2.push(value); + } else if (!includes2(seen, computed, comparator)) { + if (seen !== result2) { + seen.push(computed); + } + result2.push(value); + } + } + return result2; + } + __name(baseUniq, "baseUniq"); + function baseUnset(object, path) { + path = castPath(path, object); + var index = -1, length = path.length; + if (!length) { + return true; + } + while (++index < length) { + var key = toKey(path[index]); + if (key === "__proto__" && !hasOwnProperty.call(object, "__proto__")) { + return false; + } + if ((key === "constructor" || key === "prototype") && index < length - 1) { + return false; + } + } + var obj = parent(object, path); + return obj == null || delete obj[toKey(last(path))]; + } + __name(baseUnset, "baseUnset"); + function baseUpdate(object, path, updater, customizer) { + return baseSet(object, path, updater(baseGet(object, path)), customizer); + } + __name(baseUpdate, "baseUpdate"); + function baseWhile(array, predicate, isDrop, fromRight) { + var length = array.length, index = fromRight ? length : -1; + while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) { + } + return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index); + } + __name(baseWhile, "baseWhile"); + function baseWrapperValue(value, actions) { + var result2 = value; + if (result2 instanceof LazyWrapper) { + result2 = result2.value(); + } + return arrayReduce(actions, function(result3, action) { + return action.func.apply(action.thisArg, arrayPush([result3], action.args)); + }, result2); + } + __name(baseWrapperValue, "baseWrapperValue"); + function baseXor(arrays, iteratee2, comparator) { + var length = arrays.length; + if (length < 2) { + return length ? baseUniq(arrays[0]) : []; + } + var index = -1, result2 = Array2(length); + while (++index < length) { + var array = arrays[index], othIndex = -1; + while (++othIndex < length) { + if (othIndex != index) { + result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator); + } + } + } + return baseUniq(baseFlatten(result2, 1), iteratee2, comparator); + } + __name(baseXor, "baseXor"); + function baseZipObject(props, values2, assignFunc) { + var index = -1, length = props.length, valsLength = values2.length, result2 = {}; + while (++index < length) { + var value = index < valsLength ? values2[index] : undefined2; + assignFunc(result2, props[index], value); + } + return result2; + } + __name(baseZipObject, "baseZipObject"); + function castArrayLikeObject(value) { + return isArrayLikeObject(value) ? value : []; + } + __name(castArrayLikeObject, "castArrayLikeObject"); + function castFunction(value) { + return typeof value == "function" ? value : identity; + } + __name(castFunction, "castFunction"); + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString2(value)); + } + __name(castPath, "castPath"); + var castRest = baseRest; + function castSlice(array, start, end) { + var length = array.length; + end = end === undefined2 ? length : end; + return !start && end >= length ? array : baseSlice(array, start, end); + } + __name(castSlice, "castSlice"); + var clearTimeout2 = ctxClearTimeout || function(id) { + return root.clearTimeout(id); + }; + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + buffer.copy(result2); + return result2; + } + __name(cloneBuffer, "cloneBuffer"); + function cloneArrayBuffer(arrayBuffer) { + var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer)); + return result2; + } + __name(cloneArrayBuffer, "cloneArrayBuffer"); + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + __name(cloneDataView, "cloneDataView"); + function cloneRegExp(regexp) { + var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result2.lastIndex = regexp.lastIndex; + return result2; + } + __name(cloneRegExp, "cloneRegExp"); + function cloneSymbol(symbol) { + return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {}; + } + __name(cloneSymbol, "cloneSymbol"); + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + __name(cloneTypedArray, "cloneTypedArray"); + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); + var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other); + if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { + return 1; + } + if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { + return -1; + } + } + return 0; + } + __name(compareAscending, "compareAscending"); + function compareMultiple(object, other, orders) { + var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; + while (++index < length) { + var result2 = compareAscending(objCriteria[index], othCriteria[index]); + if (result2) { + if (index >= ordersLength) { + return result2; + } + var order = orders[index]; + return result2 * (order == "desc" ? -1 : 1); + } + } + return object.index - other.index; + } + __name(compareMultiple, "compareMultiple"); + function composeArgs(args, partials, holders, isCurried) { + var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried; + while (++leftIndex < leftLength) { + result2[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result2[holders[argsIndex]] = args[argsIndex]; + } + } + while (rangeLength--) { + result2[leftIndex++] = args[argsIndex++]; + } + return result2; + } + __name(composeArgs, "composeArgs"); + function composeArgsRight(args, partials, holders, isCurried) { + var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried; + while (++argsIndex < rangeLength) { + result2[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result2[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result2[offset + holders[holdersIndex]] = args[argsIndex++]; + } + } + return result2; + } + __name(composeArgsRight, "composeArgsRight"); + function copyArray(source, array) { + var index = -1, length = source.length; + array || (array = Array2(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + __name(copyArray, "copyArray"); + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + var index = -1, length = props.length; + while (++index < length) { + var key = props[index]; + var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2; + if (newValue === undefined2) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + __name(copyObject, "copyObject"); + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + __name(copySymbols, "copySymbols"); + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + __name(copySymbolsIn, "copySymbolsIn"); + function createAggregator(setter, initializer) { + return function(collection, iteratee2) { + var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; + return func(collection, setter, getIteratee(iteratee2, 2), accumulator); + }; + } + __name(createAggregator, "createAggregator"); + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2; + customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined2 : customizer; + length = 1; + } + object = Object2(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + __name(createAssigner, "createAssigner"); + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee2) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee2); + } + var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection); + while (fromRight ? index-- : ++index < length) { + if (iteratee2(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + __name(createBaseEach, "createBaseEach"); + function createBaseFor(fromRight) { + return function(object, iteratee2, keysFunc) { + var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length; + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee2(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + __name(createBaseFor, "createBaseFor"); + function createBind(func, bitmask, thisArg) { + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); + function wrapper() { + var fn = this && this !== root && this instanceof wrapper ? Ctor : func; + return fn.apply(isBind ? thisArg : this, arguments); + } + __name(wrapper, "wrapper"); + return wrapper; + } + __name(createBind, "createBind"); + function createCaseFirst(methodName) { + return function(string) { + string = toString2(string); + var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2; + var chr = strSymbols ? strSymbols[0] : string.charAt(0); + var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1); + return chr[methodName]() + trailing; + }; + } + __name(createCaseFirst, "createCaseFirst"); + function createCompounder(callback) { + return function(string) { + return arrayReduce(words(deburr(string).replace(reApos, "")), callback, ""); + }; + } + __name(createCompounder, "createCompounder"); + function createCtor(Ctor) { + return function() { + var args = arguments; + switch (args.length) { + case 0: + return new Ctor(); + case 1: + return new Ctor(args[0]); + case 2: + return new Ctor(args[0], args[1]); + case 3: + return new Ctor(args[0], args[1], args[2]); + case 4: + return new Ctor(args[0], args[1], args[2], args[3]); + case 5: + return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: + return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: + return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args); + return isObject(result2) ? result2 : thisBinding; + }; + } + __name(createCtor, "createCtor"); + function createCurry(func, bitmask, arity) { + var Ctor = createCtor(func); + function wrapper() { + var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper); + while (index--) { + args[index] = arguments[index]; + } + var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder); + length -= holders.length; + if (length < arity) { + return createRecurry( + func, + bitmask, + createHybrid, + wrapper.placeholder, + undefined2, + args, + holders, + undefined2, + undefined2, + arity - length + ); + } + var fn = this && this !== root && this instanceof wrapper ? Ctor : func; + return apply(fn, this, args); + } + __name(wrapper, "wrapper"); + return wrapper; + } + __name(createCurry, "createCurry"); + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object2(collection); + if (!isArrayLike(collection)) { + var iteratee2 = getIteratee(predicate, 3); + collection = keys(collection); + predicate = /* @__PURE__ */ __name(function(key) { + return iteratee2(iterable[key], key, iterable); + }, "predicate"); + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2; + }; + } + __name(createFind, "createFind"); + function createFlow(fromRight) { + return flatRest(function(funcs) { + var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; + if (fromRight) { + funcs.reverse(); + } + while (index--) { + var func = funcs[index]; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + if (prereq && !wrapper && getFuncName(func) == "wrapper") { + var wrapper = new LodashWrapper([], true); + } + } + index = wrapper ? index : length; + while (++index < length) { + func = funcs[index]; + var funcName = getFuncName(func), data = funcName == "wrapper" ? getData(func) : undefined2; + if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) { + wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); + } else { + wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func); + } + } + return function() { + var args = arguments, value = args[0]; + if (wrapper && args.length == 1 && isArray(value)) { + return wrapper.plant(value).value(); + } + var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value; + while (++index2 < length) { + result2 = funcs[index2].call(this, result2); + } + return result2; + }; + }); + } + __name(createFlow, "createFlow"); + function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) { + var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func); + function wrapper() { + var length = arguments.length, args = Array2(length), index = length; + while (index--) { + args[index] = arguments[index]; + } + if (isCurried) { + var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder); + } + if (partials) { + args = composeArgs(args, partials, holders, isCurried); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight, isCurried); + } + length -= holdersCount; + if (isCurried && length < arity) { + var newHolders = replaceHolders(args, placeholder); + return createRecurry( + func, + bitmask, + createHybrid, + wrapper.placeholder, + thisArg, + args, + newHolders, + argPos, + ary2, + arity - length + ); + } + var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func; + length = args.length; + if (argPos) { + args = reorder(args, argPos); + } else if (isFlip && length > 1) { + args.reverse(); + } + if (isAry && ary2 < length) { + args.length = ary2; + } + if (this && this !== root && this instanceof wrapper) { + fn = Ctor || createCtor(fn); + } + return fn.apply(thisBinding, args); + } + __name(wrapper, "wrapper"); + return wrapper; + } + __name(createHybrid, "createHybrid"); + function createInverter(setter, toIteratee) { + return function(object, iteratee2) { + return baseInverter(object, setter, toIteratee(iteratee2), {}); + }; + } + __name(createInverter, "createInverter"); + function createMathOperation(operator, defaultValue) { + return function(value, other) { + var result2; + if (value === undefined2 && other === undefined2) { + return defaultValue; + } + if (value !== undefined2) { + result2 = value; + } + if (other !== undefined2) { + if (result2 === undefined2) { + return other; + } + if (typeof value == "string" || typeof other == "string") { + value = baseToString(value); + other = baseToString(other); + } else { + value = baseToNumber(value); + other = baseToNumber(other); + } + result2 = operator(value, other); + } + return result2; + }; + } + __name(createMathOperation, "createMathOperation"); + function createOver(arrayFunc) { + return flatRest(function(iteratees) { + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + return baseRest(function(args) { + var thisArg = this; + return arrayFunc(iteratees, function(iteratee2) { + return apply(iteratee2, thisArg, args); + }); + }); + }); + } + __name(createOver, "createOver"); + function createPadding(length, chars) { + chars = chars === undefined2 ? " " : baseToString(chars); + var charsLength = chars.length; + if (charsLength < 2) { + return charsLength ? baseRepeat(chars, length) : chars; + } + var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars))); + return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join("") : result2.slice(0, length); + } + __name(createPadding, "createPadding"); + function createPartial(func, bitmask, thisArg, partials) { + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); + function wrapper() { + var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func; + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return apply(fn, isBind ? thisArg : this, args); + } + __name(wrapper, "wrapper"); + return wrapper; + } + __name(createPartial, "createPartial"); + function createRange(fromRight) { + return function(start, end, step) { + if (step && typeof step != "number" && isIterateeCall(start, end, step)) { + end = step = undefined2; + } + start = toFinite(start); + if (end === undefined2) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step); + return baseRange(start, end, step, fromRight); + }; + } + __name(createRange, "createRange"); + function createRelationalOperation(operator) { + return function(value, other) { + if (!(typeof value == "string" && typeof other == "string")) { + value = toNumber(value); + other = toNumber(other); + } + return operator(value, other); + }; + } + __name(createRelationalOperation, "createRelationalOperation"); + function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) { + var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials; + bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG; + bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); + if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { + bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); + } + var newData = [ + func, + bitmask, + thisArg, + newPartials, + newHolders, + newPartialsRight, + newHoldersRight, + argPos, + ary2, + arity + ]; + var result2 = wrapFunc.apply(undefined2, newData); + if (isLaziable(func)) { + setData(result2, newData); + } + result2.placeholder = placeholder; + return setWrapToString(result2, func, bitmask); + } + __name(createRecurry, "createRecurry"); + function createRound(methodName) { + var func = Math2[methodName]; + return function(number, precision) { + number = toNumber(number); + precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); + if (precision && nativeIsFinite(number)) { + var pair = (toString2(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); + pair = (toString2(value) + "e").split("e"); + return +(pair[0] + "e" + (+pair[1] - precision)); + } + return func(number); + }; + } + __name(createRound, "createRound"); + var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values2) { + return new Set2(values2); + }; + function createToPairs(keysFunc) { + return function(object) { + var tag = getTag(object); + if (tag == mapTag) { + return mapToArray(object); + } + if (tag == setTag) { + return setToPairs(object); + } + return baseToPairs(object, keysFunc(object)); + }; + } + __name(createToPairs, "createToPairs"); + function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) { + var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; + if (!isBindKey && typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); + partials = holders = undefined2; + } + ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0); + arity = arity === undefined2 ? arity : toInteger(arity); + length -= holders ? holders.length : 0; + if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, holdersRight = holders; + partials = holders = undefined2; + } + var data = isBindKey ? undefined2 : getData(func); + var newData = [ + func, + bitmask, + thisArg, + partials, + holders, + partialsRight, + holdersRight, + argPos, + ary2, + arity + ]; + if (data) { + mergeData(newData, data); + } + func = newData[0]; + bitmask = newData[1]; + thisArg = newData[2]; + partials = newData[3]; + holders = newData[4]; + arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0); + if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { + bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); + } + if (!bitmask || bitmask == WRAP_BIND_FLAG) { + var result2 = createBind(func, bitmask, thisArg); + } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { + result2 = createCurry(func, bitmask, arity); + } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { + result2 = createPartial(func, bitmask, thisArg, partials); + } else { + result2 = createHybrid.apply(undefined2, newData); + } + var setter = data ? baseSetData : setData; + return setWrapToString(setter(result2, newData), func, bitmask); + } + __name(createWrap, "createWrap"); + function customDefaultsAssignIn(objValue, srcValue, key, object) { + if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) { + return srcValue; + } + return objValue; + } + __name(customDefaultsAssignIn, "customDefaultsAssignIn"); + function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { + if (isObject(objValue) && isObject(srcValue)) { + stack.set(srcValue, objValue); + baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack); + stack["delete"](srcValue); + } + return objValue; + } + __name(customDefaultsMerge, "customDefaultsMerge"); + function customOmitClone(value) { + return isPlainObject(value) ? undefined2 : value; + } + __name(customOmitClone, "customOmitClone"); + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2; + stack.set(array, other); + stack.set(other, array); + while (++index < arrLength) { + var arrValue = array[index], othValue = other[index]; + if (customizer) { + var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined2) { + if (compared) { + continue; + } + result2 = false; + break; + } + if (seen) { + if (!arraySome(other, function(othValue2, othIndex) { + if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result2 = false; + break; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result2 = false; + break; + } + } + stack["delete"](array); + stack["delete"](other); + return result2; + } + __name(equalArrays, "equalArrays"); + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { + return false; + } + object = object.buffer; + other = other.buffer; + case arrayBufferTag: + if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { + return false; + } + return true; + case boolTag: + case dateTag: + case numberTag: + return eq(+object, +other); + case errorTag: + return object.name == other.name && object.message == other.message; + case regexpTag: + case stringTag: + return object == other + ""; + case mapTag: + var convert = mapToArray; + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + if (object.size != other.size && !isPartial) { + return false; + } + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + stack.set(object, other); + var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack["delete"](object); + return result2; + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; + } + __name(equalByTag, "equalByTag"); + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result2 = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], othValue = other[key]; + if (customizer) { + var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + } + if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result2 = false; + break; + } + skipCtor || (skipCtor = key == "constructor"); + } + if (result2 && !skipCtor) { + var objCtor = object.constructor, othCtor = other.constructor; + if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { + result2 = false; + } + } + stack["delete"](object); + stack["delete"](other); + return result2; + } + __name(equalObjects, "equalObjects"); + function flatRest(func) { + return setToString(overRest(func, undefined2, flatten), func + ""); + } + __name(flatRest, "flatRest"); + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + __name(getAllKeys, "getAllKeys"); + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); + } + __name(getAllKeysIn, "getAllKeysIn"); + var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); + }; + function getFuncName(func) { + var result2 = func.name + "", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0; + while (length--) { + var data = array[length], otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result2; + } + __name(getFuncName, "getFuncName"); + function getHolder(func) { + var object = hasOwnProperty.call(lodash, "placeholder") ? lodash : func; + return object.placeholder; + } + __name(getHolder, "getHolder"); + function getIteratee() { + var result2 = lodash.iteratee || iteratee; + result2 = result2 === iteratee ? baseIteratee : result2; + return arguments.length ? result2(arguments[0], arguments[1]) : result2; + } + __name(getIteratee, "getIteratee"); + function getMapData(map2, key) { + var data = map2.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; + } + __name(getMapData, "getMapData"); + function getMatchData(object) { + var result2 = keys(object), length = result2.length; + while (length--) { + var key = result2[length], value = object[key]; + result2[length] = [key, value, isStrictComparable(value)]; + } + return result2; + } + __name(getMatchData, "getMatchData"); + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined2; + } + __name(getNative, "getNative"); + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; + try { + value[symToStringTag] = undefined2; + var unmasked = true; + } catch (e) { + } + var result2 = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result2; + } + __name(getRawTag, "getRawTag"); + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object2(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result2 = []; + while (object) { + arrayPush(result2, getSymbols(object)); + object = getPrototype(object); + } + return result2; + }; + var getTag = baseGetTag; + if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) { + getTag = /* @__PURE__ */ __name(function(value) { + var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : ""; + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: + return dataViewTag; + case mapCtorString: + return mapTag; + case promiseCtorString: + return promiseTag; + case setCtorString: + return setTag; + case weakMapCtorString: + return weakMapTag; + } + } + return result2; + }, "getTag"); + } + function getView(start, end, transforms) { + var index = -1, length = transforms.length; + while (++index < length) { + var data = transforms[index], size2 = data.size; + switch (data.type) { + case "drop": + start += size2; + break; + case "dropRight": + end -= size2; + break; + case "take": + end = nativeMin(end, start + size2); + break; + case "takeRight": + start = nativeMax(start, end - size2); + break; + } + } + return { "start": start, "end": end }; + } + __name(getView, "getView"); + function getWrapDetails(source) { + var match = source.match(reWrapDetails); + return match ? match[1].split(reSplitDetails) : []; + } + __name(getWrapDetails, "getWrapDetails"); + function hasPath(object, path, hasFunc) { + path = castPath(path, object); + var index = -1, length = path.length, result2 = false; + while (++index < length) { + var key = toKey(path[index]); + if (!(result2 = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result2 || ++index != length) { + return result2; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); + } + __name(hasPath, "hasPath"); + function initCloneArray(array) { + var length = array.length, result2 = new array.constructor(length); + if (length && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) { + result2.index = array.index; + result2.input = array.input; + } + return result2; + } + __name(initCloneArray, "initCloneArray"); + function initCloneObject(object) { + return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; + } + __name(initCloneObject, "initCloneObject"); + function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + case boolTag: + case dateTag: + return new Ctor(+object); + case dataViewTag: + return cloneDataView(object, isDeep); + case float32Tag: + case float64Tag: + case int8Tag: + case int16Tag: + case int32Tag: + case uint8Tag: + case uint8ClampedTag: + case uint16Tag: + case uint32Tag: + return cloneTypedArray(object, isDeep); + case mapTag: + return new Ctor(); + case numberTag: + case stringTag: + return new Ctor(object); + case regexpTag: + return cloneRegExp(object); + case setTag: + return new Ctor(); + case symbolTag: + return cloneSymbol(object); + } + } + __name(initCloneByTag, "initCloneByTag"); + function insertWrapDetails(source, details) { + var length = details.length; + if (!length) { + return source; + } + var lastIndex = length - 1; + details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex]; + details = details.join(length > 2 ? ", " : " "); + return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n"); + } + __name(insertWrapDetails, "insertWrapDetails"); + function isFlattenable(value) { + return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); + } + __name(isFlattenable, "isFlattenable"); + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); + } + __name(isIndex, "isIndex"); + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) { + return eq(object[index], value); + } + return false; + } + __name(isIterateeCall, "isIterateeCall"); + function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object); + } + __name(isKey, "isKey"); + function isKeyable(value) { + var type = typeof value; + return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; + } + __name(isKeyable, "isKeyable"); + function isLaziable(func) { + var funcName = getFuncName(func), other = lodash[funcName]; + if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) { + return false; + } + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; + } + __name(isLaziable, "isLaziable"); + function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; + } + __name(isMasked, "isMasked"); + var isMaskable = coreJsData ? isFunction : stubFalse; + function isPrototype(value) { + var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; + return value === proto; + } + __name(isPrototype, "isPrototype"); + function isStrictComparable(value) { + return value === value && !isObject(value); + } + __name(isStrictComparable, "isStrictComparable"); + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object)); + }; + } + __name(matchesStrictComparable, "matchesStrictComparable"); + function memoizeCapped(func) { + var result2 = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + var cache = result2.cache; + return result2; + } + __name(memoizeCapped, "memoizeCapped"); + function mergeData(data, source) { + var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); + var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; + if (!(isCommon || isCombo)) { + return data; + } + if (srcBitmask & WRAP_BIND_FLAG) { + data[2] = source[2]; + newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; + } + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : value; + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; + } + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; + } + value = source[7]; + if (value) { + data[7] = value; + } + if (srcBitmask & WRAP_ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + if (data[9] == null) { + data[9] = source[9]; + } + data[0] = source[0]; + data[1] = newBitmask; + return data; + } + __name(mergeData, "mergeData"); + function nativeKeysIn(object) { + var result2 = []; + if (object != null) { + for (var key in Object2(object)) { + result2.push(key); + } + } + return result2; + } + __name(nativeKeysIn, "nativeKeysIn"); + function objectToString(value) { + return nativeObjectToString.call(value); + } + __name(objectToString, "objectToString"); + function overRest(func, start, transform2) { + start = nativeMax(start === undefined2 ? func.length - 1 : start, 0); + return function() { + var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length); + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array2(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform2(array); + return apply(func, this, otherArgs); + }; + } + __name(overRest, "overRest"); + function parent(object, path) { + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); + } + __name(parent, "parent"); + function reorder(array, indexes) { + var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array); + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2; + } + return array; + } + __name(reorder, "reorder"); + function safeGet(object, key) { + if (key === "constructor" && typeof object[key] === "function") { + return; + } + if (key == "__proto__") { + return; + } + return object[key]; + } + __name(safeGet, "safeGet"); + var setData = shortOut(baseSetData); + var setTimeout2 = ctxSetTimeout || function(func, wait) { + return root.setTimeout(func, wait); + }; + var setToString = shortOut(baseSetToString); + function setWrapToString(wrapper, reference, bitmask) { + var source = reference + ""; + return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); + } + __name(setWrapToString, "setWrapToString"); + function shortOut(func) { + var count = 0, lastCalled = 0; + return function() { + var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined2, arguments); + }; + } + __name(shortOut, "shortOut"); + function shuffleSelf(array, size2) { + var index = -1, length = array.length, lastIndex = length - 1; + size2 = size2 === undefined2 ? length : size2; + while (++index < size2) { + var rand = baseRandom(index, lastIndex), value = array[rand]; + array[rand] = array[index]; + array[index] = value; + } + array.length = size2; + return array; + } + __name(shuffleSelf, "shuffleSelf"); + var stringToPath = memoizeCapped(function(string) { + var result2 = []; + if (string.charCodeAt(0) === 46) { + result2.push(""); + } + string.replace(rePropName, function(match, number, quote, subString) { + result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); + }); + return result2; + }); + function toKey(value) { + if (typeof value == "string" || isSymbol(value)) { + return value; + } + var result2 = value + ""; + return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; + } + __name(toKey, "toKey"); + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) { + } + try { + return func + ""; + } catch (e) { + } + } + return ""; + } + __name(toSource, "toSource"); + function updateWrapDetails(details, bitmask) { + arrayEach(wrapFlags, function(pair) { + var value = "_." + pair[0]; + if (bitmask & pair[1] && !arrayIncludes(details, value)) { + details.push(value); + } + }); + return details.sort(); + } + __name(updateWrapDetails, "updateWrapDetails"); + function wrapperClone(wrapper) { + if (wrapper instanceof LazyWrapper) { + return wrapper.clone(); + } + var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); + result2.__actions__ = copyArray(wrapper.__actions__); + result2.__index__ = wrapper.__index__; + result2.__values__ = wrapper.__values__; + return result2; + } + __name(wrapperClone, "wrapperClone"); + function chunk(array, size2, guard) { + if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) { + size2 = 1; + } else { + size2 = nativeMax(toInteger(size2), 0); + } + var length = array == null ? 0 : array.length; + if (!length || size2 < 1) { + return []; + } + var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2)); + while (index < length) { + result2[resIndex++] = baseSlice(array, index, index += size2); + } + return result2; + } + __name(chunk, "chunk"); + function compact(array) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; + while (++index < length) { + var value = array[index]; + if (value) { + result2[resIndex++] = value; + } + } + return result2; + } + __name(compact, "compact"); + function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array2(length - 1), array = arguments[0], index = length; + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } + __name(concat, "concat"); + var difference = baseRest(function(array, values2) { + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true)) : []; + }); + var differenceBy = baseRest(function(array, values2) { + var iteratee2 = last(values2); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : []; + }); + var differenceWith = baseRest(function(array, values2) { + var comparator = last(values2); + if (isArrayLikeObject(comparator)) { + comparator = undefined2; + } + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), undefined2, comparator) : []; + }); + function drop(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + return baseSlice(array, n < 0 ? 0 : n, length); + } + __name(drop, "drop"); + function dropRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, 0, n < 0 ? 0 : n); + } + __name(dropRight, "dropRight"); + function dropRightWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; + } + __name(dropRightWhile, "dropRightWhile"); + function dropWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : []; + } + __name(dropWhile, "dropWhile"); + function fill(array, value, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (start && typeof start != "number" && isIterateeCall(array, value, start)) { + start = 0; + end = length; + } + return baseFill(array, value, start, end); + } + __name(fill, "fill"); + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, getIteratee(predicate, 3), index); + } + __name(findIndex, "findIndex"); + function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length - 1; + if (fromIndex !== undefined2) { + index = toInteger(fromIndex); + index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return baseFindIndex(array, getIteratee(predicate, 3), index, true); + } + __name(findLastIndex, "findLastIndex"); + function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + __name(flatten, "flatten"); + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } + __name(flattenDeep, "flattenDeep"); + function flattenDepth(array, depth) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + depth = depth === undefined2 ? 1 : toInteger(depth); + return baseFlatten(array, depth); + } + __name(flattenDepth, "flattenDepth"); + function fromPairs(pairs) { + var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {}; + while (++index < length) { + var pair = pairs[index]; + baseAssignValue(result2, pair[0], pair[1]); + } + return result2; + } + __name(fromPairs, "fromPairs"); + function head(array) { + return array && array.length ? array[0] : undefined2; + } + __name(head, "head"); + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseIndexOf(array, value, index); + } + __name(indexOf, "indexOf"); + function initial(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 0, -1) : []; + } + __name(initial, "initial"); + var intersection = baseRest(function(arrays) { + var mapped = arrayMap(arrays, castArrayLikeObject); + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : []; + }); + var intersectionBy = baseRest(function(arrays) { + var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); + if (iteratee2 === last(mapped)) { + iteratee2 = undefined2; + } else { + mapped.pop(); + } + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : []; + }); + var intersectionWith = baseRest(function(arrays) { + var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); + comparator = typeof comparator == "function" ? comparator : undefined2; + if (comparator) { + mapped.pop(); + } + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : []; + }); + function join2(array, separator) { + return array == null ? "" : nativeJoin.call(array, separator); + } + __name(join2, "join"); + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined2; + } + __name(last, "last"); + function lastIndexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length; + if (fromIndex !== undefined2) { + index = toInteger(fromIndex); + index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true); + } + __name(lastIndexOf, "lastIndexOf"); + function nth(array, n) { + return array && array.length ? baseNth(array, toInteger(n)) : undefined2; + } + __name(nth, "nth"); + var pull = baseRest(pullAll); + function pullAll(array, values2) { + return array && array.length && values2 && values2.length ? basePullAll(array, values2) : array; + } + __name(pullAll, "pullAll"); + function pullAllBy(array, values2, iteratee2) { + return array && array.length && values2 && values2.length ? basePullAll(array, values2, getIteratee(iteratee2, 2)) : array; + } + __name(pullAllBy, "pullAllBy"); + function pullAllWith(array, values2, comparator) { + return array && array.length && values2 && values2.length ? basePullAll(array, values2, undefined2, comparator) : array; + } + __name(pullAllWith, "pullAllWith"); + var pullAt = flatRest(function(array, indexes) { + var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes); + basePullAt(array, arrayMap(indexes, function(index) { + return isIndex(index, length) ? +index : index; + }).sort(compareAscending)); + return result2; + }); + function remove(array, predicate) { + var result2 = []; + if (!(array && array.length)) { + return result2; + } + var index = -1, indexes = [], length = array.length; + predicate = getIteratee(predicate, 3); + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result2.push(value); + indexes.push(index); + } + } + basePullAt(array, indexes); + return result2; + } + __name(remove, "remove"); + function reverse(array) { + return array == null ? array : nativeReverse.call(array); + } + __name(reverse, "reverse"); + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (end && typeof end != "number" && isIterateeCall(array, start, end)) { + start = 0; + end = length; + } else { + start = start == null ? 0 : toInteger(start); + end = end === undefined2 ? length : toInteger(end); + } + return baseSlice(array, start, end); + } + __name(slice, "slice"); + function sortedIndex(array, value) { + return baseSortedIndex(array, value); + } + __name(sortedIndex, "sortedIndex"); + function sortedIndexBy(array, value, iteratee2) { + return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2)); + } + __name(sortedIndexBy, "sortedIndexBy"); + function sortedIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value); + if (index < length && eq(array[index], value)) { + return index; + } + } + return -1; + } + __name(sortedIndexOf, "sortedIndexOf"); + function sortedLastIndex(array, value) { + return baseSortedIndex(array, value, true); + } + __name(sortedLastIndex, "sortedLastIndex"); + function sortedLastIndexBy(array, value, iteratee2) { + return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true); + } + __name(sortedLastIndexBy, "sortedLastIndexBy"); + function sortedLastIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value, true) - 1; + if (eq(array[index], value)) { + return index; + } + } + return -1; + } + __name(sortedLastIndexOf, "sortedLastIndexOf"); + function sortedUniq(array) { + return array && array.length ? baseSortedUniq(array) : []; + } + __name(sortedUniq, "sortedUniq"); + function sortedUniqBy(array, iteratee2) { + return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : []; + } + __name(sortedUniqBy, "sortedUniqBy"); + function tail(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 1, length) : []; + } + __name(tail, "tail"); + function take(array, n, guard) { + if (!(array && array.length)) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + return baseSlice(array, 0, n < 0 ? 0 : n); + } + __name(take, "take"); + function takeRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, n < 0 ? 0 : n, length); + } + __name(takeRight, "takeRight"); + function takeRightWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; + } + __name(takeRightWhile, "takeRightWhile"); + function takeWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : []; + } + __name(takeWhile, "takeWhile"); + var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); + }); + var unionBy = baseRest(function(arrays) { + var iteratee2 = last(arrays); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)); + }); + var unionWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == "function" ? comparator : undefined2; + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator); + }); + function uniq(array) { + return array && array.length ? baseUniq(array) : []; + } + __name(uniq, "uniq"); + function uniqBy(array, iteratee2) { + return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : []; + } + __name(uniqBy, "uniqBy"); + function uniqWith(array, comparator) { + comparator = typeof comparator == "function" ? comparator : undefined2; + return array && array.length ? baseUniq(array, undefined2, comparator) : []; + } + __name(uniqWith, "uniqWith"); + function unzip(array) { + if (!(array && array.length)) { + return []; + } + var length = 0; + array = arrayFilter(array, function(group) { + if (isArrayLikeObject(group)) { + length = nativeMax(group.length, length); + return true; + } + }); + return baseTimes(length, function(index) { + return arrayMap(array, baseProperty(index)); + }); + } + __name(unzip, "unzip"); + function unzipWith(array, iteratee2) { + if (!(array && array.length)) { + return []; + } + var result2 = unzip(array); + if (iteratee2 == null) { + return result2; + } + return arrayMap(result2, function(group) { + return apply(iteratee2, undefined2, group); + }); + } + __name(unzipWith, "unzipWith"); + var without = baseRest(function(array, values2) { + return isArrayLikeObject(array) ? baseDifference(array, values2) : []; + }); + var xor = baseRest(function(arrays) { + return baseXor(arrayFilter(arrays, isArrayLikeObject)); + }); + var xorBy = baseRest(function(arrays) { + var iteratee2 = last(arrays); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2)); + }); + var xorWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == "function" ? comparator : undefined2; + return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator); + }); + var zip = baseRest(unzip); + function zipObject(props, values2) { + return baseZipObject(props || [], values2 || [], assignValue); + } + __name(zipObject, "zipObject"); + function zipObjectDeep(props, values2) { + return baseZipObject(props || [], values2 || [], baseSet); + } + __name(zipObjectDeep, "zipObjectDeep"); + var zipWith = baseRest(function(arrays) { + var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2; + iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2; + return unzipWith(arrays, iteratee2); + }); + function chain(value) { + var result2 = lodash(value); + result2.__chain__ = true; + return result2; + } + __name(chain, "chain"); + function tap(value, interceptor) { + interceptor(value); + return value; + } + __name(tap, "tap"); + function thru(value, interceptor) { + return interceptor(value); + } + __name(thru, "thru"); + var wrapperAt = flatRest(function(paths) { + var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = /* @__PURE__ */ __name(function(object) { + return baseAt(object, paths); + }, "interceptor"); + if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) { + return this.thru(interceptor); + } + value = value.slice(start, +start + (length ? 1 : 0)); + value.__actions__.push({ + "func": thru, + "args": [interceptor], + "thisArg": undefined2 + }); + return new LodashWrapper(value, this.__chain__).thru(function(array) { + if (length && !array.length) { + array.push(undefined2); + } + return array; + }); + }); + function wrapperChain() { + return chain(this); + } + __name(wrapperChain, "wrapperChain"); + function wrapperCommit() { + return new LodashWrapper(this.value(), this.__chain__); + } + __name(wrapperCommit, "wrapperCommit"); + function wrapperNext() { + if (this.__values__ === undefined2) { + this.__values__ = toArray(this.value()); + } + var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++]; + return { "done": done, "value": value }; + } + __name(wrapperNext, "wrapperNext"); + function wrapperToIterator() { + return this; + } + __name(wrapperToIterator, "wrapperToIterator"); + function wrapperPlant(value) { + var result2, parent2 = this; + while (parent2 instanceof baseLodash) { + var clone2 = wrapperClone(parent2); + clone2.__index__ = 0; + clone2.__values__ = undefined2; + if (result2) { + previous.__wrapped__ = clone2; + } else { + result2 = clone2; + } + var previous = clone2; + parent2 = parent2.__wrapped__; + } + previous.__wrapped__ = value; + return result2; + } + __name(wrapperPlant, "wrapperPlant"); + function wrapperReverse() { + var value = this.__wrapped__; + if (value instanceof LazyWrapper) { + var wrapped = value; + if (this.__actions__.length) { + wrapped = new LazyWrapper(this); + } + wrapped = wrapped.reverse(); + wrapped.__actions__.push({ + "func": thru, + "args": [reverse], + "thisArg": undefined2 + }); + return new LodashWrapper(wrapped, this.__chain__); + } + return this.thru(reverse); + } + __name(wrapperReverse, "wrapperReverse"); + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } + __name(wrapperValue, "wrapperValue"); + var countBy = createAggregator(function(result2, value, key) { + if (hasOwnProperty.call(result2, key)) { + ++result2[key]; + } else { + baseAssignValue(result2, key, 1); + } + }); + function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined2; + } + return func(collection, getIteratee(predicate, 3)); + } + __name(every, "every"); + function filter(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, getIteratee(predicate, 3)); + } + __name(filter, "filter"); + var find = createFind(findIndex); + var findLast = createFind(findLastIndex); + function flatMap(collection, iteratee2) { + return baseFlatten(map(collection, iteratee2), 1); + } + __name(flatMap, "flatMap"); + function flatMapDeep(collection, iteratee2) { + return baseFlatten(map(collection, iteratee2), INFINITY); + } + __name(flatMapDeep, "flatMapDeep"); + function flatMapDepth(collection, iteratee2, depth) { + depth = depth === undefined2 ? 1 : toInteger(depth); + return baseFlatten(map(collection, iteratee2), depth); + } + __name(flatMapDepth, "flatMapDepth"); + function forEach(collection, iteratee2) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, getIteratee(iteratee2, 3)); + } + __name(forEach, "forEach"); + function forEachRight(collection, iteratee2) { + var func = isArray(collection) ? arrayEachRight : baseEachRight; + return func(collection, getIteratee(iteratee2, 3)); + } + __name(forEachRight, "forEachRight"); + var groupBy = createAggregator(function(result2, value, key) { + if (hasOwnProperty.call(result2, key)) { + result2[key].push(value); + } else { + baseAssignValue(result2, key, [value]); + } + }); + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; + } + __name(includes, "includes"); + var invokeMap = baseRest(function(collection, path, args) { + var index = -1, isFunc = typeof path == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : []; + baseEach(collection, function(value) { + result2[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); + }); + return result2; + }); + var keyBy = createAggregator(function(result2, value, key) { + baseAssignValue(result2, key, value); + }); + function map(collection, iteratee2) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, getIteratee(iteratee2, 3)); + } + __name(map, "map"); + function orderBy(collection, iteratees, orders, guard) { + if (collection == null) { + return []; + } + if (!isArray(iteratees)) { + iteratees = iteratees == null ? [] : [iteratees]; + } + orders = guard ? undefined2 : orders; + if (!isArray(orders)) { + orders = orders == null ? [] : [orders]; + } + return baseOrderBy(collection, iteratees, orders); + } + __name(orderBy, "orderBy"); + var partition = createAggregator(function(result2, value, key) { + result2[key ? 0 : 1].push(value); + }, function() { + return [[], []]; + }); + function reduce(collection, iteratee2, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; + return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach); + } + __name(reduce, "reduce"); + function reduceRight(collection, iteratee2, accumulator) { + var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3; + return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight); + } + __name(reduceRight, "reduceRight"); + function reject(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, negate(getIteratee(predicate, 3))); + } + __name(reject, "reject"); + function sample(collection) { + var func = isArray(collection) ? arraySample : baseSample; + return func(collection); + } + __name(sample, "sample"); + function sampleSize(collection, n, guard) { + if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) { + n = 1; + } else { + n = toInteger(n); + } + var func = isArray(collection) ? arraySampleSize : baseSampleSize; + return func(collection, n); + } + __name(sampleSize, "sampleSize"); + function shuffle(collection) { + var func = isArray(collection) ? arrayShuffle : baseShuffle; + return func(collection); + } + __name(shuffle, "shuffle"); + function size(collection) { + if (collection == null) { + return 0; + } + if (isArrayLike(collection)) { + return isString(collection) ? stringSize(collection) : collection.length; + } + var tag = getTag(collection); + if (tag == mapTag || tag == setTag) { + return collection.size; + } + return baseKeys(collection).length; + } + __name(size, "size"); + function some(collection, predicate, guard) { + var func = isArray(collection) ? arraySome : baseSome; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined2; + } + return func(collection, getIteratee(predicate, 3)); + } + __name(some, "some"); + var sortBy = baseRest(function(collection, iteratees) { + if (collection == null) { + return []; + } + var length = iteratees.length; + if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { + iteratees = []; + } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { + iteratees = [iteratees[0]]; + } + return baseOrderBy(collection, baseFlatten(iteratees, 1), []); + }); + var now = ctxNow || function() { + return root.Date.now(); + }; + function after(n, func) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n < 1) { + return func.apply(this, arguments); + } + }; + } + __name(after, "after"); + function ary(func, n, guard) { + n = guard ? undefined2 : n; + n = func && n == null ? func.length : n; + return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n); + } + __name(ary, "ary"); + function before(n, func) { + var result2; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result2 = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined2; + } + return result2; + }; + } + __name(before, "before"); + var bind = baseRest(function(func, thisArg, partials) { + var bitmask = WRAP_BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bind)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(func, bitmask, thisArg, partials, holders); + }); + var bindKey = baseRest(function(object, key, partials) { + var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bindKey)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(key, bitmask, object, partials, holders); + }); + function curry(func, arity, guard) { + arity = guard ? undefined2 : arity; + var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); + result2.placeholder = curry.placeholder; + return result2; + } + __name(curry, "curry"); + function curryRight(func, arity, guard) { + arity = guard ? undefined2 : arity; + var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); + result2.placeholder = curryRight.placeholder; + return result2; + } + __name(curryRight, "curryRight"); + function debounce(func, wait, options) { + var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = "maxWait" in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = undefined2; + lastInvokeTime = time; + result2 = func.apply(thisArg, args); + return result2; + } + __name(invokeFunc, "invokeFunc"); + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout2(timerExpired, wait); + return leading ? invokeFunc(time) : result2; + } + __name(leadingEdge, "leadingEdge"); + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; + return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; + } + __name(remainingWait, "remainingWait"); + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + __name(shouldInvoke, "shouldInvoke"); + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + timerId = setTimeout2(timerExpired, remainingWait(time)); + } + __name(timerExpired, "timerExpired"); + function trailingEdge(time) { + timerId = undefined2; + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined2; + return result2; + } + __name(trailingEdge, "trailingEdge"); + function cancel() { + if (timerId !== undefined2) { + clearTimeout2(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined2; + } + __name(cancel, "cancel"); + function flush() { + return timerId === undefined2 ? result2 : trailingEdge(now()); + } + __name(flush, "flush"); + function debounced() { + var time = now(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === undefined2) { + return leadingEdge(lastCallTime); + } + if (maxing) { + clearTimeout2(timerId); + timerId = setTimeout2(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined2) { + timerId = setTimeout2(timerExpired, wait); + } + return result2; + } + __name(debounced, "debounced"); + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + __name(debounce, "debounce"); + var defer = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); + function flip(func) { + return createWrap(func, WRAP_FLIP_FLAG); + } + __name(flip, "flip"); + function memoize(func, resolver) { + if (typeof func != "function" || resolver != null && typeof resolver != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + var memoized = /* @__PURE__ */ __name(function() { + var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; + if (cache.has(key)) { + return cache.get(key); + } + var result2 = func.apply(this, args); + memoized.cache = cache.set(key, result2) || cache; + return result2; + }, "memoized"); + memoized.cache = new (memoize.Cache || MapCache)(); + return memoized; + } + __name(memoize, "memoize"); + memoize.Cache = MapCache; + function negate(predicate) { + if (typeof predicate != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + switch (args.length) { + case 0: + return !predicate.call(this); + case 1: + return !predicate.call(this, args[0]); + case 2: + return !predicate.call(this, args[0], args[1]); + case 3: + return !predicate.call(this, args[0], args[1], args[2]); + } + return !predicate.apply(this, args); + }; + } + __name(negate, "negate"); + function once(func) { + return before(2, func); + } + __name(once, "once"); + var overArgs = castRest(function(func, transforms) { + transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); + var funcsLength = transforms.length; + return baseRest(function(args) { + var index = -1, length = nativeMin(args.length, funcsLength); + while (++index < length) { + args[index] = transforms[index].call(this, args[index]); + } + return apply(func, this, args); + }); + }); + var partial = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partial)); + return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders); + }); + var partialRight = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partialRight)); + return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders); + }); + var rearg = flatRest(function(func, indexes) { + return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes); + }); + function rest(func, start) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + start = start === undefined2 ? start : toInteger(start); + return baseRest(func, start); + } + __name(rest, "rest"); + function spread(func, start) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + start = start == null ? 0 : nativeMax(toInteger(start), 0); + return baseRest(function(args) { + var array = args[start], otherArgs = castSlice(args, 0, start); + if (array) { + arrayPush(otherArgs, array); + } + return apply(func, this, otherArgs); + }); + } + __name(spread, "spread"); + function throttle(func, wait, options) { + var leading = true, trailing = true; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = "leading" in options ? !!options.leading : leading; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + "leading": leading, + "maxWait": wait, + "trailing": trailing + }); + } + __name(throttle, "throttle"); + function unary(func) { + return ary(func, 1); + } + __name(unary, "unary"); + function wrap(value, wrapper) { + return partial(castFunction(wrapper), value); + } + __name(wrap, "wrap"); + function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray(value) ? value : [value]; + } + __name(castArray, "castArray"); + function clone(value) { + return baseClone(value, CLONE_SYMBOLS_FLAG); + } + __name(clone, "clone"); + function cloneWith(value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); + } + __name(cloneWith, "cloneWith"); + function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); + } + __name(cloneDeep, "cloneDeep"); + function cloneDeepWith(value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); + } + __name(cloneDeepWith, "cloneDeepWith"); + function conformsTo(object, source) { + return source == null || baseConformsTo(object, source, keys(source)); + } + __name(conformsTo, "conformsTo"); + function eq(value, other) { + return value === other || value !== value && other !== other; + } + __name(eq, "eq"); + var gt = createRelationalOperation(baseGt); + var gte = createRelationalOperation(function(value, other) { + return value >= other; + }); + var isArguments = baseIsArguments(/* @__PURE__ */ (function() { + return arguments; + })()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); + }; + var isArray = Array2.isArray; + var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + __name(isArrayLike, "isArrayLike"); + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + __name(isArrayLikeObject, "isArrayLikeObject"); + function isBoolean(value) { + return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag; + } + __name(isBoolean, "isBoolean"); + var isBuffer = nativeIsBuffer || stubFalse; + var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; + function isElement(value) { + return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); + } + __name(isElement, "isElement"); + function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; + } + __name(isEmpty, "isEmpty"); + function isEqual(value, other) { + return baseIsEqual(value, other); + } + __name(isEqual, "isEqual"); + function isEqualWith(value, other, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + var result2 = customizer ? customizer(value, other) : undefined2; + return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2; + } + __name(isEqualWith, "isEqualWith"); + function isError(value) { + if (!isObjectLike(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject(value); + } + __name(isError, "isError"); + function isFinite2(value) { + return typeof value == "number" && nativeIsFinite(value); + } + __name(isFinite2, "isFinite"); + function isFunction(value) { + if (!isObject(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + __name(isFunction, "isFunction"); + function isInteger(value) { + return typeof value == "number" && value == toInteger(value); + } + __name(isInteger, "isInteger"); + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + __name(isLength, "isLength"); + function isObject(value) { + var type = typeof value; + return value != null && (type == "object" || type == "function"); + } + __name(isObject, "isObject"); + function isObjectLike(value) { + return value != null && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + function isMatch(object, source) { + return object === source || baseIsMatch(object, source, getMatchData(source)); + } + __name(isMatch, "isMatch"); + function isMatchWith(object, source, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseIsMatch(object, source, getMatchData(source), customizer); + } + __name(isMatchWith, "isMatchWith"); + function isNaN2(value) { + return isNumber(value) && value != +value; + } + __name(isNaN2, "isNaN"); + function isNative(value) { + if (isMaskable(value)) { + throw new Error2(CORE_ERROR_TEXT); + } + return baseIsNative(value); + } + __name(isNative, "isNative"); + function isNull(value) { + return value === null; + } + __name(isNull, "isNull"); + function isNil(value) { + return value == null; + } + __name(isNil, "isNil"); + function isNumber(value) { + return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag; + } + __name(isNumber, "isNumber"); + function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; + } + __name(isPlainObject, "isPlainObject"); + var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; + function isSafeInteger(value) { + return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; + } + __name(isSafeInteger, "isSafeInteger"); + var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + function isString(value) { + return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag; + } + __name(isString, "isString"); + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; + } + __name(isSymbol, "isSymbol"); + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + function isUndefined(value) { + return value === undefined2; + } + __name(isUndefined, "isUndefined"); + function isWeakMap(value) { + return isObjectLike(value) && getTag(value) == weakMapTag; + } + __name(isWeakMap, "isWeakMap"); + function isWeakSet(value) { + return isObjectLike(value) && baseGetTag(value) == weakSetTag; + } + __name(isWeakSet, "isWeakSet"); + var lt = createRelationalOperation(baseLt); + var lte = createRelationalOperation(function(value, other) { + return value <= other; + }); + function toArray(value) { + if (!value) { + return []; + } + if (isArrayLike(value)) { + return isString(value) ? stringToArray(value) : copyArray(value); + } + if (symIterator && value[symIterator]) { + return iteratorToArray(value[symIterator]()); + } + var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values; + return func(value); + } + __name(toArray, "toArray"); + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = value < 0 ? -1 : 1; + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + __name(toFinite, "toFinite"); + function toInteger(value) { + var result2 = toFinite(value), remainder = result2 % 1; + return result2 === result2 ? remainder ? result2 - remainder : result2 : 0; + } + __name(toInteger, "toInteger"); + function toLength(value) { + return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; + } + __name(toLength, "toLength"); + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = baseTrim(value); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + __name(toNumber, "toNumber"); + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + __name(toPlainObject, "toPlainObject"); + function toSafeInteger(value) { + return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0; + } + __name(toSafeInteger, "toSafeInteger"); + function toString2(value) { + return value == null ? "" : baseToString(value); + } + __name(toString2, "toString"); + var assign = createAssigner(function(object, source) { + if (isPrototype(source) || isArrayLike(source)) { + copyObject(source, keys(source), object); + return; + } + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + assignValue(object, key, source[key]); + } + } + }); + var assignIn = createAssigner(function(object, source) { + copyObject(source, keysIn(source), object); + }); + var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keysIn(source), object, customizer); + }); + var assignWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keys(source), object, customizer); + }); + var at = flatRest(baseAt); + function create(prototype, properties) { + var result2 = baseCreate(prototype); + return properties == null ? result2 : baseAssign(result2, properties); + } + __name(create, "create"); + var defaults = baseRest(function(object, sources) { + object = Object2(object); + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined2; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) { + object[key] = source[key]; + } + } + } + return object; + }); + var defaultsDeep = baseRest(function(args) { + args.push(undefined2, customDefaultsMerge); + return apply(mergeWith, undefined2, args); + }); + function findKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); + } + __name(findKey, "findKey"); + function findLastKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); + } + __name(findLastKey, "findLastKey"); + function forIn(object, iteratee2) { + return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn); + } + __name(forIn, "forIn"); + function forInRight(object, iteratee2) { + return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn); + } + __name(forInRight, "forInRight"); + function forOwn(object, iteratee2) { + return object && baseForOwn(object, getIteratee(iteratee2, 3)); + } + __name(forOwn, "forOwn"); + function forOwnRight(object, iteratee2) { + return object && baseForOwnRight(object, getIteratee(iteratee2, 3)); + } + __name(forOwnRight, "forOwnRight"); + function functions(object) { + return object == null ? [] : baseFunctions(object, keys(object)); + } + __name(functions, "functions"); + function functionsIn(object) { + return object == null ? [] : baseFunctions(object, keysIn(object)); + } + __name(functionsIn, "functionsIn"); + function get(object, path, defaultValue) { + var result2 = object == null ? undefined2 : baseGet(object, path); + return result2 === undefined2 ? defaultValue : result2; + } + __name(get, "get"); + function has(object, path) { + return object != null && hasPath(object, path, baseHas); + } + __name(has, "has"); + function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); + } + __name(hasIn, "hasIn"); + var invert = createInverter(function(result2, value, key) { + if (value != null && typeof value.toString != "function") { + value = nativeObjectToString.call(value); + } + result2[value] = key; + }, constant(identity)); + var invertBy = createInverter(function(result2, value, key) { + if (value != null && typeof value.toString != "function") { + value = nativeObjectToString.call(value); + } + if (hasOwnProperty.call(result2, value)) { + result2[value].push(key); + } else { + result2[value] = [key]; + } + }, getIteratee); + var invoke = baseRest(baseInvoke); + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + __name(keys, "keys"); + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + __name(keysIn, "keysIn"); + function mapKeys(object, iteratee2) { + var result2 = {}; + iteratee2 = getIteratee(iteratee2, 3); + baseForOwn(object, function(value, key, object2) { + baseAssignValue(result2, iteratee2(value, key, object2), value); + }); + return result2; + } + __name(mapKeys, "mapKeys"); + function mapValues(object, iteratee2) { + var result2 = {}; + iteratee2 = getIteratee(iteratee2, 3); + baseForOwn(object, function(value, key, object2) { + baseAssignValue(result2, key, iteratee2(value, key, object2)); + }); + return result2; + } + __name(mapValues, "mapValues"); + var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); + }); + var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); + }); + var omit = flatRest(function(object, paths) { + var result2 = {}; + if (object == null) { + return result2; + } + var isDeep = false; + paths = arrayMap(paths, function(path) { + path = castPath(path, object); + isDeep || (isDeep = path.length > 1); + return path; + }); + copyObject(object, getAllKeysIn(object), result2); + if (isDeep) { + result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); + } + var length = paths.length; + while (length--) { + baseUnset(result2, paths[length]); + } + return result2; + }); + function omitBy(object, predicate) { + return pickBy(object, negate(getIteratee(predicate))); + } + __name(omitBy, "omitBy"); + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + function pickBy(object, predicate) { + if (object == null) { + return {}; + } + var props = arrayMap(getAllKeysIn(object), function(prop) { + return [prop]; + }); + predicate = getIteratee(predicate); + return basePickBy(object, props, function(value, path) { + return predicate(value, path[0]); + }); + } + __name(pickBy, "pickBy"); + function result(object, path, defaultValue) { + path = castPath(path, object); + var index = -1, length = path.length; + if (!length) { + length = 1; + object = undefined2; + } + while (++index < length) { + var value = object == null ? undefined2 : object[toKey(path[index])]; + if (value === undefined2) { + index = length; + value = defaultValue; + } + object = isFunction(value) ? value.call(object) : value; + } + return object; + } + __name(result, "result"); + function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); + } + __name(set, "set"); + function setWith(object, path, value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return object == null ? object : baseSet(object, path, value, customizer); + } + __name(setWith, "setWith"); + var toPairs = createToPairs(keys); + var toPairsIn = createToPairs(keysIn); + function transform(object, iteratee2, accumulator) { + var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object); + iteratee2 = getIteratee(iteratee2, 4); + if (accumulator == null) { + var Ctor = object && object.constructor; + if (isArrLike) { + accumulator = isArr ? new Ctor() : []; + } else if (isObject(object)) { + accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; + } else { + accumulator = {}; + } + } + (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) { + return iteratee2(accumulator, value, index, object2); + }); + return accumulator; + } + __name(transform, "transform"); + function unset(object, path) { + return object == null ? true : baseUnset(object, path); + } + __name(unset, "unset"); + function update(object, path, updater) { + return object == null ? object : baseUpdate(object, path, castFunction(updater)); + } + __name(update, "update"); + function updateWith(object, path, updater, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); + } + __name(updateWith, "updateWith"); + function values(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + __name(values, "values"); + function valuesIn(object) { + return object == null ? [] : baseValues(object, keysIn(object)); + } + __name(valuesIn, "valuesIn"); + function clamp(number, lower, upper) { + if (upper === undefined2) { + upper = lower; + lower = undefined2; + } + if (upper !== undefined2) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined2) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); + } + __name(clamp, "clamp"); + function inRange(number, start, end) { + start = toFinite(start); + if (end === undefined2) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + number = toNumber(number); + return baseInRange(number, start, end); + } + __name(inRange, "inRange"); + function random(lower, upper, floating) { + if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) { + upper = floating = undefined2; + } + if (floating === undefined2) { + if (typeof upper == "boolean") { + floating = upper; + upper = undefined2; + } else if (typeof lower == "boolean") { + floating = lower; + lower = undefined2; + } + } + if (lower === undefined2 && upper === undefined2) { + lower = 0; + upper = 1; + } else { + lower = toFinite(lower); + if (upper === undefined2) { + upper = lower; + lower = 0; + } else { + upper = toFinite(upper); + } + } + if (lower > upper) { + var temp = lower; + lower = upper; + upper = temp; + } + if (floating || lower % 1 || upper % 1) { + var rand = nativeRandom(); + return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper); + } + return baseRandom(lower, upper); + } + __name(random, "random"); + var camelCase = createCompounder(function(result2, word, index) { + word = word.toLowerCase(); + return result2 + (index ? capitalize(word) : word); + }); + function capitalize(string) { + return upperFirst(toString2(string).toLowerCase()); + } + __name(capitalize, "capitalize"); + function deburr(string) { + string = toString2(string); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); + } + __name(deburr, "deburr"); + function endsWith(string, target, position) { + string = toString2(string); + target = baseToString(target); + var length = string.length; + position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length); + var end = position; + position -= target.length; + return position >= 0 && string.slice(position, end) == target; + } + __name(endsWith, "endsWith"); + function escape2(string) { + string = toString2(string); + return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; + } + __name(escape2, "escape"); + function escapeRegExp(string) { + string = toString2(string); + return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string; + } + __name(escapeRegExp, "escapeRegExp"); + var kebabCase = createCompounder(function(result2, word, index) { + return result2 + (index ? "-" : "") + word.toLowerCase(); + }); + var lowerCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + word.toLowerCase(); + }); + var lowerFirst = createCaseFirst("toLowerCase"); + function pad(string, length, chars) { + string = toString2(string); + length = toInteger(length); + var strLength = length ? stringSize(string) : 0; + if (!length || strLength >= length) { + return string; + } + var mid = (length - strLength) / 2; + return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars); + } + __name(pad, "pad"); + function padEnd(string, length, chars) { + string = toString2(string); + length = toInteger(length); + var strLength = length ? stringSize(string) : 0; + return length && strLength < length ? string + createPadding(length - strLength, chars) : string; + } + __name(padEnd, "padEnd"); + function padStart(string, length, chars) { + string = toString2(string); + length = toInteger(length); + var strLength = length ? stringSize(string) : 0; + return length && strLength < length ? createPadding(length - strLength, chars) + string : string; + } + __name(padStart, "padStart"); + function parseInt2(string, radix, guard) { + if (guard || radix == null) { + radix = 0; + } else if (radix) { + radix = +radix; + } + return nativeParseInt(toString2(string).replace(reTrimStart, ""), radix || 0); + } + __name(parseInt2, "parseInt"); + function repeat(string, n, guard) { + if (guard ? isIterateeCall(string, n, guard) : n === undefined2) { + n = 1; + } else { + n = toInteger(n); + } + return baseRepeat(toString2(string), n); + } + __name(repeat, "repeat"); + function replace() { + var args = arguments, string = toString2(args[0]); + return args.length < 3 ? string : string.replace(args[1], args[2]); + } + __name(replace, "replace"); + var snakeCase = createCompounder(function(result2, word, index) { + return result2 + (index ? "_" : "") + word.toLowerCase(); + }); + function split(string, separator, limit) { + if (limit && typeof limit != "number" && isIterateeCall(string, separator, limit)) { + separator = limit = undefined2; + } + limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0; + if (!limit) { + return []; + } + string = toString2(string); + if (string && (typeof separator == "string" || separator != null && !isRegExp(separator))) { + separator = baseToString(separator); + if (!separator && hasUnicode(string)) { + return castSlice(stringToArray(string), 0, limit); + } + } + return string.split(separator, limit); + } + __name(split, "split"); + var startCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + upperFirst(word); + }); + function startsWith(string, target, position) { + string = toString2(string); + position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length); + target = baseToString(target); + return string.slice(position, position + target.length) == target; + } + __name(startsWith, "startsWith"); + function template(string, options, guard) { + var settings = lodash.templateSettings; + if (guard && isIterateeCall(string, options, guard)) { + options = undefined2; + } + string = toString2(string); + options = assignWith({}, options, settings, customDefaultsAssignIn); + var imports = assignWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys); + arrayEach(importsKeys, function(key) { + if (reForbiddenIdentifierChars.test(key)) { + throw new Error2(INVALID_TEMPL_IMPORTS_ERROR_TEXT); + } + }); + var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '"; + var reDelimiters = RegExp2( + (options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$", + "g" + ); + var sourceURL = "//# sourceURL=" + (hasOwnProperty.call(options, "sourceURL") ? (options.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n"; + string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) { + interpolateValue || (interpolateValue = esTemplateValue); + source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar); + if (escapeValue) { + isEscaping = true; + source += "' +\n__e(" + escapeValue + ") +\n'"; + } + if (evaluateValue) { + isEvaluating = true; + source += "';\n" + evaluateValue + ";\n__p += '"; + } + if (interpolateValue) { + source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; + } + index = offset + match.length; + return match; + }); + source += "';\n"; + var variable = hasOwnProperty.call(options, "variable") && options.variable; + if (!variable) { + source = "with (obj) {\n" + source + "\n}\n"; + } else if (reForbiddenIdentifierChars.test(variable)) { + throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT); + } + source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;"); + source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}"; + var result2 = attempt(function() { + return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues); + }); + result2.source = source; + if (isError(result2)) { + throw result2; + } + return result2; + } + __name(template, "template"); + function toLower(value) { + return toString2(value).toLowerCase(); + } + __name(toLower, "toLower"); + function toUpper(value) { + return toString2(value).toUpperCase(); + } + __name(toUpper, "toUpper"); + function trim(string, chars, guard) { + string = toString2(string); + if (string && (guard || chars === undefined2)) { + return baseTrim(string); + } + if (!string || !(chars = baseToString(chars))) { + return string; + } + var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1; + return castSlice(strSymbols, start, end).join(""); + } + __name(trim, "trim"); + function trimEnd(string, chars, guard) { + string = toString2(string); + if (string && (guard || chars === undefined2)) { + return string.slice(0, trimmedEndIndex(string) + 1); + } + if (!string || !(chars = baseToString(chars))) { + return string; + } + var strSymbols = stringToArray(string), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1; + return castSlice(strSymbols, 0, end).join(""); + } + __name(trimEnd, "trimEnd"); + function trimStart(string, chars, guard) { + string = toString2(string); + if (string && (guard || chars === undefined2)) { + return string.replace(reTrimStart, ""); + } + if (!string || !(chars = baseToString(chars))) { + return string; + } + var strSymbols = stringToArray(string), start = charsStartIndex(strSymbols, stringToArray(chars)); + return castSlice(strSymbols, start).join(""); + } + __name(trimStart, "trimStart"); + function truncate(string, options) { + var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION; + if (isObject(options)) { + var separator = "separator" in options ? options.separator : separator; + length = "length" in options ? toInteger(options.length) : length; + omission = "omission" in options ? baseToString(options.omission) : omission; + } + string = toString2(string); + var strLength = string.length; + if (hasUnicode(string)) { + var strSymbols = stringToArray(string); + strLength = strSymbols.length; + } + if (length >= strLength) { + return string; + } + var end = length - stringSize(omission); + if (end < 1) { + return omission; + } + var result2 = strSymbols ? castSlice(strSymbols, 0, end).join("") : string.slice(0, end); + if (separator === undefined2) { + return result2 + omission; + } + if (strSymbols) { + end += result2.length - end; + } + if (isRegExp(separator)) { + if (string.slice(end).search(separator)) { + var match, substring = result2; + if (!separator.global) { + separator = RegExp2(separator.source, toString2(reFlags.exec(separator)) + "g"); + } + separator.lastIndex = 0; + while (match = separator.exec(substring)) { + var newEnd = match.index; + } + result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd); + } + } else if (string.indexOf(baseToString(separator), end) != end) { + var index = result2.lastIndexOf(separator); + if (index > -1) { + result2 = result2.slice(0, index); + } + } + return result2 + omission; + } + __name(truncate, "truncate"); + function unescape2(string) { + string = toString2(string); + return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string; + } + __name(unescape2, "unescape"); + var upperCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + word.toUpperCase(); + }); + var upperFirst = createCaseFirst("toUpperCase"); + function words(string, pattern, guard) { + string = toString2(string); + pattern = guard ? undefined2 : pattern; + if (pattern === undefined2) { + return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); + } + return string.match(pattern) || []; + } + __name(words, "words"); + var attempt = baseRest(function(func, args) { + try { + return apply(func, undefined2, args); + } catch (e) { + return isError(e) ? e : new Error2(e); + } + }); + var bindAll = flatRest(function(object, methodNames) { + arrayEach(methodNames, function(key) { + key = toKey(key); + baseAssignValue(object, key, bind(object[key], object)); + }); + return object; + }); + function cond(pairs) { + var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee(); + pairs = !length ? [] : arrayMap(pairs, function(pair) { + if (typeof pair[1] != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return [toIteratee(pair[0]), pair[1]]; + }); + return baseRest(function(args) { + var index = -1; + while (++index < length) { + var pair = pairs[index]; + if (apply(pair[0], this, args)) { + return apply(pair[1], this, args); + } + } + }); + } + __name(cond, "cond"); + function conforms(source) { + return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); + } + __name(conforms, "conforms"); + function constant(value) { + return function() { + return value; + }; + } + __name(constant, "constant"); + function defaultTo(value, defaultValue) { + return value == null || value !== value ? defaultValue : value; + } + __name(defaultTo, "defaultTo"); + var flow = createFlow(); + var flowRight = createFlow(true); + function identity(value) { + return value; + } + __name(identity, "identity"); + function iteratee(func) { + return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG)); + } + __name(iteratee, "iteratee"); + function matches(source) { + return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); + } + __name(matches, "matches"); + function matchesProperty(path, srcValue) { + return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG)); + } + __name(matchesProperty, "matchesProperty"); + var method = baseRest(function(path, args) { + return function(object) { + return baseInvoke(object, path, args); + }; + }); + var methodOf = baseRest(function(object, args) { + return function(path) { + return baseInvoke(object, path, args); + }; + }); + function mixin(object, source, options) { + var props = keys(source), methodNames = baseFunctions(source, props); + if (options == null && !(isObject(source) && (methodNames.length || !props.length))) { + options = source; + source = object; + object = this; + methodNames = baseFunctions(source, keys(source)); + } + var chain2 = !(isObject(options) && "chain" in options) || !!options.chain, isFunc = isFunction(object); + arrayEach(methodNames, function(methodName) { + var func = source[methodName]; + object[methodName] = func; + if (isFunc) { + object.prototype[methodName] = function() { + var chainAll = this.__chain__; + if (chain2 || chainAll) { + var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__); + actions.push({ "func": func, "args": arguments, "thisArg": object }); + result2.__chain__ = chainAll; + return result2; + } + return func.apply(object, arrayPush([this.value()], arguments)); + }; + } + }); + return object; + } + __name(mixin, "mixin"); + function noConflict() { + if (root._ === this) { + root._ = oldDash; + } + return this; + } + __name(noConflict, "noConflict"); + function noop() { + } + __name(noop, "noop"); + function nthArg(n) { + n = toInteger(n); + return baseRest(function(args) { + return baseNth(args, n); + }); + } + __name(nthArg, "nthArg"); + var over = createOver(arrayMap); + var overEvery = createOver(arrayEvery); + var overSome = createOver(arraySome); + function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); + } + __name(property, "property"); + function propertyOf(object) { + return function(path) { + return object == null ? undefined2 : baseGet(object, path); + }; + } + __name(propertyOf, "propertyOf"); + var range = createRange(); + var rangeRight = createRange(true); + function stubArray() { + return []; + } + __name(stubArray, "stubArray"); + function stubFalse() { + return false; + } + __name(stubFalse, "stubFalse"); + function stubObject() { + return {}; + } + __name(stubObject, "stubObject"); + function stubString() { + return ""; + } + __name(stubString, "stubString"); + function stubTrue() { + return true; + } + __name(stubTrue, "stubTrue"); + function times(n, iteratee2) { + n = toInteger(n); + if (n < 1 || n > MAX_SAFE_INTEGER) { + return []; + } + var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH); + iteratee2 = getIteratee(iteratee2); + n -= MAX_ARRAY_LENGTH; + var result2 = baseTimes(length, iteratee2); + while (++index < n) { + iteratee2(index); + } + return result2; + } + __name(times, "times"); + function toPath(value) { + if (isArray(value)) { + return arrayMap(value, toKey); + } + return isSymbol(value) ? [value] : copyArray(stringToPath(toString2(value))); + } + __name(toPath, "toPath"); + function uniqueId(prefix) { + var id = ++idCounter; + return toString2(prefix) + id; + } + __name(uniqueId, "uniqueId"); + var add = createMathOperation(function(augend, addend) { + return augend + addend; + }, 0); + var ceil = createRound("ceil"); + var divide = createMathOperation(function(dividend, divisor) { + return dividend / divisor; + }, 1); + var floor = createRound("floor"); + function max(array) { + return array && array.length ? baseExtremum(array, identity, baseGt) : undefined2; + } + __name(max, "max"); + function maxBy(array, iteratee2) { + return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2; + } + __name(maxBy, "maxBy"); + function mean(array) { + return baseMean(array, identity); + } + __name(mean, "mean"); + function meanBy(array, iteratee2) { + return baseMean(array, getIteratee(iteratee2, 2)); + } + __name(meanBy, "meanBy"); + function min(array) { + return array && array.length ? baseExtremum(array, identity, baseLt) : undefined2; + } + __name(min, "min"); + function minBy(array, iteratee2) { + return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2; + } + __name(minBy, "minBy"); + var multiply = createMathOperation(function(multiplier, multiplicand) { + return multiplier * multiplicand; + }, 1); + var round = createRound("round"); + var subtract = createMathOperation(function(minuend, subtrahend) { + return minuend - subtrahend; + }, 0); + function sum(array) { + return array && array.length ? baseSum(array, identity) : 0; + } + __name(sum, "sum"); + function sumBy(array, iteratee2) { + return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0; + } + __name(sumBy, "sumBy"); + lodash.after = after; + lodash.ary = ary; + lodash.assign = assign; + lodash.assignIn = assignIn; + lodash.assignInWith = assignInWith; + lodash.assignWith = assignWith; + lodash.at = at; + lodash.before = before; + lodash.bind = bind; + lodash.bindAll = bindAll; + lodash.bindKey = bindKey; + lodash.castArray = castArray; + lodash.chain = chain; + lodash.chunk = chunk; + lodash.compact = compact; + lodash.concat = concat; + lodash.cond = cond; + lodash.conforms = conforms; + lodash.constant = constant; + lodash.countBy = countBy; + lodash.create = create; + lodash.curry = curry; + lodash.curryRight = curryRight; + lodash.debounce = debounce; + lodash.defaults = defaults; + lodash.defaultsDeep = defaultsDeep; + lodash.defer = defer; + lodash.delay = delay; + lodash.difference = difference; + lodash.differenceBy = differenceBy; + lodash.differenceWith = differenceWith; + lodash.drop = drop; + lodash.dropRight = dropRight; + lodash.dropRightWhile = dropRightWhile; + lodash.dropWhile = dropWhile; + lodash.fill = fill; + lodash.filter = filter; + lodash.flatMap = flatMap; + lodash.flatMapDeep = flatMapDeep; + lodash.flatMapDepth = flatMapDepth; + lodash.flatten = flatten; + lodash.flattenDeep = flattenDeep; + lodash.flattenDepth = flattenDepth; + lodash.flip = flip; + lodash.flow = flow; + lodash.flowRight = flowRight; + lodash.fromPairs = fromPairs; + lodash.functions = functions; + lodash.functionsIn = functionsIn; + lodash.groupBy = groupBy; + lodash.initial = initial; + lodash.intersection = intersection; + lodash.intersectionBy = intersectionBy; + lodash.intersectionWith = intersectionWith; + lodash.invert = invert; + lodash.invertBy = invertBy; + lodash.invokeMap = invokeMap; + lodash.iteratee = iteratee; + lodash.keyBy = keyBy; + lodash.keys = keys; + lodash.keysIn = keysIn; + lodash.map = map; + lodash.mapKeys = mapKeys; + lodash.mapValues = mapValues; + lodash.matches = matches; + lodash.matchesProperty = matchesProperty; + lodash.memoize = memoize; + lodash.merge = merge; + lodash.mergeWith = mergeWith; + lodash.method = method; + lodash.methodOf = methodOf; + lodash.mixin = mixin; + lodash.negate = negate; + lodash.nthArg = nthArg; + lodash.omit = omit; + lodash.omitBy = omitBy; + lodash.once = once; + lodash.orderBy = orderBy; + lodash.over = over; + lodash.overArgs = overArgs; + lodash.overEvery = overEvery; + lodash.overSome = overSome; + lodash.partial = partial; + lodash.partialRight = partialRight; + lodash.partition = partition; + lodash.pick = pick; + lodash.pickBy = pickBy; + lodash.property = property; + lodash.propertyOf = propertyOf; + lodash.pull = pull; + lodash.pullAll = pullAll; + lodash.pullAllBy = pullAllBy; + lodash.pullAllWith = pullAllWith; + lodash.pullAt = pullAt; + lodash.range = range; + lodash.rangeRight = rangeRight; + lodash.rearg = rearg; + lodash.reject = reject; + lodash.remove = remove; + lodash.rest = rest; + lodash.reverse = reverse; + lodash.sampleSize = sampleSize; + lodash.set = set; + lodash.setWith = setWith; + lodash.shuffle = shuffle; + lodash.slice = slice; + lodash.sortBy = sortBy; + lodash.sortedUniq = sortedUniq; + lodash.sortedUniqBy = sortedUniqBy; + lodash.split = split; + lodash.spread = spread; + lodash.tail = tail; + lodash.take = take; + lodash.takeRight = takeRight; + lodash.takeRightWhile = takeRightWhile; + lodash.takeWhile = takeWhile; + lodash.tap = tap; + lodash.throttle = throttle; + lodash.thru = thru; + lodash.toArray = toArray; + lodash.toPairs = toPairs; + lodash.toPairsIn = toPairsIn; + lodash.toPath = toPath; + lodash.toPlainObject = toPlainObject; + lodash.transform = transform; + lodash.unary = unary; + lodash.union = union; + lodash.unionBy = unionBy; + lodash.unionWith = unionWith; + lodash.uniq = uniq; + lodash.uniqBy = uniqBy; + lodash.uniqWith = uniqWith; + lodash.unset = unset; + lodash.unzip = unzip; + lodash.unzipWith = unzipWith; + lodash.update = update; + lodash.updateWith = updateWith; + lodash.values = values; + lodash.valuesIn = valuesIn; + lodash.without = without; + lodash.words = words; + lodash.wrap = wrap; + lodash.xor = xor; + lodash.xorBy = xorBy; + lodash.xorWith = xorWith; + lodash.zip = zip; + lodash.zipObject = zipObject; + lodash.zipObjectDeep = zipObjectDeep; + lodash.zipWith = zipWith; + lodash.entries = toPairs; + lodash.entriesIn = toPairsIn; + lodash.extend = assignIn; + lodash.extendWith = assignInWith; + mixin(lodash, lodash); + lodash.add = add; + lodash.attempt = attempt; + lodash.camelCase = camelCase; + lodash.capitalize = capitalize; + lodash.ceil = ceil; + lodash.clamp = clamp; + lodash.clone = clone; + lodash.cloneDeep = cloneDeep; + lodash.cloneDeepWith = cloneDeepWith; + lodash.cloneWith = cloneWith; + lodash.conformsTo = conformsTo; + lodash.deburr = deburr; + lodash.defaultTo = defaultTo; + lodash.divide = divide; + lodash.endsWith = endsWith; + lodash.eq = eq; + lodash.escape = escape2; + lodash.escapeRegExp = escapeRegExp; + lodash.every = every; + lodash.find = find; + lodash.findIndex = findIndex; + lodash.findKey = findKey; + lodash.findLast = findLast; + lodash.findLastIndex = findLastIndex; + lodash.findLastKey = findLastKey; + lodash.floor = floor; + lodash.forEach = forEach; + lodash.forEachRight = forEachRight; + lodash.forIn = forIn; + lodash.forInRight = forInRight; + lodash.forOwn = forOwn; + lodash.forOwnRight = forOwnRight; + lodash.get = get; + lodash.gt = gt; + lodash.gte = gte; + lodash.has = has; + lodash.hasIn = hasIn; + lodash.head = head; + lodash.identity = identity; + lodash.includes = includes; + lodash.indexOf = indexOf; + lodash.inRange = inRange; + lodash.invoke = invoke; + lodash.isArguments = isArguments; + lodash.isArray = isArray; + lodash.isArrayBuffer = isArrayBuffer; + lodash.isArrayLike = isArrayLike; + lodash.isArrayLikeObject = isArrayLikeObject; + lodash.isBoolean = isBoolean; + lodash.isBuffer = isBuffer; + lodash.isDate = isDate; + lodash.isElement = isElement; + lodash.isEmpty = isEmpty; + lodash.isEqual = isEqual; + lodash.isEqualWith = isEqualWith; + lodash.isError = isError; + lodash.isFinite = isFinite2; + lodash.isFunction = isFunction; + lodash.isInteger = isInteger; + lodash.isLength = isLength; + lodash.isMap = isMap; + lodash.isMatch = isMatch; + lodash.isMatchWith = isMatchWith; + lodash.isNaN = isNaN2; + lodash.isNative = isNative; + lodash.isNil = isNil; + lodash.isNull = isNull; + lodash.isNumber = isNumber; + lodash.isObject = isObject; + lodash.isObjectLike = isObjectLike; + lodash.isPlainObject = isPlainObject; + lodash.isRegExp = isRegExp; + lodash.isSafeInteger = isSafeInteger; + lodash.isSet = isSet; + lodash.isString = isString; + lodash.isSymbol = isSymbol; + lodash.isTypedArray = isTypedArray; + lodash.isUndefined = isUndefined; + lodash.isWeakMap = isWeakMap; + lodash.isWeakSet = isWeakSet; + lodash.join = join2; + lodash.kebabCase = kebabCase; + lodash.last = last; + lodash.lastIndexOf = lastIndexOf; + lodash.lowerCase = lowerCase; + lodash.lowerFirst = lowerFirst; + lodash.lt = lt; + lodash.lte = lte; + lodash.max = max; + lodash.maxBy = maxBy; + lodash.mean = mean; + lodash.meanBy = meanBy; + lodash.min = min; + lodash.minBy = minBy; + lodash.stubArray = stubArray; + lodash.stubFalse = stubFalse; + lodash.stubObject = stubObject; + lodash.stubString = stubString; + lodash.stubTrue = stubTrue; + lodash.multiply = multiply; + lodash.nth = nth; + lodash.noConflict = noConflict; + lodash.noop = noop; + lodash.now = now; + lodash.pad = pad; + lodash.padEnd = padEnd; + lodash.padStart = padStart; + lodash.parseInt = parseInt2; + lodash.random = random; + lodash.reduce = reduce; + lodash.reduceRight = reduceRight; + lodash.repeat = repeat; + lodash.replace = replace; + lodash.result = result; + lodash.round = round; + lodash.runInContext = runInContext2; + lodash.sample = sample; + lodash.size = size; + lodash.snakeCase = snakeCase; + lodash.some = some; + lodash.sortedIndex = sortedIndex; + lodash.sortedIndexBy = sortedIndexBy; + lodash.sortedIndexOf = sortedIndexOf; + lodash.sortedLastIndex = sortedLastIndex; + lodash.sortedLastIndexBy = sortedLastIndexBy; + lodash.sortedLastIndexOf = sortedLastIndexOf; + lodash.startCase = startCase; + lodash.startsWith = startsWith; + lodash.subtract = subtract; + lodash.sum = sum; + lodash.sumBy = sumBy; + lodash.template = template; + lodash.times = times; + lodash.toFinite = toFinite; + lodash.toInteger = toInteger; + lodash.toLength = toLength; + lodash.toLower = toLower; + lodash.toNumber = toNumber; + lodash.toSafeInteger = toSafeInteger; + lodash.toString = toString2; + lodash.toUpper = toUpper; + lodash.trim = trim; + lodash.trimEnd = trimEnd; + lodash.trimStart = trimStart; + lodash.truncate = truncate; + lodash.unescape = unescape2; + lodash.uniqueId = uniqueId; + lodash.upperCase = upperCase; + lodash.upperFirst = upperFirst; + lodash.each = forEach; + lodash.eachRight = forEachRight; + lodash.first = head; + mixin(lodash, (function() { + var source = {}; + baseForOwn(lodash, function(func, methodName) { + if (!hasOwnProperty.call(lodash.prototype, methodName)) { + source[methodName] = func; + } + }); + return source; + })(), { "chain": false }); + lodash.VERSION = VERSION; + arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) { + lodash[methodName].placeholder = lodash; + }); + arrayEach(["drop", "take"], function(methodName, index) { + LazyWrapper.prototype[methodName] = function(n) { + n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0); + var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone(); + if (result2.__filtered__) { + result2.__takeCount__ = nativeMin(n, result2.__takeCount__); + } else { + result2.__views__.push({ + "size": nativeMin(n, MAX_ARRAY_LENGTH), + "type": methodName + (result2.__dir__ < 0 ? "Right" : "") + }); + } + return result2; + }; + LazyWrapper.prototype[methodName + "Right"] = function(n) { + return this.reverse()[methodName](n).reverse(); + }; + }); + arrayEach(["filter", "map", "takeWhile"], function(methodName, index) { + var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG; + LazyWrapper.prototype[methodName] = function(iteratee2) { + var result2 = this.clone(); + result2.__iteratees__.push({ + "iteratee": getIteratee(iteratee2, 3), + "type": type + }); + result2.__filtered__ = result2.__filtered__ || isFilter; + return result2; + }; + }); + arrayEach(["head", "last"], function(methodName, index) { + var takeName = "take" + (index ? "Right" : ""); + LazyWrapper.prototype[methodName] = function() { + return this[takeName](1).value()[0]; + }; + }); + arrayEach(["initial", "tail"], function(methodName, index) { + var dropName = "drop" + (index ? "" : "Right"); + LazyWrapper.prototype[methodName] = function() { + return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1); + }; + }); + LazyWrapper.prototype.compact = function() { + return this.filter(identity); + }; + LazyWrapper.prototype.find = function(predicate) { + return this.filter(predicate).head(); + }; + LazyWrapper.prototype.findLast = function(predicate) { + return this.reverse().find(predicate); + }; + LazyWrapper.prototype.invokeMap = baseRest(function(path, args) { + if (typeof path == "function") { + return new LazyWrapper(this); + } + return this.map(function(value) { + return baseInvoke(value, path, args); + }); + }); + LazyWrapper.prototype.reject = function(predicate) { + return this.filter(negate(getIteratee(predicate))); + }; + LazyWrapper.prototype.slice = function(start, end) { + start = toInteger(start); + var result2 = this; + if (result2.__filtered__ && (start > 0 || end < 0)) { + return new LazyWrapper(result2); + } + if (start < 0) { + result2 = result2.takeRight(-start); + } else if (start) { + result2 = result2.drop(start); + } + if (end !== undefined2) { + end = toInteger(end); + result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start); + } + return result2; + }; + LazyWrapper.prototype.takeRightWhile = function(predicate) { + return this.reverse().takeWhile(predicate).reverse(); + }; + LazyWrapper.prototype.toArray = function() { + return this.take(MAX_ARRAY_LENGTH); + }; + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName); + if (!lodashFunc) { + return; + } + lodash.prototype[methodName] = function() { + var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value); + var interceptor = /* @__PURE__ */ __name(function(value2) { + var result3 = lodashFunc.apply(lodash, arrayPush([value2], args)); + return isTaker && chainAll ? result3[0] : result3; + }, "interceptor"); + if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) { + isLazy = useLazy = false; + } + var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid; + if (!retUnwrapped && useLazy) { + value = onlyLazy ? value : new LazyWrapper(this); + var result2 = func.apply(value, args); + result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 }); + return new LodashWrapper(result2, chainAll); + } + if (isUnwrapped && onlyLazy) { + return func.apply(this, args); + } + result2 = this.thru(interceptor); + return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2; + }; + }); + arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) { + var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName); + lodash.prototype[methodName] = function() { + var args = arguments; + if (retUnwrapped && !this.__chain__) { + var value = this.value(); + return func.apply(isArray(value) ? value : [], args); + } + return this[chainName](function(value2) { + return func.apply(isArray(value2) ? value2 : [], args); + }); + }; + }); + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var lodashFunc = lodash[methodName]; + if (lodashFunc) { + var key = lodashFunc.name + ""; + if (!hasOwnProperty.call(realNames, key)) { + realNames[key] = []; + } + realNames[key].push({ "name": methodName, "func": lodashFunc }); + } + }); + realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{ + "name": "wrapper", + "func": undefined2 + }]; + LazyWrapper.prototype.clone = lazyClone; + LazyWrapper.prototype.reverse = lazyReverse; + LazyWrapper.prototype.value = lazyValue; + lodash.prototype.at = wrapperAt; + lodash.prototype.chain = wrapperChain; + lodash.prototype.commit = wrapperCommit; + lodash.prototype.next = wrapperNext; + lodash.prototype.plant = wrapperPlant; + lodash.prototype.reverse = wrapperReverse; + lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + lodash.prototype.first = lodash.prototype.head; + if (symIterator) { + lodash.prototype[symIterator] = wrapperToIterator; + } + return lodash; + }), "runInContext"); + var _ = runInContext(); + if (typeof define == "function" && typeof define.amd == "object" && define.amd) { + root._ = _; + define(function() { + return _; + }); + } else if (freeModule) { + (freeModule.exports = _)._ = _; + freeExports._ = _; + } else { + root._ = _; + } + }).call(exports2); + } +}); + +// node_modules/@nestjs/swagger/dist/constants.js +var require_constants8 = __commonJS({ + "node_modules/@nestjs/swagger/dist/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DECORATORS = exports2.DECORATORS_PREFIX = void 0; + exports2.DECORATORS_PREFIX = "swagger"; + exports2.DECORATORS = { + API_OPERATION: `${exports2.DECORATORS_PREFIX}/apiOperation`, + API_RESPONSE: `${exports2.DECORATORS_PREFIX}/apiResponse`, + API_PRODUCES: `${exports2.DECORATORS_PREFIX}/apiProduces`, + API_CONSUMES: `${exports2.DECORATORS_PREFIX}/apiConsumes`, + API_TAGS: `${exports2.DECORATORS_PREFIX}/apiUseTags`, + API_WEBHOOK: `${exports2.DECORATORS_PREFIX}/apiWebhook`, + API_CALLBACKS: `${exports2.DECORATORS_PREFIX}/apiCallbacks`, + API_PARAMETERS: `${exports2.DECORATORS_PREFIX}/apiParameters`, + API_HEADERS: `${exports2.DECORATORS_PREFIX}/apiHeaders`, + API_MODEL_PROPERTIES: `${exports2.DECORATORS_PREFIX}/apiModelProperties`, + API_MODEL_PROPERTIES_ARRAY: `${exports2.DECORATORS_PREFIX}/apiModelPropertiesArray`, + API_SECURITY: `${exports2.DECORATORS_PREFIX}/apiSecurity`, + API_EXCLUDE_ENDPOINT: `${exports2.DECORATORS_PREFIX}/apiExcludeEndpoint`, + API_INCLUDE_ENDPOINT: `${exports2.DECORATORS_PREFIX}/apiIncludeEndpoint`, + API_EXCLUDE_CONTROLLER: `${exports2.DECORATORS_PREFIX}/apiExcludeController`, + API_EXTRA_MODELS: `${exports2.DECORATORS_PREFIX}/apiExtraModels`, + API_EXTENSION: `${exports2.DECORATORS_PREFIX}/apiExtension`, + API_SCHEMA: `${exports2.DECORATORS_PREFIX}/apiSchema`, + API_DEFAULT_GETTER: `${exports2.DECORATORS_PREFIX}/apiDefaultGetter`, + API_LINK: `${exports2.DECORATORS_PREFIX}/apiLink` + }; + } +}); + +// node_modules/@nestjs/swagger/dist/utils/extend-metadata.util.js +var require_extend_metadata_util2 = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/extend-metadata.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.extendMetadata = extendMetadata; + require_Reflect(); + function extendMetadata(metadata, metakey, target) { + const existingMetadata = Reflect.getMetadata(metakey, target); + if (!existingMetadata) { + return metadata; + } + return existingMetadata.concat(metadata); + } + __name(extendMetadata, "extendMetadata"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-security.decorator.js +var require_api_security_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-security.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiSecurity = ApiSecurity; + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var extend_metadata_util_1 = require_extend_metadata_util2(); + function ApiSecurity(name, requirements = []) { + let metadata; + if ((0, lodash_1.isString)(name)) { + metadata = [{ [name]: requirements }]; + } else { + metadata = [name]; + } + return (target, key, descriptor) => { + if (descriptor) { + metadata = (0, extend_metadata_util_1.extendMetadata)(metadata, constants_1.DECORATORS.API_SECURITY, descriptor.value); + Reflect.defineMetadata(constants_1.DECORATORS.API_SECURITY, metadata, descriptor.value); + return descriptor; + } + metadata = (0, extend_metadata_util_1.extendMetadata)(metadata, constants_1.DECORATORS.API_SECURITY, target); + Reflect.defineMetadata(constants_1.DECORATORS.API_SECURITY, metadata, target); + return target; + }; + } + __name(ApiSecurity, "ApiSecurity"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-basic.decorator.js +var require_api_basic_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-basic.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiBasicAuth = ApiBasicAuth; + var api_security_decorator_1 = require_api_security_decorator(); + function ApiBasicAuth(name = "basic") { + return (0, api_security_decorator_1.ApiSecurity)(name); + } + __name(ApiBasicAuth, "ApiBasicAuth"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-bearer.decorator.js +var require_api_bearer_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-bearer.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiBearerAuth = ApiBearerAuth; + var api_security_decorator_1 = require_api_security_decorator(); + function ApiBearerAuth(name = "bearer") { + return (0, api_security_decorator_1.ApiSecurity)(name); + } + __name(ApiBearerAuth, "ApiBearerAuth"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/enum.utils.js +var require_enum_utils = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/enum.utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isEnumMetadata = exports2.isEnumDefined = exports2.isEnumArray = void 0; + exports2.getEnumValues = getEnumValues; + exports2.getEnumType = getEnumType; + exports2.addEnumArraySchema = addEnumArraySchema; + exports2.addEnumSchema = addEnumSchema; + var lodash_1 = require_lodash(); + function getEnumValues(enumType) { + if (typeof enumType === "function") { + return getEnumValues(enumType()); + } + if (Array.isArray(enumType)) { + return enumType; + } + if (typeof enumType !== "object") { + return []; + } + const numericValues = Object.values(enumType).filter((value) => typeof value === "number").map((value) => value.toString()); + return Object.keys(enumType).filter((key) => !numericValues.includes(key)).map((key) => enumType[key]); + } + __name(getEnumValues, "getEnumValues"); + function getEnumType(values) { + const hasString = values.filter(lodash_1.isString).length > 0; + if (hasString) { + return "string"; + } + const hasBoolean = values.filter((v) => typeof v === "boolean").length > 0; + return hasBoolean ? "boolean" : "number"; + } + __name(getEnumType, "getEnumType"); + function addEnumArraySchema(paramDefinition, decoratorOptions) { + const paramSchema = paramDefinition.schema || {}; + paramDefinition.schema = paramSchema; + paramSchema.type = "array"; + delete paramDefinition.isArray; + const enumValues = getEnumValues(decoratorOptions.enum); + paramSchema.items = { + type: getEnumType(enumValues), + enum: enumValues + }; + if (decoratorOptions.enumName) { + paramDefinition.enumName = decoratorOptions.enumName; + } + if (decoratorOptions.enumSchema) { + paramDefinition.enumSchema = decoratorOptions.enumSchema; + } + } + __name(addEnumArraySchema, "addEnumArraySchema"); + function addEnumSchema(paramDefinition, decoratorOptions) { + const paramSchema = paramDefinition.schema || {}; + const enumValues = getEnumValues(decoratorOptions.enum); + paramDefinition.schema = paramSchema; + paramSchema.enum = enumValues; + paramSchema.type = getEnumType(enumValues); + if (decoratorOptions.enumName) { + paramDefinition.enumName = decoratorOptions.enumName; + } + if (decoratorOptions.enumSchema) { + paramDefinition.enumSchema = decoratorOptions.enumSchema; + } + } + __name(addEnumSchema, "addEnumSchema"); + var isEnumArray = /* @__PURE__ */ __name((obj) => obj.isArray && obj.enum, "isEnumArray"); + exports2.isEnumArray = isEnumArray; + var isEnumDefined = /* @__PURE__ */ __name((obj) => obj.enum, "isEnumDefined"); + exports2.isEnumDefined = isEnumDefined; + var isEnumMetadata = /* @__PURE__ */ __name((metadata) => { + var _a; + return metadata.enum || metadata.isArray && ((_a = metadata.items) === null || _a === void 0 ? void 0 : _a["enum"]); + }, "isEnumMetadata"); + exports2.isEnumMetadata = isEnumMetadata; + } +}); + +// node_modules/@nestjs/swagger/dist/plugin/plugin-constants.js +var require_plugin_constants = __commonJS({ + "node_modules/@nestjs/swagger/dist/plugin/plugin-constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.METADATA_FACTORY_NAME = exports2.OPENAPI_PACKAGE_NAME = exports2.OPENAPI_NAMESPACE = void 0; + exports2.OPENAPI_NAMESPACE = "openapi"; + exports2.OPENAPI_PACKAGE_NAME = "@nestjs/swagger"; + exports2.METADATA_FACTORY_NAME = "_OPENAPI_METADATA_FACTORY"; + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/helpers.js +var require_helpers2 = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/helpers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createMethodDecorator = createMethodDecorator; + exports2.createClassDecorator = createClassDecorator; + exports2.createPropertyDecorator = createPropertyDecorator; + exports2.createMixedDecorator = createMixedDecorator; + exports2.createParamDecorator = createParamDecorator; + exports2.getTypeIsArrayTuple = getTypeIsArrayTuple; + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var lodash_1 = require_lodash(); + var constants_2 = require_constants8(); + var plugin_constants_1 = require_plugin_constants(); + function createMethodDecorator(metakey, metadata, { overrideExisting } = { overrideExisting: true }) { + return (target, key, descriptor) => { + if (typeof metadata === "object") { + const prevValue = Reflect.getMetadata(metakey, descriptor.value); + if (prevValue && !overrideExisting) { + return descriptor; + } + Reflect.defineMetadata(metakey, Object.assign(Object.assign({}, prevValue), metadata), descriptor.value); + return descriptor; + } + Reflect.defineMetadata(metakey, metadata, descriptor.value); + return descriptor; + }; + } + __name(createMethodDecorator, "createMethodDecorator"); + function createClassDecorator(metakey, metadata = []) { + return (target) => { + const prevValue = Reflect.getMetadata(metakey, target) || []; + Reflect.defineMetadata(metakey, [...prevValue, ...metadata], target); + return target; + }; + } + __name(createClassDecorator, "createClassDecorator"); + function createPropertyDecorator(metakey, metadata, overrideExisting = true) { + return (target, propertyKey) => { + var _a, _b, _c, _d, _e, _f, _g, _h; + const properties = Reflect.getMetadata(constants_2.DECORATORS.API_MODEL_PROPERTIES_ARRAY, target) || []; + const key = `:${String(propertyKey)}`; + if (!properties.includes(key)) { + Reflect.defineMetadata(constants_2.DECORATORS.API_MODEL_PROPERTIES_ARRAY, [...properties, `:${String(propertyKey)}`], target); + } + const existingMetadata = Reflect.getMetadata(metakey, target, propertyKey); + if (existingMetadata) { + const newMetadata = (0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(lodash_1.isUndefined)); + const ownExistingMetadata = Reflect.getOwnMetadata(metakey, target, propertyKey); + if (!ownExistingMetadata && newMetadata.type === void 0) { + const designType = (_d = (_c = (_b = (_a = target === null || target === void 0 ? void 0 : target.constructor) === null || _a === void 0 ? void 0 : _a[plugin_constants_1.METADATA_FACTORY_NAME]) === null || _b === void 0 ? void 0 : _b.call(_a)[propertyKey]) === null || _c === void 0 ? void 0 : _c.type) !== null && _d !== void 0 ? _d : Reflect.getMetadata("design:type", target, propertyKey); + if (designType) { + newMetadata.type = designType; + } + } + const metadataToSave = overrideExisting ? Object.assign(Object.assign({}, existingMetadata), newMetadata) : Object.assign(Object.assign({}, newMetadata), existingMetadata); + Reflect.defineMetadata(metakey, metadataToSave, target, propertyKey); + } else { + const type = (_h = (_g = (_f = (_e = target === null || target === void 0 ? void 0 : target.constructor) === null || _e === void 0 ? void 0 : _e[plugin_constants_1.METADATA_FACTORY_NAME]) === null || _f === void 0 ? void 0 : _f.call(_e)[propertyKey]) === null || _g === void 0 ? void 0 : _g.type) !== null && _h !== void 0 ? _h : Reflect.getMetadata("design:type", target, propertyKey); + Reflect.defineMetadata(metakey, Object.assign({ type }, (0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(lodash_1.isUndefined))), target, propertyKey); + } + }; + } + __name(createPropertyDecorator, "createPropertyDecorator"); + function createMixedDecorator(metakey, metadata) { + return (target, key, descriptor) => { + if (descriptor) { + let metadatas2; + if (Array.isArray(metadata)) { + const previousMetadata = Reflect.getMetadata(metakey, descriptor.value) || []; + metadatas2 = [...previousMetadata, ...metadata]; + } else { + const previousMetadata = Reflect.getMetadata(metakey, descriptor.value) || {}; + metadatas2 = Object.assign(Object.assign({}, previousMetadata), metadata); + } + Reflect.defineMetadata(metakey, metadatas2, descriptor.value); + return descriptor; + } + let metadatas; + if (Array.isArray(metadata)) { + const previousMetadata = Reflect.getMetadata(metakey, target) || []; + metadatas = [...previousMetadata, ...metadata]; + } else { + const previousMetadata = Reflect.getMetadata(metakey, target) || {}; + metadatas = Object.assign(Object.assign({}, previousMetadata), metadata); + } + Reflect.defineMetadata(metakey, metadatas, target); + return target; + }; + } + __name(createMixedDecorator, "createMixedDecorator"); + function createParamDecorator(metadata, initial) { + return (target, key, descriptor) => { + const paramOptions = Object.assign(Object.assign({}, initial), (0, lodash_1.pickBy)(metadata, (0, lodash_1.negate)(lodash_1.isUndefined))); + if (descriptor) { + const parameters = Reflect.getMetadata(constants_2.DECORATORS.API_PARAMETERS, descriptor.value) || []; + Reflect.defineMetadata(constants_2.DECORATORS.API_PARAMETERS, [...parameters, paramOptions], descriptor.value); + return descriptor; + } + if (typeof target === "object") { + return target; + } + const propertyKeys = Object.getOwnPropertyNames(target.prototype); + for (const propertyKey of propertyKeys) { + if ((0, shared_utils_1.isConstructor)(propertyKey)) { + continue; + } + const methodDescriptor = Object.getOwnPropertyDescriptor(target.prototype, propertyKey); + if (!methodDescriptor) { + continue; + } + if (!methodDescriptor.value) { + continue; + } + const isApiMethod = Reflect.hasMetadata(constants_1.METHOD_METADATA, methodDescriptor.value); + if (!isApiMethod) { + continue; + } + const parameters = Reflect.getMetadata(constants_2.DECORATORS.API_PARAMETERS, methodDescriptor.value) || []; + Reflect.defineMetadata(constants_2.DECORATORS.API_PARAMETERS, [...parameters, paramOptions], methodDescriptor.value); + } + }; + } + __name(createParamDecorator, "createParamDecorator"); + function getTypeIsArrayTuple(input, isArrayFlag) { + if (!input) { + return [input, isArrayFlag]; + } + if (isArrayFlag) { + return [input, isArrayFlag]; + } + const isInputArray = (0, lodash_1.isArray)(input); + const type = isInputArray ? input[0] : input; + return [type, isInputArray]; + } + __name(getTypeIsArrayTuple, "getTypeIsArrayTuple"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-body.decorator.js +var require_api_body_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-body.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiBody = ApiBody; + var lodash_1 = require_lodash(); + var enum_utils_1 = require_enum_utils(); + var helpers_1 = require_helpers2(); + var defaultBodyMetadata = { + type: String, + required: true + }; + function ApiBody(options) { + const [type, isArray] = (0, helpers_1.getTypeIsArrayTuple)(options.type, options.isArray); + const param = Object.assign(Object.assign({ in: "body" }, (0, lodash_1.omit)(options, "enum")), { + type, + isArray + }); + if ((0, enum_utils_1.isEnumArray)(options)) { + (0, enum_utils_1.addEnumArraySchema)(param, options); + } else if ((0, enum_utils_1.isEnumDefined)(options)) { + (0, enum_utils_1.addEnumSchema)(param, options); + } + return (0, helpers_1.createParamDecorator)(param, defaultBodyMetadata); + } + __name(ApiBody, "ApiBody"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-consumes.decorator.js +var require_api_consumes_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-consumes.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiConsumes = ApiConsumes; + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + function ApiConsumes(...mimeTypes) { + return (0, helpers_1.createMixedDecorator)(constants_1.DECORATORS.API_CONSUMES, mimeTypes); + } + __name(ApiConsumes, "ApiConsumes"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-cookie.decorator.js +var require_api_cookie_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-cookie.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiCookieAuth = ApiCookieAuth; + var api_security_decorator_1 = require_api_security_decorator(); + function ApiCookieAuth(name = "cookie") { + return (0, api_security_decorator_1.ApiSecurity)(name); + } + __name(ApiCookieAuth, "ApiCookieAuth"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-default-getter.decorator.js +var require_api_default_getter_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-default-getter.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiDefaultGetter = ApiDefaultGetter; + var constants_1 = require_constants8(); + function ApiDefaultGetter(type, parameter) { + return (prototype, key, descriptor) => { + if (type.prototype) { + Reflect.defineMetadata(constants_1.DECORATORS.API_DEFAULT_GETTER, { getter: descriptor.value, parameter, prototype }, type.prototype); + } + return descriptor; + }; + } + __name(ApiDefaultGetter, "ApiDefaultGetter"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-exclude-endpoint.decorator.js +var require_api_exclude_endpoint_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-exclude-endpoint.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiExcludeEndpoint = ApiExcludeEndpoint; + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + function ApiExcludeEndpoint(disable = true) { + return (0, helpers_1.createMethodDecorator)(constants_1.DECORATORS.API_EXCLUDE_ENDPOINT, { + disable + }); + } + __name(ApiExcludeEndpoint, "ApiExcludeEndpoint"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-include-endpoint.decorator.js +var require_api_include_endpoint_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-include-endpoint.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiIncludeEndpoint = ApiIncludeEndpoint; + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + function ApiIncludeEndpoint(disable = true) { + return (0, helpers_1.createMethodDecorator)(constants_1.DECORATORS.API_INCLUDE_ENDPOINT, { + disable + }); + } + __name(ApiIncludeEndpoint, "ApiIncludeEndpoint"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-exclude-controller.decorator.js +var require_api_exclude_controller_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-exclude-controller.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiExcludeController = ApiExcludeController; + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + function ApiExcludeController(disable = true) { + return (0, helpers_1.createClassDecorator)(constants_1.DECORATORS.API_EXCLUDE_CONTROLLER, [disable]); + } + __name(ApiExcludeController, "ApiExcludeController"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-extra-models.decorator.js +var require_api_extra_models_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-extra-models.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiExtraModels = ApiExtraModels; + var constants_1 = require_constants8(); + function ApiExtraModels(...models) { + return (target, key, descriptor) => { + if (descriptor) { + const extraModels2 = Reflect.getMetadata(constants_1.DECORATORS.API_EXTRA_MODELS, descriptor.value) || []; + Reflect.defineMetadata(constants_1.DECORATORS.API_EXTRA_MODELS, [...extraModels2, ...models], descriptor.value); + return descriptor; + } + const extraModels = Reflect.getMetadata(constants_1.DECORATORS.API_EXTRA_MODELS, target) || []; + Reflect.defineMetadata(constants_1.DECORATORS.API_EXTRA_MODELS, [...extraModels, ...models], target); + return target; + }; + } + __name(ApiExtraModels, "ApiExtraModels"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-header.decorator.js +var require_api_header_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-header.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiHeaders = void 0; + exports2.ApiHeader = ApiHeader; + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var enum_utils_1 = require_enum_utils(); + var helpers_1 = require_helpers2(); + var defaultHeaderOptions = { + name: "" + }; + function ApiHeader(options) { + const paramSchema = options.content ? void 0 : Object.assign(Object.assign({ type: "string" }, options.example ? { example: options.example } : {}), options.schema || {}); + const param = (0, lodash_1.pickBy)({ + name: (0, lodash_1.isNil)(options.name) ? defaultHeaderOptions.name : options.name, + in: "header", + description: options.description, + required: options.required, + deprecated: options.deprecated, + allowEmptyValue: options.allowEmptyValue, + style: options.style, + explode: options.explode, + allowReserved: options.allowReserved, + content: options.content, + examples: options.examples, + schema: paramSchema + }, (0, lodash_1.negate)(lodash_1.isUndefined)); + if (options.enum) { + const enumValues = (0, enum_utils_1.getEnumValues)(options.enum); + param.schema = Object.assign(Object.assign({}, param.schema), { enum: enumValues, type: (0, enum_utils_1.getEnumType)(enumValues) }); + } + return (target, key, descriptor) => { + if (descriptor) { + return (0, helpers_1.createParamDecorator)(param, defaultHeaderOptions)(target, key, descriptor); + } + return (0, helpers_1.createClassDecorator)(constants_1.DECORATORS.API_HEADERS, [param])(target); + }; + } + __name(ApiHeader, "ApiHeader"); + var ApiHeaders = /* @__PURE__ */ __name((headers) => { + return (target, key, descriptor) => { + headers.forEach((options) => ApiHeader(options)(target, key, descriptor)); + }; + }, "ApiHeaders"); + exports2.ApiHeaders = ApiHeaders; + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-hide-property.decorator.js +var require_api_hide_property_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-hide-property.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiHideProperty = ApiHideProperty; + function ApiHideProperty() { + return (target, propertyKey) => { + }; + } + __name(ApiHideProperty, "ApiHideProperty"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-link.decorator.js +var require_api_link_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-link.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiLink = ApiLink; + var constants_1 = require_constants8(); + function ApiLink({ from, fromField = "id", routeParam }) { + return (controllerPrototype, key, descriptor) => { + var _a; + const { prototype } = from; + if (prototype) { + const links = (_a = Reflect.getMetadata(constants_1.DECORATORS.API_LINK, prototype)) !== null && _a !== void 0 ? _a : []; + links.push({ + method: descriptor.value, + prototype: controllerPrototype, + field: fromField, + parameter: routeParam + }); + Reflect.defineMetadata(constants_1.DECORATORS.API_LINK, links, prototype); + } + return descriptor; + }; + } + __name(ApiLink, "ApiLink"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-oauth2.decorator.js +var require_api_oauth2_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-oauth2.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiOAuth2 = ApiOAuth2; + var api_security_decorator_1 = require_api_security_decorator(); + function ApiOAuth2(scopes, name = "oauth2") { + return (0, api_security_decorator_1.ApiSecurity)(name, scopes); + } + __name(ApiOAuth2, "ApiOAuth2"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-operation.decorator.js +var require_api_operation_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-operation.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiOperation = ApiOperation; + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + var defaultOperationOptions = { + summary: "" + }; + function ApiOperation(options, { overrideExisting } = { overrideExisting: true }) { + return (0, helpers_1.createMethodDecorator)(constants_1.DECORATORS.API_OPERATION, (0, lodash_1.pickBy)(Object.assign(Object.assign({}, defaultOperationOptions), options), (0, lodash_1.negate)(lodash_1.isUndefined)), { overrideExisting }); + } + __name(ApiOperation, "ApiOperation"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-param.decorator.js +var require_api_param_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-param.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiParam = ApiParam; + var lodash_1 = require_lodash(); + var enum_utils_1 = require_enum_utils(); + var helpers_1 = require_helpers2(); + var defaultParamOptions = { + name: "", + required: true + }; + function ApiParam(options) { + const param = Object.assign({ name: (0, lodash_1.isNil)(options.name) ? defaultParamOptions.name : options.name, in: "path" }, (0, lodash_1.omit)(options, ["enum", "extensions"])); + if ((0, enum_utils_1.isEnumDefined)(options)) { + (0, enum_utils_1.addEnumSchema)(param, options); + } + const extensions = options.extensions; + if (extensions && typeof extensions === "object") { + const cloned = (0, lodash_1.clone)(extensions); + for (const [key, value] of Object.entries(cloned)) { + const extKey = key.startsWith("x-") ? key : `x-${key}`; + param[extKey] = value; + } + } + return (0, helpers_1.createParamDecorator)(param, defaultParamOptions); + } + __name(ApiParam, "ApiParam"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-produces.decorator.js +var require_api_produces_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-produces.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiProduces = ApiProduces; + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + function ApiProduces(...mimeTypes) { + return (0, helpers_1.createMixedDecorator)(constants_1.DECORATORS.API_PRODUCES, mimeTypes); + } + __name(ApiProduces, "ApiProduces"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.js +var require_api_property_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiProperty = ApiProperty; + exports2.createApiPropertyDecorator = createApiPropertyDecorator; + exports2.ApiPropertyOptional = ApiPropertyOptional; + exports2.ApiResponseProperty = ApiResponseProperty; + var constants_1 = require_constants8(); + var enum_utils_1 = require_enum_utils(); + var helpers_1 = require_helpers2(); + var isEnumArray = /* @__PURE__ */ __name((opts) => opts.isArray && "enum" in opts && opts.enum !== void 0, "isEnumArray"); + function ApiProperty(options = {}) { + return createApiPropertyDecorator(options); + } + __name(ApiProperty, "ApiProperty"); + function createApiPropertyDecorator(options = {}, overrideExisting = true) { + const [type, isArray] = (0, helpers_1.getTypeIsArrayTuple)(options.type, options.isArray); + options = Object.assign(Object.assign({}, options), { + type, + isArray + }); + if (isEnumArray(options)) { + options.type = "array"; + const enumValues = (0, enum_utils_1.getEnumValues)(options.enum); + options.items = { + type: (0, enum_utils_1.getEnumType)(enumValues), + enum: enumValues + }; + delete options.enum; + } else if ("enum" in options && options.enum !== void 0) { + const enumValues = (0, enum_utils_1.getEnumValues)(options.enum); + options.enum = enumValues; + if (!options.type) { + options.type = (0, enum_utils_1.getEnumType)(enumValues); + } + } + if (Array.isArray(options.type)) { + const innerType = options.type[0]; + options.type = "array"; + options.items = { + type: "array", + items: { + type: typeof innerType === "function" ? innerType.name.charAt(0).toLowerCase() + innerType.name.slice(1) : innerType + } + }; + } + if (options.pattern instanceof RegExp) { + options.pattern = options.pattern.source; + } + return (0, helpers_1.createPropertyDecorator)(constants_1.DECORATORS.API_MODEL_PROPERTIES, options, overrideExisting); + } + __name(createApiPropertyDecorator, "createApiPropertyDecorator"); + function ApiPropertyOptional(options = {}) { + return ApiProperty(Object.assign(Object.assign({}, options), { required: false })); + } + __name(ApiPropertyOptional, "ApiPropertyOptional"); + function ApiResponseProperty(options = {}) { + return ApiProperty(Object.assign({ readOnly: true }, options)); + } + __name(ApiResponseProperty, "ApiResponseProperty"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-query.decorator.js +var require_api_query_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-query.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiQuery = ApiQuery; + var lodash_1 = require_lodash(); + var enum_utils_1 = require_enum_utils(); + var helpers_1 = require_helpers2(); + var defaultQueryOptions = { + name: "", + required: true + }; + function ApiQuery(options) { + const apiQueryMetadata = options; + const [type, isArray] = (0, helpers_1.getTypeIsArrayTuple)(apiQueryMetadata.type, apiQueryMetadata.isArray); + const param = Object.assign(Object.assign({ name: "name" in options ? options.name : defaultQueryOptions.name, in: "query" }, (0, lodash_1.omit)(options, ["enum", "extensions"])), { type }); + if ((0, enum_utils_1.isEnumArray)(options)) { + (0, enum_utils_1.addEnumArraySchema)(param, options); + } else if ((0, enum_utils_1.isEnumDefined)(options)) { + (0, enum_utils_1.addEnumSchema)(param, options); + } + if (isArray) { + param.isArray = isArray; + } + const extensions = options.extensions; + if (extensions && typeof extensions === "object") { + const cloned = (0, lodash_1.clone)(extensions); + for (const [key, value] of Object.entries(cloned)) { + const extKey = key.startsWith("x-") ? key : `x-${key}`; + param[extKey] = value; + } + } + return (0, helpers_1.createParamDecorator)(param, defaultQueryOptions); + } + __name(ApiQuery, "ApiQuery"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-webhook.decorator.js +var require_api_webhook_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-webhook.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiWebhook = ApiWebhook; + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + function ApiWebhook(name) { + return (0, helpers_1.createMethodDecorator)(constants_1.DECORATORS.API_WEBHOOK, name !== null && name !== void 0 ? name : true); + } + __name(ApiWebhook, "ApiWebhook"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-response.decorator.js +var require_api_response_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-response.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiDefaultResponse = exports2.ApiHttpVersionNotSupportedResponse = exports2.ApiGatewayTimeoutResponse = exports2.ApiServiceUnavailableResponse = exports2.ApiBadGatewayResponse = exports2.ApiNotImplementedResponse = exports2.ApiInternalServerErrorResponse = exports2.ApiTooManyRequestsResponse = exports2.ApiPreconditionRequiredResponse = exports2.ApiFailedDependencyResponse = exports2.ApiUnprocessableEntityResponse = exports2.ApiMisdirectedResponse = exports2.ApiIAmATeapotResponse = exports2.ApiExpectationFailedResponse = exports2.ApiRequestedRangeNotSatisfiableResponse = exports2.ApiUnsupportedMediaTypeResponse = exports2.ApiUriTooLongResponse = exports2.ApiPayloadTooLargeResponse = exports2.ApiPreconditionFailedResponse = exports2.ApiLengthRequiredResponse = exports2.ApiGoneResponse = exports2.ApiConflictResponse = exports2.ApiRequestTimeoutResponse = exports2.ApiProxyAuthenticationRequiredResponse = exports2.ApiNotAcceptableResponse = exports2.ApiMethodNotAllowedResponse = exports2.ApiNotFoundResponse = exports2.ApiForbiddenResponse = exports2.ApiPaymentRequiredResponse = exports2.ApiUnauthorizedResponse = exports2.ApiBadRequestResponse = exports2.ApiPermanentRedirectResponse = exports2.ApiTemporaryRedirectResponse = exports2.ApiNotModifiedResponse = exports2.ApiSeeOtherResponse = exports2.ApiFoundResponse = exports2.ApiMovedPermanentlyResponse = exports2.ApiAmbiguousResponse = exports2.ApiPartialContentResponse = exports2.ApiResetContentResponse = exports2.ApiNoContentResponse = exports2.ApiNonAuthoritativeInformationResponse = exports2.ApiAcceptedResponse = exports2.ApiCreatedResponse = exports2.ApiOkResponse = exports2.ApiEarlyhintsResponse = exports2.ApiProcessingResponse = exports2.ApiSwitchingProtocolsResponse = exports2.ApiContinueResponse = void 0; + exports2.ApiResponse = ApiResponse; + var common_12 = require_common(); + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + function ApiResponse(options, { overrideExisting } = { overrideExisting: true }) { + const apiResponseMetadata = options; + const [type, isArray] = (0, helpers_1.getTypeIsArrayTuple)(apiResponseMetadata.type, apiResponseMetadata.isArray); + apiResponseMetadata.type = type; + apiResponseMetadata.isArray = isArray; + options.description = options.description ? options.description : ""; + const statusKey = options.status || "default"; + const incomingEntry = (0, lodash_1.omit)(options, "status"); + return (target, key, descriptor) => { + if (descriptor) { + const responses2 = Reflect.getMetadata(constants_1.DECORATORS.API_RESPONSE, descriptor.value); + if (responses2 && !overrideExisting) { + return descriptor; + } + Reflect.defineMetadata(constants_1.DECORATORS.API_RESPONSE, Object.assign(Object.assign({}, responses2), { [statusKey]: mergeResponseEntry(responses2 === null || responses2 === void 0 ? void 0 : responses2[statusKey], incomingEntry) }), descriptor.value); + return descriptor; + } + const responses = Reflect.getMetadata(constants_1.DECORATORS.API_RESPONSE, target); + if (responses && !overrideExisting) { + return descriptor; + } + Reflect.defineMetadata(constants_1.DECORATORS.API_RESPONSE, Object.assign(Object.assign({}, responses), { [statusKey]: mergeResponseEntry(responses === null || responses === void 0 ? void 0 : responses[statusKey], incomingEntry) }), target); + return target; + }; + } + __name(ApiResponse, "ApiResponse"); + function mergeResponseEntry(existing, incoming) { + var _a; + if (!existing) { + return incoming; + } + const existingDesc = existing.description || ""; + const incomingDesc = incoming.description || ""; + const mergedDescription = existingDesc && incomingDesc ? `${existingDesc} + +${incomingDesc}` : existingDesc || incomingDesc; + const mergedExamples = existing.examples && incoming.examples ? Object.assign(Object.assign({}, existing.examples), incoming.examples) : (_a = incoming.examples) !== null && _a !== void 0 ? _a : existing.examples; + return Object.assign(Object.assign(Object.assign(Object.assign({}, existing), incoming), { description: mergedDescription }), mergedExamples !== void 0 ? { examples: mergedExamples } : {}); + } + __name(mergeResponseEntry, "mergeResponseEntry"); + var decorators = {}; + var statusList = Object.keys(common_12.HttpStatus).filter((key) => !isNaN(Number(common_12.HttpStatus[key]))).map((key) => { + const functionName = key.split("_").map((strToken) => `${strToken[0].toUpperCase()}${strToken.slice(1).toLowerCase()}`).join(""); + return { + code: Number(common_12.HttpStatus[key]), + functionName: `Api${functionName}Response` + }; + }); + statusList.forEach(({ code, functionName }) => { + decorators[functionName] = function(options = {}) { + return ApiResponse(Object.assign(Object.assign({}, options), { status: code })); + }; + }); + exports2.ApiContinueResponse = decorators.ApiContinueResponse, exports2.ApiSwitchingProtocolsResponse = decorators.ApiSwitchingProtocolsResponse, exports2.ApiProcessingResponse = decorators.ApiProcessingResponse, exports2.ApiEarlyhintsResponse = decorators.ApiEarlyhintsResponse, exports2.ApiOkResponse = decorators.ApiOkResponse, exports2.ApiCreatedResponse = decorators.ApiCreatedResponse, exports2.ApiAcceptedResponse = decorators.ApiAcceptedResponse, exports2.ApiNonAuthoritativeInformationResponse = decorators.ApiNonAuthoritativeInformationResponse, exports2.ApiNoContentResponse = decorators.ApiNoContentResponse, exports2.ApiResetContentResponse = decorators.ApiResetContentResponse, exports2.ApiPartialContentResponse = decorators.ApiPartialContentResponse, exports2.ApiAmbiguousResponse = decorators.ApiAmbiguousResponse, exports2.ApiMovedPermanentlyResponse = decorators.ApiMovedPermanentlyResponse, exports2.ApiFoundResponse = decorators.ApiFoundResponse, exports2.ApiSeeOtherResponse = decorators.ApiSeeOtherResponse, exports2.ApiNotModifiedResponse = decorators.ApiNotModifiedResponse, exports2.ApiTemporaryRedirectResponse = decorators.ApiTemporaryRedirectResponse, exports2.ApiPermanentRedirectResponse = decorators.ApiPermanentRedirectResponse, exports2.ApiBadRequestResponse = decorators.ApiBadRequestResponse, exports2.ApiUnauthorizedResponse = decorators.ApiUnauthorizedResponse, exports2.ApiPaymentRequiredResponse = decorators.ApiPaymentRequiredResponse, exports2.ApiForbiddenResponse = decorators.ApiForbiddenResponse, exports2.ApiNotFoundResponse = decorators.ApiNotFoundResponse, exports2.ApiMethodNotAllowedResponse = decorators.ApiMethodNotAllowedResponse, exports2.ApiNotAcceptableResponse = decorators.ApiNotAcceptableResponse, exports2.ApiProxyAuthenticationRequiredResponse = decorators.ApiProxyAuthenticationRequiredResponse, exports2.ApiRequestTimeoutResponse = decorators.ApiRequestTimeoutResponse, exports2.ApiConflictResponse = decorators.ApiConflictResponse, exports2.ApiGoneResponse = decorators.ApiGoneResponse, exports2.ApiLengthRequiredResponse = decorators.ApiLengthRequiredResponse, exports2.ApiPreconditionFailedResponse = decorators.ApiPreconditionFailedResponse, exports2.ApiPayloadTooLargeResponse = decorators.ApiPayloadTooLargeResponse, exports2.ApiUriTooLongResponse = decorators.ApiUriTooLongResponse, exports2.ApiUnsupportedMediaTypeResponse = decorators.ApiUnsupportedMediaTypeResponse, exports2.ApiRequestedRangeNotSatisfiableResponse = decorators.ApiRequestedRangeNotSatisfiableResponse, exports2.ApiExpectationFailedResponse = decorators.ApiExpectationFailedResponse, exports2.ApiIAmATeapotResponse = decorators.ApiIAmATeapotResponse, exports2.ApiMisdirectedResponse = decorators.ApiMisdirectedResponse, exports2.ApiUnprocessableEntityResponse = decorators.ApiUnprocessableEntityResponse, exports2.ApiFailedDependencyResponse = decorators.ApiFailedDependencyResponse, exports2.ApiPreconditionRequiredResponse = decorators.ApiPreconditionRequiredResponse, exports2.ApiTooManyRequestsResponse = decorators.ApiTooManyRequestsResponse, exports2.ApiInternalServerErrorResponse = decorators.ApiInternalServerErrorResponse, exports2.ApiNotImplementedResponse = decorators.ApiNotImplementedResponse, exports2.ApiBadGatewayResponse = decorators.ApiBadGatewayResponse, exports2.ApiServiceUnavailableResponse = decorators.ApiServiceUnavailableResponse, exports2.ApiGatewayTimeoutResponse = decorators.ApiGatewayTimeoutResponse, exports2.ApiHttpVersionNotSupportedResponse = decorators.ApiHttpVersionNotSupportedResponse; + var ApiDefaultResponse = /* @__PURE__ */ __name((options = {}) => ApiResponse(Object.assign(Object.assign({}, options), { status: "default" })), "ApiDefaultResponse"); + exports2.ApiDefaultResponse = ApiDefaultResponse; + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-use-tags.decorator.js +var require_api_use_tags_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-use-tags.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiTags = ApiTags; + var common_12 = require_common(); + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + var logger = new common_12.Logger("ApiTags"); + function ApiTags(...tags) { + const normalizedTags = tags.map((tag) => { + if (typeof tag === "string") { + return tag; + } + if (tag.parent !== void 0 || tag.kind !== void 0) { + logger.warn(`Tag "${tag.name}" includes hierarchy fields (parent/kind) defined via @ApiTags, but those values are ignored there. Define them with DocumentBuilder.addTag("${tag.name}", description, { parent, kind }) to include them in the document's root-level tags.`); + } + return tag.name; + }); + return (0, helpers_1.createMixedDecorator)(constants_1.DECORATORS.API_TAGS, normalizedTags); + } + __name(ApiTags, "ApiTags"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-callbacks.decorator.js +var require_api_callbacks_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-callbacks.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiCallbacks = ApiCallbacks; + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + function ApiCallbacks(...callbackObject) { + return (0, helpers_1.createMixedDecorator)(constants_1.DECORATORS.API_CALLBACKS, callbackObject); + } + __name(ApiCallbacks, "ApiCallbacks"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-extension.decorator.js +var require_api_extension_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-extension.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiExtension = ApiExtension; + var constants_1 = require_constants2(); + var constants_2 = require_constants8(); + var lodash_1 = require_lodash(); + var shared_utils_1 = require_shared_utils(); + function applyExtension(target, key, value) { + const extensions = Reflect.getMetadata(constants_2.DECORATORS.API_EXTENSION, target) || {}; + Reflect.defineMetadata(constants_2.DECORATORS.API_EXTENSION, Object.assign({ [key]: value }, extensions), target); + } + __name(applyExtension, "applyExtension"); + function ApiExtension(extensionKey, extensionProperties) { + if (!extensionKey.startsWith("x-")) { + throw new Error("Extension key is not prefixed. Please ensure you prefix it with `x-`."); + } + return (target, key, descriptor) => { + const extensionValue = (0, lodash_1.clone)(extensionProperties); + if (descriptor) { + applyExtension(descriptor.value, extensionKey, extensionValue); + return descriptor; + } + if (typeof target === "object") { + return target; + } + const apiMethods = Object.getOwnPropertyNames(target.prototype).filter((propertyKey) => !(0, shared_utils_1.isConstructor)(propertyKey)).map((propertyKey) => { + var _a; + return (_a = Object.getOwnPropertyDescriptor(target.prototype, propertyKey)) === null || _a === void 0 ? void 0 : _a.value; + }).filter((methodDescriptor) => methodDescriptor !== void 0 && Reflect.hasMetadata(constants_1.METHOD_METADATA, methodDescriptor)); + if (apiMethods.length > 0) { + apiMethods.forEach((method) => applyExtension(method, extensionKey, extensionValue)); + } else { + applyExtension(target, extensionKey, extensionValue); + } + return target; + }; + } + __name(ApiExtension, "ApiExtension"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/api-schema.decorator.js +var require_api_schema_decorator = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/api-schema.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiSchema = ApiSchema; + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + function ApiSchema(options) { + return (0, helpers_1.createClassDecorator)(constants_1.DECORATORS.API_SCHEMA, [options]); + } + __name(ApiSchema, "ApiSchema"); + } +}); + +// node_modules/@nestjs/swagger/dist/decorators/index.js +var require_decorators5 = __commonJS({ + "node_modules/@nestjs/swagger/dist/decorators/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ApiResponseProperty = exports2.ApiPropertyOptional = exports2.ApiProperty = void 0; + __exportStar2(require_api_basic_decorator(), exports2); + __exportStar2(require_api_bearer_decorator(), exports2); + __exportStar2(require_api_body_decorator(), exports2); + __exportStar2(require_api_consumes_decorator(), exports2); + __exportStar2(require_api_cookie_decorator(), exports2); + __exportStar2(require_api_default_getter_decorator(), exports2); + __exportStar2(require_api_exclude_endpoint_decorator(), exports2); + __exportStar2(require_api_include_endpoint_decorator(), exports2); + __exportStar2(require_api_exclude_controller_decorator(), exports2); + __exportStar2(require_api_extra_models_decorator(), exports2); + __exportStar2(require_api_header_decorator(), exports2); + __exportStar2(require_api_hide_property_decorator(), exports2); + __exportStar2(require_api_link_decorator(), exports2); + __exportStar2(require_api_oauth2_decorator(), exports2); + __exportStar2(require_api_operation_decorator(), exports2); + __exportStar2(require_api_param_decorator(), exports2); + __exportStar2(require_api_produces_decorator(), exports2); + var api_property_decorator_1 = require_api_property_decorator(); + Object.defineProperty(exports2, "ApiProperty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return api_property_decorator_1.ApiProperty; + }, "get") }); + Object.defineProperty(exports2, "ApiPropertyOptional", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return api_property_decorator_1.ApiPropertyOptional; + }, "get") }); + Object.defineProperty(exports2, "ApiResponseProperty", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return api_property_decorator_1.ApiResponseProperty; + }, "get") }); + __exportStar2(require_api_query_decorator(), exports2); + __exportStar2(require_api_webhook_decorator(), exports2); + __exportStar2(require_api_response_decorator(), exports2); + __exportStar2(require_api_security_decorator(), exports2); + __exportStar2(require_api_use_tags_decorator(), exports2); + __exportStar2(require_api_callbacks_decorator(), exports2); + __exportStar2(require_api_extension_decorator(), exports2); + __exportStar2(require_api_schema_decorator(), exports2); + } +}); + +// node_modules/@nestjs/swagger/dist/fixtures/document.base.js +var require_document_base = __commonJS({ + "node_modules/@nestjs/swagger/dist/fixtures/document.base.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.buildDocumentBase = void 0; + var buildDocumentBase = /* @__PURE__ */ __name(() => ({ + openapi: "3.0.0", + info: { + title: "", + description: "", + version: "1.0.0", + contact: {} + }, + tags: [], + servers: [], + components: {} + }), "buildDocumentBase"); + exports2.buildDocumentBase = buildDocumentBase; + } +}); + +// node_modules/@nestjs/swagger/dist/storages/global-parameters.storage.js +var require_global_parameters_storage = __commonJS({ + "node_modules/@nestjs/swagger/dist/storages/global-parameters.storage.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.GlobalParametersStorage = exports2.GlobalParametersStorageHost = void 0; + var GlobalParametersStorageHost = class { + static { + __name(this, "GlobalParametersStorageHost"); + } + constructor() { + this.parameters = new Array(); + } + add(...parameters) { + this.parameters.push(...parameters); + } + getAll() { + return this.parameters; + } + clear() { + this.parameters = []; + } + }; + exports2.GlobalParametersStorageHost = GlobalParametersStorageHost; + var globalRef = global; + exports2.GlobalParametersStorage = globalRef.SwaggerGlobalParametersStorage || (globalRef.SwaggerGlobalParametersStorage = new GlobalParametersStorageHost()); + } +}); + +// node_modules/@nestjs/swagger/dist/storages/global-responses.storage.js +var require_global_responses_storage = __commonJS({ + "node_modules/@nestjs/swagger/dist/storages/global-responses.storage.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.GlobalResponsesStorage = exports2.GlobalResponsesStorageHost = void 0; + var GlobalResponsesStorageHost = class { + static { + __name(this, "GlobalResponsesStorageHost"); + } + constructor() { + this.responses = {}; + } + add(responses) { + this.responses = Object.assign(Object.assign({}, this.responses), responses); + } + getAll() { + return this.responses; + } + clear() { + this.responses = {}; + } + }; + exports2.GlobalResponsesStorageHost = GlobalResponsesStorageHost; + var globalRef = global; + exports2.GlobalResponsesStorage = globalRef.SwaggerGlobalResponsesStorage || (globalRef.SwaggerGlobalResponsesStorage = new GlobalResponsesStorageHost()); + } +}); + +// node_modules/@nestjs/swagger/dist/document-builder.js +var require_document_builder = __commonJS({ + "node_modules/@nestjs/swagger/dist/document-builder.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DocumentBuilder = void 0; + var common_12 = require_common(); + var lodash_1 = require_lodash(); + var document_base_1 = require_document_base(); + var global_parameters_storage_1 = require_global_parameters_storage(); + var global_responses_storage_1 = require_global_responses_storage(); + var DocumentBuilder = class _DocumentBuilder { + static { + __name(this, "DocumentBuilder"); + } + constructor() { + this.logger = new common_12.Logger(_DocumentBuilder.name); + this.document = (0, document_base_1.buildDocumentBase)(); + } + setTitle(title) { + this.document.info.title = title; + return this; + } + setDescription(description) { + this.document.info.description = description; + return this; + } + setVersion(version) { + this.document.info.version = version; + return this; + } + setTermsOfService(termsOfService) { + this.document.info.termsOfService = termsOfService; + return this; + } + setContact(name, url, email) { + this.document.info.contact = { name, url, email }; + return this; + } + setLicense(name, url) { + this.document.info.license = { name, url }; + return this; + } + setOpenAPIVersion(version) { + if (/^\d+\.\d+\.\d+$/.test(version)) { + this.document.openapi = version; + } else { + this.logger.warn('The OpenApi version is invalid. Expecting format "x.x.x"'); + } + return this; + } + addServer(url, description, variables, serverExtraProperties) { + const serverObjDef = { + url, + description, + variables + }; + if (serverExtraProperties) { + const alreadyDefinedKeysForServerEntry = Object.keys(serverObjDef); + for (const key in serverExtraProperties) { + if (alreadyDefinedKeysForServerEntry.includes(key)) + continue; + const extraFieldValue = serverExtraProperties[key]; + serverObjDef[key] = extraFieldValue; + } + } + this.document.servers.push(serverObjDef); + return this; + } + setExternalDoc(description, url) { + this.document.externalDocs = { description, url }; + return this; + } + setBasePath(path) { + this.logger.warn('The "setBasePath" method has been deprecated. Now, a global prefix is populated automatically. If you want to ignore it, take a look here: https://docs.nestjs.com/recipes/swagger#global-prefix. Alternatively, you can use "addServer" method to set up multiple different paths.'); + return this; + } + addTag(name, description = "", externalDocs, options) { + this.document.tags = this.document.tags.concat((0, lodash_1.pickBy)({ + name, + summary: options === null || options === void 0 ? void 0 : options.summary, + description, + externalDocs, + parent: options === null || options === void 0 ? void 0 : options.parent, + kind: options === null || options === void 0 ? void 0 : options.kind + }, (0, lodash_1.negate)(lodash_1.isUndefined))); + return this; + } + addExtension(extensionKey, extensionProperties, location = "root") { + if (!extensionKey.startsWith("x-")) { + throw new Error("Extension key is not prefixed. Please ensure you prefix it with `x-`."); + } + if (location === "root") { + this.document[extensionKey] = (0, lodash_1.clone)(extensionProperties); + } else { + this.document[location][extensionKey] = (0, lodash_1.clone)(extensionProperties); + } + return this; + } + addSecurity(name, options) { + this.document.components.securitySchemes = Object.assign(Object.assign({}, this.document.components.securitySchemes || {}), { [name]: options }); + return this; + } + addGlobalResponse(...respones) { + const groupedByStatus = respones.reduce((acc, response) => { + const { status = "default" } = response; + acc[status] = (0, lodash_1.omit)(response, "status"); + return acc; + }, {}); + global_responses_storage_1.GlobalResponsesStorage.add(groupedByStatus); + return this; + } + addGlobalParameters(...parameters) { + global_parameters_storage_1.GlobalParametersStorage.add(...parameters); + return this; + } + addSecurityRequirements(name, requirements = []) { + let securityRequirement; + if ((0, lodash_1.isString)(name)) { + securityRequirement = { [name]: requirements }; + } else { + securityRequirement = name; + } + this.document.security = (this.document.security || []).concat(Object.assign({}, securityRequirement)); + return this; + } + addBearerAuth(options = { + type: "http" + }, name = "bearer") { + this.addSecurity(name, Object.assign({ scheme: "bearer", bearerFormat: "JWT" }, options)); + return this; + } + addOAuth2(options = { + type: "oauth2" + }, name = "oauth2") { + this.addSecurity(name, Object.assign({ type: "oauth2", flows: {} }, options)); + return this; + } + addApiKey(options = { + type: "apiKey" + }, name = "api_key") { + this.addSecurity(name, Object.assign({ type: "apiKey", in: "header", name }, options)); + return this; + } + addBasicAuth(options = { + type: "http" + }, name = "basic") { + this.addSecurity(name, Object.assign({ type: "http", scheme: "basic" }, options)); + return this; + } + addCookieAuth(cookieName = "connect.sid", options = { + type: "apiKey" + }, securityName = "cookie") { + this.addSecurity(securityName, Object.assign({ type: "apiKey", in: "cookie", name: cookieName }, options)); + return this; + } + build() { + return this.document; + } + }; + exports2.DocumentBuilder = DocumentBuilder; + } +}); + +// node_modules/@nestjs/swagger/dist/interfaces/swagger-custom-options.interface.js +var require_swagger_custom_options_interface = __commonJS({ + "node_modules/@nestjs/swagger/dist/interfaces/swagger-custom-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/swagger/dist/interfaces/swagger-document-options.interface.js +var require_swagger_document_options_interface = __commonJS({ + "node_modules/@nestjs/swagger/dist/interfaces/swagger-document-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/swagger/dist/interfaces/index.js +var require_interfaces7 = __commonJS({ + "node_modules/@nestjs/swagger/dist/interfaces/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_swagger_custom_options_interface(), exports2); + __exportStar2(require_swagger_document_options_interface(), exports2); + } +}); + +// node_modules/@nestjs/swagger/node_modules/js-yaml/dist/js-yaml.cjs.js +var require_js_yaml_cjs = __commonJS({ + "node_modules/@nestjs/swagger/node_modules/js-yaml/dist/js-yaml.cjs.js"(exports2) { + Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" }); + var NOT_RESOLVED = /* @__PURE__ */ Symbol("NOT_RESOLVED"); + var MERGE_KEY = /* @__PURE__ */ Symbol("MERGE_KEY"); + function defineScalarTag(tagName, options) { + var _options$implicit, _options$matchByTagPr, _options$implicitFirs, _options$identify, _options$represent, _options$representTag; + return { + tagName, + nodeKind: "scalar", + implicit: (_options$implicit = options.implicit) !== null && _options$implicit !== void 0 ? _options$implicit : false, + matchByTagPrefix: (_options$matchByTagPr = options.matchByTagPrefix) !== null && _options$matchByTagPr !== void 0 ? _options$matchByTagPr : false, + implicitFirstChars: (_options$implicitFirs = options.implicitFirstChars) !== null && _options$implicitFirs !== void 0 ? _options$implicitFirs : null, + resolve: options.resolve, + identify: (_options$identify = options.identify) !== null && _options$identify !== void 0 ? _options$identify : null, + represent: (_options$represent = options.represent) !== null && _options$represent !== void 0 ? _options$represent : ((data) => String(data)), + representTagName: (_options$representTag = options.representTagName) !== null && _options$representTag !== void 0 ? _options$representTag : null + }; + } + __name(defineScalarTag, "defineScalarTag"); + function defineSequenceTag(tagName, options) { + var _options$matchByTagPr2, _options$finalize, _options$identify2, _options$represent2, _options$representTag2; + const carrierIsResult = options.finalize === void 0; + return { + tagName, + nodeKind: "sequence", + implicit: false, + matchByTagPrefix: (_options$matchByTagPr2 = options.matchByTagPrefix) !== null && _options$matchByTagPr2 !== void 0 ? _options$matchByTagPr2 : false, + create: options.create, + addItem: options.addItem, + finalize: (_options$finalize = options.finalize) !== null && _options$finalize !== void 0 ? _options$finalize : ((carrier) => carrier), + carrierIsResult, + identify: (_options$identify2 = options.identify) !== null && _options$identify2 !== void 0 ? _options$identify2 : null, + represent: (_options$represent2 = options.represent) !== null && _options$represent2 !== void 0 ? _options$represent2 : ((data) => data), + representTagName: (_options$representTag2 = options.representTagName) !== null && _options$representTag2 !== void 0 ? _options$representTag2 : null + }; + } + __name(defineSequenceTag, "defineSequenceTag"); + function defineMappingTag(tagName, options) { + var _options$matchByTagPr3, _options$finalize2, _options$identify3, _options$represent3, _options$representTag3; + const carrierIsResult = options.finalize === void 0; + return { + tagName, + nodeKind: "mapping", + implicit: false, + matchByTagPrefix: (_options$matchByTagPr3 = options.matchByTagPrefix) !== null && _options$matchByTagPr3 !== void 0 ? _options$matchByTagPr3 : false, + create: options.create, + addPair: options.addPair, + has: options.has, + keys: options.keys, + get: options.get, + finalize: (_options$finalize2 = options.finalize) !== null && _options$finalize2 !== void 0 ? _options$finalize2 : ((carrier) => carrier), + carrierIsResult, + identify: (_options$identify3 = options.identify) !== null && _options$identify3 !== void 0 ? _options$identify3 : null, + represent: (_options$represent3 = options.represent) !== null && _options$represent3 !== void 0 ? _options$represent3 : ((data) => data), + representTagName: (_options$representTag3 = options.representTagName) !== null && _options$representTag3 !== void 0 ? _options$representTag3 : null + }; + } + __name(defineMappingTag, "defineMappingTag"); + var strTag = defineScalarTag("tag:yaml.org,2002:str", { + resolve: /* @__PURE__ */ __name((source) => source, "resolve"), + identify: /* @__PURE__ */ __name((data) => typeof data === "string", "identify") + }); + var NULL_VALUES$1 = [ + "", + "~", + "null", + "Null", + "NULL" + ]; + var nullCoreTag = defineScalarTag("tag:yaml.org,2002:null", { + implicit: true, + implicitFirstChars: [ + "", + "~", + "n", + "N" + ], + resolve: /* @__PURE__ */ __name((source) => { + if (NULL_VALUES$1.indexOf(source) !== -1) return null; + return NOT_RESOLVED; + }, "resolve"), + identify: /* @__PURE__ */ __name((object) => object === null, "identify"), + represent: /* @__PURE__ */ __name(() => "null", "represent") + }); + var nullJsonTag = defineScalarTag("tag:yaml.org,2002:null", { + implicit: true, + implicitFirstChars: ["n"], + resolve: /* @__PURE__ */ __name((source, isExplicit) => { + if (source === "null" || isExplicit && source === "") return null; + return NOT_RESOLVED; + }, "resolve"), + identify: /* @__PURE__ */ __name((object) => object === null, "identify"), + represent: /* @__PURE__ */ __name(() => "null", "represent") + }); + var NULL_VALUES = [ + "", + "~", + "null", + "Null", + "NULL" + ]; + var nullYaml11Tag = defineScalarTag("tag:yaml.org,2002:null", { + implicit: true, + implicitFirstChars: [ + "", + "~", + "n", + "N" + ], + resolve: /* @__PURE__ */ __name((source) => { + if (NULL_VALUES.indexOf(source) !== -1) return null; + return NOT_RESOLVED; + }, "resolve"), + identify: /* @__PURE__ */ __name((object) => object === null, "identify"), + represent: /* @__PURE__ */ __name(() => "null", "represent") + }); + var TRUE_VALUES$2 = [ + "true", + "True", + "TRUE" + ]; + var FALSE_VALUES$2 = [ + "false", + "False", + "FALSE" + ]; + var boolCoreTag = defineScalarTag("tag:yaml.org,2002:bool", { + implicit: true, + implicitFirstChars: [ + "t", + "T", + "f", + "F" + ], + resolve: /* @__PURE__ */ __name((source) => { + if (TRUE_VALUES$2.indexOf(source) !== -1) return true; + if (FALSE_VALUES$2.indexOf(source) !== -1) return false; + return NOT_RESOLVED; + }, "resolve"), + identify: /* @__PURE__ */ __name((object) => Object.prototype.toString.call(object) === "[object Boolean]", "identify"), + represent: /* @__PURE__ */ __name((object) => object ? "true" : "false", "represent") + }); + var TRUE_VALUES$1 = ["true"]; + var FALSE_VALUES$1 = ["false"]; + var boolJsonTag = defineScalarTag("tag:yaml.org,2002:bool", { + implicit: true, + implicitFirstChars: ["t", "f"], + resolve: /* @__PURE__ */ __name((source) => { + if (TRUE_VALUES$1.indexOf(source) !== -1) return true; + if (FALSE_VALUES$1.indexOf(source) !== -1) return false; + return NOT_RESOLVED; + }, "resolve"), + identify: /* @__PURE__ */ __name((object) => Object.prototype.toString.call(object) === "[object Boolean]", "identify"), + represent: /* @__PURE__ */ __name((object) => object ? "true" : "false", "represent") + }); + var TRUE_VALUES = [ + "true", + "True", + "TRUE", + "y", + "Y", + "yes", + "Yes", + "YES", + "on", + "On", + "ON" + ]; + var FALSE_VALUES = [ + "false", + "False", + "FALSE", + "n", + "N", + "no", + "No", + "NO", + "off", + "Off", + "OFF" + ]; + var boolYaml11Tag = defineScalarTag("tag:yaml.org,2002:bool", { + implicit: true, + implicitFirstChars: [ + "y", + "Y", + "n", + "N", + "t", + "T", + "f", + "F", + "o", + "O" + ], + resolve: /* @__PURE__ */ __name((source) => { + if (TRUE_VALUES.indexOf(source) !== -1) return true; + if (FALSE_VALUES.indexOf(source) !== -1) return false; + return NOT_RESOLVED; + }, "resolve"), + identify: /* @__PURE__ */ __name((object) => Object.prototype.toString.call(object) === "[object Boolean]", "identify"), + represent: /* @__PURE__ */ __name((object) => object ? "true" : "false", "represent") + }); + var YAML_INTEGER_IMPLICIT_PATTERN$1 = /* @__PURE__ */ new RegExp("^(?:0o[0-7]+|0x[0-9a-fA-F]+|[-+]?[0-9]+)$"); + var YAML_INTEGER_EXPLICIT_PATTERN$1 = /* @__PURE__ */ new RegExp("^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$"); + function parseYamlInteger$2(source) { + let value = source; + let sign = 1; + if (value[0] === "-" || value[0] === "+") { + if (value[0] === "-") sign = -1; + value = value.slice(1); + } + if (value.startsWith("0b")) return sign * parseInt(value.slice(2), 2); + if (value.startsWith("0o")) return sign * parseInt(value.slice(2), 8); + if (value.startsWith("0x")) return sign * parseInt(value.slice(2), 16); + return sign * parseInt(value, 10); + } + __name(parseYamlInteger$2, "parseYamlInteger$2"); + function resolveYamlInteger$2(source, isExplicit) { + if (isExplicit) { + if (!YAML_INTEGER_EXPLICIT_PATTERN$1.test(source)) return NOT_RESOLVED; + } else if (!YAML_INTEGER_IMPLICIT_PATTERN$1.test(source)) return NOT_RESOLVED; + const result = parseYamlInteger$2(source); + return Number.isFinite(result) ? result : NOT_RESOLVED; + } + __name(resolveYamlInteger$2, "resolveYamlInteger$2"); + var intCoreTag = defineScalarTag("tag:yaml.org,2002:int", { + implicit: true, + implicitFirstChars: [ + "-", + "+", + ..."0123456789" + ], + resolve: resolveYamlInteger$2, + identify: /* @__PURE__ */ __name((object) => Number.isInteger(object) && !Object.is(object, -0) && object.toString(10).indexOf("e") < 0, "identify"), + represent: /* @__PURE__ */ __name((object) => object.toString(10), "represent") + }); + var YAML_INTEGER_IMPLICIT_PATTERN = /* @__PURE__ */ new RegExp("^-?(?:0|[1-9][0-9]*)$"); + var YAML_INTEGER_EXPLICIT_PATTERN = /* @__PURE__ */ new RegExp("^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$"); + function parseYamlInteger$1(source) { + let value = source; + let sign = 1; + if (value[0] === "-" || value[0] === "+") { + if (value[0] === "-") sign = -1; + value = value.slice(1); + } + if (value.startsWith("0b")) return sign * parseInt(value.slice(2), 2); + if (value.startsWith("0o")) return sign * parseInt(value.slice(2), 8); + if (value.startsWith("0x")) return sign * parseInt(value.slice(2), 16); + return sign * parseInt(value, 10); + } + __name(parseYamlInteger$1, "parseYamlInteger$1"); + function resolveYamlInteger$1(source, isExplicit) { + if (isExplicit) { + if (!YAML_INTEGER_EXPLICIT_PATTERN.test(source)) return NOT_RESOLVED; + } else if (!YAML_INTEGER_IMPLICIT_PATTERN.test(source)) return NOT_RESOLVED; + const result = parseYamlInteger$1(source); + return Number.isFinite(result) ? result : NOT_RESOLVED; + } + __name(resolveYamlInteger$1, "resolveYamlInteger$1"); + var intJsonTag = defineScalarTag("tag:yaml.org,2002:int", { + implicit: true, + implicitFirstChars: ["-", ..."0123456789"], + resolve: resolveYamlInteger$1, + identify: /* @__PURE__ */ __name((object) => Number.isInteger(object) && !Object.is(object, -0) && object.toString(10).indexOf("e") < 0, "identify"), + represent: /* @__PURE__ */ __name((object) => object.toString(10), "represent") + }); + var YAML_INTEGER_PATTERN = /* @__PURE__ */ new RegExp("^(?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?0x[0-9a-fA-F_]+|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+|[-+]?(?:0|[1-9][0-9_]*))$"); + function parseYamlInteger(source) { + let value = source.replace(/_/g, ""); + let sign = 1; + if (value[0] === "-" || value[0] === "+") { + if (value[0] === "-") sign = -1; + value = value.slice(1); + } + if (value.startsWith("0b")) return sign * parseInt(value.slice(2), 2); + if (value.startsWith("0x")) return sign * parseInt(value.slice(2), 16); + if (value.includes(":")) { + let result = 0; + for (const part of value.split(":")) result = result * 60 + Number(part); + return sign * result; + } + if (value !== "0" && value[0] === "0") return sign * parseInt(value, 8); + return sign * parseInt(value, 10); + } + __name(parseYamlInteger, "parseYamlInteger"); + function resolveYamlInteger(source) { + if (!YAML_INTEGER_PATTERN.test(source)) return NOT_RESOLVED; + const result = parseYamlInteger(source); + return Number.isFinite(result) ? result : NOT_RESOLVED; + } + __name(resolveYamlInteger, "resolveYamlInteger"); + var intYaml11Tag = defineScalarTag("tag:yaml.org,2002:int", { + implicit: true, + implicitFirstChars: [ + "-", + "+", + ..."0123456789" + ], + resolve: resolveYamlInteger, + identify: /* @__PURE__ */ __name((object) => Number.isInteger(object) && !Object.is(object, -0) && object.toString(10).indexOf("e") < 0, "identify"), + represent: /* @__PURE__ */ __name((object) => object.toString(10), "represent") + }); + var YAML_FLOAT_PATTERN$1 = /* @__PURE__ */ new RegExp("^(?:[-+]?[0-9]+(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"); + var YAML_FLOAT_SPECIAL_PATTERN$1 = /* @__PURE__ */ new RegExp("^(?:[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"); + function resolveYamlFloat$2(source) { + if (!YAML_FLOAT_PATTERN$1.test(source)) return NOT_RESOLVED; + let value = source.toLowerCase(); + const sign = value[0] === "-" ? -1 : 1; + if ("+-".includes(value[0])) value = value.slice(1); + if (value === ".inf") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + if (value === ".nan") return NaN; + const result = sign * parseFloat(value); + if (Number.isFinite(result) || YAML_FLOAT_SPECIAL_PATTERN$1.test(source)) return result; + return NOT_RESOLVED; + } + __name(resolveYamlFloat$2, "resolveYamlFloat$2"); + function representYamlFloat$2(object) { + if (isNaN(object)) return ".nan"; + if (object === Number.POSITIVE_INFINITY) return ".inf"; + if (object === Number.NEGATIVE_INFINITY) return "-.inf"; + if (Object.is(object, -0)) return "-0.0"; + const result = object.toString(10); + return /^[-+]?[0-9]+e/.test(result) ? result.replace("e", ".e") : result; + } + __name(representYamlFloat$2, "representYamlFloat$2"); + var floatCoreTag = defineScalarTag("tag:yaml.org,2002:float", { + implicit: true, + implicitFirstChars: [ + "-", + "+", + ".", + ..."0123456789" + ], + resolve: resolveYamlFloat$2, + identify: /* @__PURE__ */ __name((object) => typeof object === "number" && (!Number.isInteger(object) || Object.is(object, -0) || object.toString(10).indexOf("e") >= 0), "identify"), + represent: representYamlFloat$2 + }); + var YAML_FLOAT_IMPLICIT_PATTERN = /* @__PURE__ */ new RegExp("^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$"); + var YAML_FLOAT_EXPLICIT_PATTERN = /* @__PURE__ */ new RegExp("^(?:[-+]?[0-9]+(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"); + function resolveYamlFloat$1(source, isExplicit) { + if (isExplicit) { + if (!YAML_FLOAT_EXPLICIT_PATTERN.test(source)) return NOT_RESOLVED; + let value = source.toLowerCase(); + const sign = value[0] === "-" ? -1 : 1; + if ("+-".includes(value[0])) value = value.slice(1); + if (value === ".inf") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + if (value === ".nan") return NaN; + const result2 = sign * parseFloat(value); + return Number.isFinite(result2) ? result2 : NOT_RESOLVED; + } + if (!YAML_FLOAT_IMPLICIT_PATTERN.test(source)) return NOT_RESOLVED; + const result = Number(source); + if (Number.isFinite(result)) return result; + return NOT_RESOLVED; + } + __name(resolveYamlFloat$1, "resolveYamlFloat$1"); + function representYamlFloat$1(object) { + if (isNaN(object)) return ".nan"; + if (object === Number.POSITIVE_INFINITY) return ".inf"; + if (object === Number.NEGATIVE_INFINITY) return "-.inf"; + if (Object.is(object, -0)) return "-0.0"; + const result = object.toString(10); + return /^[-+]?[0-9]+e/.test(result) ? result.replace("e", ".e") : result; + } + __name(representYamlFloat$1, "representYamlFloat$1"); + var floatJsonTag = defineScalarTag("tag:yaml.org,2002:float", { + implicit: true, + implicitFirstChars: ["-", ..."0123456789"], + resolve: resolveYamlFloat$1, + identify: /* @__PURE__ */ __name((object) => typeof object === "number" && (!Number.isInteger(object) || Object.is(object, -0) || object.toString(10).indexOf("e") >= 0), "identify"), + represent: representYamlFloat$1 + }); + var YAML_FLOAT_PATTERN = /* @__PURE__ */ new RegExp("^(?:[-+]?(?:(?:[0-9][0-9_]*)?\\.[0-9_]*)(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"); + var YAML_FLOAT_SPECIAL_PATTERN = /* @__PURE__ */ new RegExp("^(?:[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"); + function resolveYamlFloat(source) { + if (!YAML_FLOAT_PATTERN.test(source)) return NOT_RESOLVED; + let value = source.toLowerCase().replace(/_/g, ""); + const sign = value[0] === "-" ? -1 : 1; + if ("+-".includes(value[0])) value = value.slice(1); + if (value === ".inf") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + if (value === ".nan") return NaN; + let result = 0; + if (value.includes(":")) { + for (const part of value.split(":")) result = result * 60 + Number(part); + result *= sign; + } else result = sign * parseFloat(value); + if (Number.isFinite(result) || YAML_FLOAT_SPECIAL_PATTERN.test(source)) return result; + return NOT_RESOLVED; + } + __name(resolveYamlFloat, "resolveYamlFloat"); + function representYamlFloat(object) { + if (isNaN(object)) return ".nan"; + if (object === Number.POSITIVE_INFINITY) return ".inf"; + if (object === Number.NEGATIVE_INFINITY) return "-.inf"; + if (Object.is(object, -0)) return "-0.0"; + const result = object.toString(10); + return /^[-+]?[0-9]+e/.test(result) ? result.replace("e", ".e") : result; + } + __name(representYamlFloat, "representYamlFloat"); + var floatYaml11Tag = defineScalarTag("tag:yaml.org,2002:float", { + implicit: true, + implicitFirstChars: [ + "-", + "+", + ".", + ..."0123456789" + ], + resolve: resolveYamlFloat, + identify: /* @__PURE__ */ __name((object) => typeof object === "number" && (!Number.isInteger(object) || Object.is(object, -0) || object.toString(10).indexOf("e") >= 0), "identify"), + represent: representYamlFloat + }); + var mergeTag = defineScalarTag("tag:yaml.org,2002:merge", { + implicit: true, + implicitFirstChars: ["<"], + resolve: /* @__PURE__ */ __name((source, isExplicit) => { + if (source === "<<" || isExplicit && source === "") return MERGE_KEY; + return NOT_RESOLVED; + }, "resolve") + }); + var BASE64_PATTERN = /^[A-Za-z0-9+/]*={0,2}$/; + function resolveYamlBinary(source) { + const input = source.replace(/\s/g, ""); + if (input.length % 4 !== 0 || !BASE64_PATTERN.test(input)) return NOT_RESOLVED; + const binary = atob(input); + const result = new Uint8Array(binary.length); + for (let index = 0; index < binary.length; index++) result[index] = binary.charCodeAt(index); + return result; + } + __name(resolveYamlBinary, "resolveYamlBinary"); + function representYamlBinary(object) { + let binary = ""; + for (let index = 0; index < object.length; index++) binary += String.fromCharCode(object[index]); + return btoa(binary); + } + __name(representYamlBinary, "representYamlBinary"); + var binaryTag = defineScalarTag("tag:yaml.org,2002:binary", { + resolve: resolveYamlBinary, + identify: /* @__PURE__ */ __name((object) => Object.prototype.toString.call(object) === "[object Uint8Array]", "identify"), + represent: representYamlBinary + }); + var YAML_DATE_REGEXP = /* @__PURE__ */ new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"); + var YAML_TIMESTAMP_REGEXP = /* @__PURE__ */ new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"); + function resolveYamlTimestamp(source) { + let match = YAML_DATE_REGEXP.exec(source); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(source); + if (match === null) return NOT_RESOLVED; + const year = +match[1]; + const month = +match[2] - 1; + const day = +match[3]; + if (!match[4]) { + const date2 = new Date(Date.UTC(year, month, day)); + if (date2.getUTCFullYear() !== year || date2.getUTCMonth() !== month || date2.getUTCDate() !== day) return NOT_RESOLVED; + return date2; + } + const hour = +match[4]; + const minute = +match[5]; + const second = +match[6]; + let fraction = 0; + if (hour > 23 || minute > 59 || second > 59) return NOT_RESOLVED; + if (match[7]) { + let value = match[7].slice(0, 3); + while (value.length < 3) value += "0"; + fraction = +value; + } + const date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + if (date.getUTCFullYear() !== year || date.getUTCMonth() !== month || date.getUTCDate() !== day) return NOT_RESOLVED; + if (match[9]) { + const offsetHour = +match[10]; + const offsetMinute = +(match[11] || 0); + if (offsetHour > 23 || offsetMinute > 59) return NOT_RESOLVED; + const offset = (offsetHour * 60 + offsetMinute) * 6e4; + date.setTime(date.getTime() - (match[9] === "-" ? -offset : offset)); + } + return date; + } + __name(resolveYamlTimestamp, "resolveYamlTimestamp"); + var timestampTag = defineScalarTag("tag:yaml.org,2002:timestamp", { + implicit: true, + implicitFirstChars: [..."0123456789"], + resolve: resolveYamlTimestamp, + identify: /* @__PURE__ */ __name((object) => object instanceof Date, "identify"), + represent: /* @__PURE__ */ __name((object) => object.toISOString(), "represent") + }); + var seqTag = defineSequenceTag("tag:yaml.org,2002:seq", { + create: /* @__PURE__ */ __name(() => [], "create"), + addItem: /* @__PURE__ */ __name((container, item) => { + container.push(item); + }, "addItem"), + identify: Array.isArray + }); + function isPlainObject(data) { + if (data === null || typeof data !== "object" || Array.isArray(data)) return false; + const prototype = Object.getPrototypeOf(data); + return prototype === null || prototype === Object.prototype; + } + __name(isPlainObject, "isPlainObject"); + function pick(object, keys) { + const result = {}; + for (const key of keys) if (object[key] !== void 0) result[key] = object[key]; + return result; + } + __name(pick, "pick"); + var omapTag = defineSequenceTag("tag:yaml.org,2002:omap", { + create: /* @__PURE__ */ __name(() => ({ + list: [], + seen: /* @__PURE__ */ new Set() + }), "create"), + addItem: /* @__PURE__ */ __name((carrier, item) => { + let key; + if (item instanceof Map) { + if (item.size !== 1) return "cannot resolve an ordered map item"; + key = item.keys().next().value; + } else if (isPlainObject(item)) { + const itemKeys = Object.keys(item); + if (itemKeys.length !== 1) return "cannot resolve an ordered map item"; + key = itemKeys[0]; + } else return "cannot resolve an ordered map item"; + if (carrier.seen.has(key)) return "duplicate key in ordered map"; + carrier.seen.add(key); + carrier.list.push(item); + return ""; + }, "addItem"), + finalize: /* @__PURE__ */ __name((carrier) => carrier.list, "finalize") + }); + var pairsTag = defineSequenceTag("tag:yaml.org,2002:pairs", { + create: /* @__PURE__ */ __name(() => [], "create"), + addItem: /* @__PURE__ */ __name((container, item) => { + if (item instanceof Map) { + if (item.size !== 1) return "cannot resolve a pairs item"; + container.push(item.entries().next().value); + return ""; + } + if (Object.prototype.toString.call(item) !== "[object Object]") return "cannot resolve a pairs item"; + const object = item; + const keys = Object.keys(object); + if (keys.length !== 1) return "cannot resolve a pairs item"; + container.push([keys[0], object[keys[0]]]); + return ""; + }, "addItem") + }); + var mapTag = defineMappingTag("tag:yaml.org,2002:map", { + create: /* @__PURE__ */ __name(() => ({}), "create"), + identify: isPlainObject, + represent: /* @__PURE__ */ __name((o) => { + const map = /* @__PURE__ */ new Map(); + for (const key of Object.keys(o)) map.set(key, o[key]); + return map; + }, "represent"), + addPair: /* @__PURE__ */ __name((container, key, value) => { + if (key !== null && typeof key === "object") return "object-based map does not support complex keys"; + const normalizedKey = String(key); + if (normalizedKey === "__proto__") Object.defineProperty(container, normalizedKey, { + value, + enumerable: true, + configurable: true, + writable: true + }); + else container[normalizedKey] = value; + return ""; + }, "addPair"), + has: /* @__PURE__ */ __name((container, key) => { + if (key !== null && typeof key === "object") return false; + return Object.prototype.hasOwnProperty.call(container, String(key)); + }, "has"), + keys: /* @__PURE__ */ __name((container) => Object.keys(container), "keys"), + get: /* @__PURE__ */ __name((container, key) => container[String(key)], "get") + }); + var setTag = defineMappingTag("tag:yaml.org,2002:set", { + create: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Set(), "create"), + identify: /* @__PURE__ */ __name((data) => data instanceof Set, "identify"), + represent: /* @__PURE__ */ __name((data) => { + const map = /* @__PURE__ */ new Map(); + for (const key of data) map.set(key, null); + return map; + }, "represent"), + addPair: /* @__PURE__ */ __name((container, key, value) => { + if (value !== null) return "cannot resolve a set item"; + container.add(key); + return ""; + }, "addPair"), + has: /* @__PURE__ */ __name((container, key) => container.has(key), "has"), + keys: /* @__PURE__ */ __name((container) => container.keys(), "keys"), + get: /* @__PURE__ */ __name(() => null, "get") + }); + function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); + } + __name(_typeof, "_typeof"); + function toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + __name(toPrimitive, "toPrimitive"); + function toPropertyKey(t) { + var i = toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + __name(toPropertyKey, "toPropertyKey"); + function _defineProperty(e, r, t) { + return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: true, + configurable: true, + writable: true + }) : e[r] = t, e; + } + __name(_defineProperty, "_defineProperty"); + function createTagDefinitionMap() { + return { + scalar: {}, + sequence: {}, + mapping: {} + }; + } + __name(createTagDefinitionMap, "createTagDefinitionMap"); + function createTagDefinitionListMap() { + return { + scalar: [], + sequence: [], + mapping: [] + }; + } + __name(createTagDefinitionListMap, "createTagDefinitionListMap"); + function compileTags(tags) { + const result = []; + for (const tag of tags) { + let index = result.length; + for (let previousIndex = 0; previousIndex < result.length; previousIndex++) { + const previous = result[previousIndex]; + if (previous.nodeKind === tag.nodeKind && previous.tagName === tag.tagName && previous.matchByTagPrefix === tag.matchByTagPrefix) { + index = previousIndex; + break; + } + } + result[index] = tag; + } + return result; + } + __name(compileTags, "compileTags"); + var Schema = class Schema2 { + static { + __name(this, "Schema"); + } + constructor(tags) { + _defineProperty(this, "tags", void 0); + _defineProperty(this, "implicitScalarTags", void 0); + _defineProperty(this, "implicitScalarByFirstChar", void 0); + _defineProperty(this, "implicitScalarAnyFirstChar", void 0); + _defineProperty(this, "defaultScalarTag", void 0); + _defineProperty(this, "defaultSequenceTag", void 0); + _defineProperty(this, "defaultMappingTag", void 0); + _defineProperty(this, "exact", void 0); + _defineProperty(this, "prefix", void 0); + const compiledTags = compileTags(tags); + const implicitScalarTags = []; + const exact = createTagDefinitionMap(); + const prefix = createTagDefinitionListMap(); + for (const tag of compiledTags) { + if (tag.nodeKind === "scalar" && tag.implicit) { + if (tag.matchByTagPrefix) throw new Error("Implicit scalar tags cannot match by tag prefix"); + implicitScalarTags.push(tag); + } + switch (tag.nodeKind) { + case "scalar": + if (tag.matchByTagPrefix) prefix.scalar.push(tag); + else exact.scalar[tag.tagName] = tag; + break; + case "sequence": + if (tag.matchByTagPrefix) prefix.sequence.push(tag); + else exact.sequence[tag.tagName] = tag; + break; + case "mapping": + if (tag.matchByTagPrefix) prefix.mapping.push(tag); + else exact.mapping[tag.tagName] = tag; + break; + } + } + const implicitScalarAnyFirstChar = implicitScalarTags.filter((tag) => tag.implicitFirstChars === null); + const keys = /* @__PURE__ */ new Set(); + for (const tag of implicitScalarTags) if (tag.implicitFirstChars !== null) for (const key of tag.implicitFirstChars) keys.add(key); + const implicitScalarByFirstChar = /* @__PURE__ */ new Map(); + for (const key of keys) implicitScalarByFirstChar.set(key, implicitScalarTags.filter((tag) => tag.implicitFirstChars === null || tag.implicitFirstChars.indexOf(key) !== -1)); + const defaultScalarTag = exact.scalar["tag:yaml.org,2002:str"]; + if (!defaultScalarTag) throw new Error("schema does not define the default scalar tag (tag:yaml.org,2002:str)"); + this.tags = compiledTags; + this.implicitScalarTags = implicitScalarTags; + this.implicitScalarByFirstChar = implicitScalarByFirstChar; + this.implicitScalarAnyFirstChar = implicitScalarAnyFirstChar; + this.defaultScalarTag = defaultScalarTag; + this.defaultSequenceTag = exact.sequence["tag:yaml.org,2002:seq"]; + this.defaultMappingTag = exact.mapping["tag:yaml.org,2002:map"]; + this.exact = exact; + this.prefix = prefix; + } + withTags(...tags) { + let flatTags = []; + for (const tag of tags) flatTags = flatTags.concat(tag); + return new Schema2([...this.tags, ...flatTags]); + } + }; + var FAILSAFE_SCHEMA = new Schema([ + strTag, + seqTag, + mapTag + ]); + var JSON_SCHEMA = new Schema([ + ...FAILSAFE_SCHEMA.tags, + nullJsonTag, + boolJsonTag, + intJsonTag, + floatJsonTag + ]); + var CORE_SCHEMA = new Schema([ + ...FAILSAFE_SCHEMA.tags, + nullCoreTag, + boolCoreTag, + intCoreTag, + floatCoreTag + ]); + var YAML11_SCHEMA = new Schema([ + ...FAILSAFE_SCHEMA.tags, + nullYaml11Tag, + boolYaml11Tag, + intYaml11Tag, + floatYaml11Tag, + timestampTag, + mergeTag, + binaryTag, + omapTag, + pairsTag, + setTag + ]); + var realMapTag = defineMappingTag("tag:yaml.org,2002:map", { + create: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Map(), "create"), + addPair: /* @__PURE__ */ __name((container, key, value) => { + container.set(key, value); + return ""; + }, "addPair"), + has: /* @__PURE__ */ __name((container, key) => container.has(key), "has"), + keys: /* @__PURE__ */ __name((container) => container.keys(), "keys"), + get: /* @__PURE__ */ __name((container, key) => container.get(key), "get"), + identify: /* @__PURE__ */ __name((data) => data instanceof Map || isPlainObject(data), "identify"), + represent: /* @__PURE__ */ __name((data) => { + if (data instanceof Map) return data; + const map = /* @__PURE__ */ new Map(); + const obj = data; + for (const key of Object.keys(obj)) map.set(key, obj[key]); + return map; + }, "represent") + }); + function normalizeKey(key) { + if (Array.isArray(key)) { + const array = Array.prototype.slice.call(key); + for (let index = 0; index < array.length; index++) { + if (Array.isArray(array[index])) return null; + if (typeof array[index] === "object" && Object.prototype.toString.call(array[index]) === "[object Object]") array[index] = "[object Object]"; + } + return String(array); + } + if (typeof key === "object" && Object.prototype.toString.call(key) === "[object Object]") return "[object Object]"; + return String(key); + } + __name(normalizeKey, "normalizeKey"); + var legacyMapTag = defineMappingTag("tag:yaml.org,2002:map", { + create: /* @__PURE__ */ __name(() => ({}), "create"), + identify: isPlainObject, + represent: /* @__PURE__ */ __name((o) => { + const map = /* @__PURE__ */ new Map(); + for (const key of Object.keys(o)) map.set(key, o[key]); + return map; + }, "represent"), + addPair: /* @__PURE__ */ __name((container, key, value) => { + const normalizedKey = normalizeKey(key); + if (normalizedKey === null) return "nested arrays are not supported inside keys"; + if (normalizedKey === "__proto__") Object.defineProperty(container, normalizedKey, { + value, + enumerable: true, + configurable: true, + writable: true + }); + else container[normalizedKey] = value; + return ""; + }, "addPair"), + has: /* @__PURE__ */ __name((container, key) => { + const normalizedKey = normalizeKey(key); + return normalizedKey !== null && Object.prototype.hasOwnProperty.call(container, normalizedKey); + }, "has"), + keys: /* @__PURE__ */ __name((container) => Object.keys(container), "keys"), + get: /* @__PURE__ */ __name((container, key) => container[String(key)], "get") + }); + function ownKeys2(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + __name(ownKeys2, "ownKeys"); + function _objectSpread2(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + __name(_objectSpread2, "_objectSpread2"); + var DEFAULT_SNIPPET_OPTIONS = { + maxLength: 79, + indent: 1, + linesBefore: 3, + linesAfter: 2 + }; + function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + let head = ""; + let tail = ""; + const maxHalfLength = Math.floor(maxLineLength / 2) - 1; + if (position - lineStart > maxHalfLength) { + head = " ... "; + lineStart = position - maxHalfLength + head.length; + } + if (lineEnd - position > maxHalfLength) { + tail = " ..."; + lineEnd = position + maxHalfLength - tail.length; + } + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail, + pos: position - lineStart + head.length + }; + } + __name(getLine, "getLine"); + function padStart(string, max) { + return " ".repeat(Math.max(max - string.length, 0)) + string; + } + __name(padStart, "padStart"); + function makeSnippet(mark, options) { + if (!mark.buffer) return null; + const opts = _objectSpread2(_objectSpread2({}, DEFAULT_SNIPPET_OPTIONS), options); + const re = /\r?\n|\r|\0/g; + const lineStarts = [0]; + const lineEnds = []; + let match; + let foundLineNo = -1; + while (match = re.exec(mark.buffer)) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + if (mark.position <= match.index && foundLineNo < 0) foundLineNo = lineStarts.length - 2; + } + if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; + let result = ""; + const lineNoLength = Math.min(mark.line + opts.linesAfter, lineEnds.length).toString().length; + const maxLineLength = opts.maxLength - (opts.indent + lineNoLength + 3); + for (let i = 1; i <= opts.linesBefore; i++) { + if (foundLineNo - i < 0) break; + const line2 = getLine(mark.buffer, lineStarts[foundLineNo - i], lineEnds[foundLineNo - i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), maxLineLength); + result = `${" ".repeat(opts.indent)}${padStart((mark.line - i + 1).toString(), lineNoLength)} | ${line2.str} +${result}`; + } + const line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += `${" ".repeat(opts.indent)}${padStart((mark.line + 1).toString(), lineNoLength)} | ${line.str} +`; + result += `${"-".repeat(opts.indent + lineNoLength + 3 + line.pos)}^ +`; + for (let i = 1; i <= opts.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) break; + const line2 = getLine(mark.buffer, lineStarts[foundLineNo + i], lineEnds[foundLineNo + i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), maxLineLength); + result += `${" ".repeat(opts.indent)}${padStart((mark.line + i + 1).toString(), lineNoLength)} | ${line2.str} +`; + } + return result.replace(/\n$/, ""); + } + __name(makeSnippet, "makeSnippet"); + function formatError(exception, compact) { + let where = ""; + if (!exception.mark) return exception.reason; + if (exception.mark.name) where += `in "${exception.mark.name}" `; + where += `(${exception.mark.line + 1}:${exception.mark.column + 1})`; + if (!compact && exception.mark.snippet) where += ` + +${exception.mark.snippet}`; + return `${exception.reason} ${where}`; + } + __name(formatError, "formatError"); + var YAMLException = class extends Error { + static { + __name(this, "YAMLException"); + } + constructor(reason, mark) { + super(); + _defineProperty(this, "reason", void 0); + _defineProperty(this, "mark", void 0); + this.name = "YAMLException"; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); + if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor); + } + toString(compact) { + return `${this.name}: ${formatError(this, compact)}`; + } + }; + function throwErrorAt(source, position, message, filename = "") { + let line = 0; + let lineStart = 0; + for (let index = 0; index < position; index++) { + const ch = source.charCodeAt(index); + if (ch === 10) { + line++; + lineStart = index + 1; + } else if (ch === 13) { + line++; + if (source.charCodeAt(index + 1) === 10) index++; + lineStart = index + 1; + } + } + const mark = { + name: filename, + buffer: source, + position, + line, + column: position - lineStart + }; + mark.snippet = makeSnippet(mark); + throw new YAMLException(message, mark); + } + __name(throwErrorAt, "throwErrorAt"); + var EVENT_DOCUMENT = 1; + var EVENT_SEQUENCE = 2; + var EVENT_MAPPING = 3; + var EVENT_SCALAR = 4; + var EVENT_ALIAS = 5; + var EVENT_POP = 6; + var SCALAR_STYLE_PLAIN = 1; + var SCALAR_STYLE_SINGLE_QUOTED = 2; + var SCALAR_STYLE_DOUBLE_QUOTED = 3; + var SCALAR_STYLE_LITERAL_BLOCK = 4; + var SCALAR_STYLE_FOLDED_BLOCK = 5; + var COLLECTION_STYLE_BLOCK = 1; + var COLLECTION_STYLE_FLOW = 2; + var CHOMPING_CLIP = 1; + var CHOMPING_STRIP = 2; + var CHOMPING_KEEP = 3; + var NO_RANGE$3 = -1; + function simpleEscapeSequence(c) { + switch (c) { + case 48: + return "\0"; + case 97: + return "\x07"; + case 98: + return "\b"; + case 116: + return " "; + case 9: + return " "; + case 110: + return "\n"; + case 118: + return "\v"; + case 102: + return "\f"; + case 114: + return "\r"; + case 101: + return "\x1B"; + case 32: + return " "; + case 34: + return '"'; + case 47: + return "/"; + case 92: + return "\\"; + case 78: + return "\x85"; + case 95: + return "\xA0"; + case 76: + return "\u2028"; + case 80: + return "\u2029"; + default: + return ""; + } + } + __name(simpleEscapeSequence, "simpleEscapeSequence"); + var simpleEscapeCheck = new Array(256); + var simpleEscapeMap = new Array(256); + for (let i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); + } + function charFromCodepoint(c) { + if (c <= 65535) return String.fromCharCode(c); + return String.fromCharCode((c - 65536 >> 10) + 55296, (c - 65536 & 1023) + 56320); + } + __name(charFromCodepoint, "charFromCodepoint"); + function fromHexCode$1(c) { + if (c >= 48 && c <= 57) return c - 48; + return (c | 32) - 97 + 10; + } + __name(fromHexCode$1, "fromHexCode$1"); + function escapedHexLen$1(c) { + if (c === 120) return 2; + if (c === 117) return 4; + return 8; + } + __name(escapedHexLen$1, "escapedHexLen$1"); + function skipFoldedBreaks(input, position, end) { + let breaks = 0; + while (position < end) { + const ch = input.charCodeAt(position); + if (ch === 10) { + breaks++; + position++; + } else if (ch === 13) { + breaks++; + position++; + if (input.charCodeAt(position) === 10) position++; + } else if (ch === 32 || ch === 9) position++; + else break; + } + return { + position, + breaks + }; + } + __name(skipFoldedBreaks, "skipFoldedBreaks"); + function foldedBreaks(count) { + if (count === 1) return " "; + return "\n".repeat(count - 1); + } + __name(foldedBreaks, "foldedBreaks"); + function getPlainValue(input, start, end) { + let result = ""; + let position = start; + let captureStart = start; + let captureEnd = start; + while (position < end) { + const ch = input.charCodeAt(position); + if (ch === 10 || ch === 13) { + result += input.slice(captureStart, captureEnd); + const fold = skipFoldedBreaks(input, position, end); + result += foldedBreaks(fold.breaks); + position = captureStart = captureEnd = fold.position; + } else { + position++; + if (ch !== 32 && ch !== 9) captureEnd = position; + } + } + return result + input.slice(captureStart, captureEnd); + } + __name(getPlainValue, "getPlainValue"); + function getSingleQuotedValue(input, start, end) { + let result = ""; + let position = start; + let captureStart = start; + let captureEnd = start; + while (position < end) { + const ch = input.charCodeAt(position); + if (ch === 39) { + result += input.slice(captureStart, position) + "'"; + position += 2; + captureStart = captureEnd = position; + } else if (ch === 10 || ch === 13) { + result += input.slice(captureStart, captureEnd); + const fold = skipFoldedBreaks(input, position, end); + result += foldedBreaks(fold.breaks); + position = captureStart = captureEnd = fold.position; + } else { + position++; + if (ch !== 32 && ch !== 9) captureEnd = position; + } + } + return result + input.slice(captureStart, end); + } + __name(getSingleQuotedValue, "getSingleQuotedValue"); + function getDoubleQuotedValue(input, start, end) { + let result = ""; + let position = start; + let captureStart = start; + let captureEnd = start; + while (position < end) { + const ch = input.charCodeAt(position); + if (ch === 92) { + result += input.slice(captureStart, position); + position++; + const escaped = input.charCodeAt(position); + if (escaped === 10 || escaped === 13) position = skipFoldedBreaks(input, position, end).position; + else if (escaped < 256 && simpleEscapeCheck[escaped]) { + result += simpleEscapeMap[escaped]; + position++; + } else { + let hexLength = escapedHexLen$1(escaped); + let hexResult = 0; + for (; hexLength > 0; hexLength--) { + position++; + const digit = fromHexCode$1(input.charCodeAt(position)); + hexResult = (hexResult << 4) + digit; + } + result += charFromCodepoint(hexResult); + position++; + } + captureStart = captureEnd = position; + } else if (ch === 10 || ch === 13) { + result += input.slice(captureStart, captureEnd); + const fold = skipFoldedBreaks(input, position, end); + result += foldedBreaks(fold.breaks); + position = captureStart = captureEnd = fold.position; + } else { + position++; + if (ch !== 32 && ch !== 9) captureEnd = position; + } + } + return result + input.slice(captureStart, end); + } + __name(getDoubleQuotedValue, "getDoubleQuotedValue"); + function getBlockValue(input, start, end, indent, chomping, folded) { + const textIndent = indent < 0 ? 0 : indent; + const region = input.slice(start, end).replace(/\r\n?/g, "\n"); + const lines = region === "" ? [] : (region.endsWith("\n") ? region.slice(0, -1) : region).split("\n"); + let result = ""; + let didReadContent = false; + let emptyLines = 0; + let atMoreIndented = false; + for (const line of lines) { + let column = 0; + while (column < textIndent && line.charCodeAt(column) === 32) column++; + if (indent < 0 || column >= line.length) { + emptyLines++; + continue; + } + const content = line.slice(textIndent); + const first = content.charCodeAt(0); + if (folded) if (first === 32 || first === 9) { + atMoreIndented = true; + result += "\n".repeat(didReadContent ? 1 + emptyLines : emptyLines); + } else if (atMoreIndented) { + atMoreIndented = false; + result += "\n".repeat(emptyLines + 1); + } else if (emptyLines === 0) { + if (didReadContent) result += " "; + } else result += "\n".repeat(emptyLines); + else result += "\n".repeat(didReadContent ? 1 + emptyLines : emptyLines); + result += content; + didReadContent = true; + emptyLines = 0; + } + if (chomping === 3) result += "\n".repeat(didReadContent ? 1 + emptyLines : emptyLines); + else if (chomping !== 2) { + if (didReadContent) result += "\n"; + } + return result; + } + __name(getBlockValue, "getBlockValue"); + function getScalarValue(input, scalar) { + if (scalar.valueStart === NO_RANGE$3) return ""; + const { valueStart, valueEnd } = scalar; + if (scalar.fast) return input.slice(valueStart, valueEnd); + switch (scalar.style) { + case 2: + return getSingleQuotedValue(input, valueStart, valueEnd); + case 3: + return getDoubleQuotedValue(input, valueStart, valueEnd); + case 4: + return getBlockValue(input, valueStart, valueEnd, scalar.indent, scalar.chomping, false); + case 5: + return getBlockValue(input, valueStart, valueEnd, scalar.indent, scalar.chomping, true); + default: + return getPlainValue(input, valueStart, valueEnd); + } + } + __name(getScalarValue, "getScalarValue"); + var DEFAULT_TAG_HANDLERS = { + "!": "!", + "!!": "tag:yaml.org,2002:" + }; + function tagPercentEncode(source) { + return encodeURI(source).replace(/!/g, "%21"); + } + __name(tagPercentEncode, "tagPercentEncode"); + function tagNameFull(rawTag2, tagHandlers) { + var _ref, _tagHandlers$handle; + if (rawTag2.startsWith("!<") && rawTag2.endsWith(">")) return decodeURIComponent(rawTag2.slice(2, -1)); + const handleEnd = rawTag2.indexOf("!", 1); + const handle = handleEnd === -1 ? "!" : rawTag2.slice(0, handleEnd + 1); + const prefix = (_ref = (_tagHandlers$handle = tagHandlers === null || tagHandlers === void 0 ? void 0 : tagHandlers[handle]) !== null && _tagHandlers$handle !== void 0 ? _tagHandlers$handle : DEFAULT_TAG_HANDLERS[handle]) !== null && _ref !== void 0 ? _ref : handle; + return decodeURIComponent(prefix) + decodeURIComponent(rawTag2.slice(handle.length)); + } + __name(tagNameFull, "tagNameFull"); + function tagNameShort(fullTag) { + let tag = fullTag; + if (tag.charCodeAt(0) === 33) { + tag = tag.slice(1); + return `!${tagPercentEncode(tag)}`; + } + if (tag.slice(0, 18) === "tag:yaml.org,2002:") return `!!${tagPercentEncode(tag.slice(18))}`; + return `!<${tagPercentEncode(tag)}>`; + } + __name(tagNameShort, "tagNameShort"); + var NO_RANGE$2 = -1; + var DEFAULT_CONSTRUCTOR_OPTIONS = { + filename: "", + schema: CORE_SCHEMA, + json: false, + maxTotalMergeKeys: 1e4, + maxAliases: -1 + }; + function eventPosition$1(event) { + if ("tagStart" in event && event.tagStart !== NO_RANGE$2) return event.tagStart; + if ("anchorStart" in event && event.anchorStart !== NO_RANGE$2) return event.anchorStart; + if ("valueStart" in event && event.valueStart !== NO_RANGE$2) return event.valueStart; + if ("start" in event) return event.start; + return 0; + } + __name(eventPosition$1, "eventPosition$1"); + function throwError$1(state, message) { + throwErrorAt(state.source, state.position, message, state.filename); + } + __name(throwError$1, "throwError$1"); + function finalizeCollection(state, position, tag, carrier) { + try { + return tag.finalize(carrier); + } catch (error) { + if (error instanceof YAMLException) throw error; + throwErrorAt(state.source, position, error instanceof Error ? error.message : String(error), state.filename); + } + } + __name(finalizeCollection, "finalizeCollection"); + function lookupTag(exact, prefix, tagName) { + const exactTag = exact[tagName]; + if (exactTag) return exactTag; + for (const tag of prefix) if (tagName.startsWith(tag.tagName)) return tag; + } + __name(lookupTag, "lookupTag"); + function findExplicitTag(state, exact, prefix, tagName, nodeKind) { + const tag = lookupTag(exact, prefix, tagName); + if (tag) return tag; + throwError$1(state, `unknown ${nodeKind} tag !<${tagName}>`); + } + __name(findExplicitTag, "findExplicitTag"); + function constructScalar(state, event) { + const source = getScalarValue(state.source, event); + const rawTag2 = event.tagStart === NO_RANGE$2 ? "" : state.source.slice(event.tagStart, event.tagEnd); + const strTag2 = state.schema.defaultScalarTag; + if (rawTag2 !== "") { + var _lookupTag; + if (rawTag2 === "!") return { + value: source, + tag: strTag2 + }; + const tagName = tagNameFull(rawTag2, state.tagHandlers); + const scalarTag = lookupTag(state.schema.exact.scalar, state.schema.prefix.scalar, tagName); + if (scalarTag) { + const result = scalarTag.resolve(source, true, tagName); + if (result === NOT_RESOLVED) throwError$1(state, `cannot resolve a node with !<${tagName}> explicit tag`); + return { + value: result, + tag: scalarTag + }; + } + const collectionTagDef = (_lookupTag = lookupTag(state.schema.exact.mapping, state.schema.prefix.mapping, tagName)) !== null && _lookupTag !== void 0 ? _lookupTag : lookupTag(state.schema.exact.sequence, state.schema.prefix.sequence, tagName); + if (collectionTagDef) { + if (source !== "") throwError$1(state, `cannot resolve a node with !<${tagName}> explicit tag`); + const carrier = collectionTagDef.create(tagName); + return { + value: collectionTagDef.carrierIsResult ? carrier : finalizeCollection(state, state.position, collectionTagDef, carrier), + tag: collectionTagDef + }; + } + throwError$1(state, `unknown scalar tag !<${tagName}>`); + } + if (event.style === 1) { + var _state$schema$implici; + const candidates = (_state$schema$implici = state.schema.implicitScalarByFirstChar.get(source.charAt(0))) !== null && _state$schema$implici !== void 0 ? _state$schema$implici : state.schema.implicitScalarAnyFirstChar; + for (const tag of candidates) { + const result = tag.resolve(source, false, tag.tagName); + if (result !== NOT_RESOLVED) return { + value: result, + tag + }; + } + } + return { + value: strTag2.resolve(source, false, strTag2.tagName), + tag: strTag2 + }; + } + __name(constructScalar, "constructScalar"); + function collectionTag(state, event, exact, prefix, defaultTagName, nodeKind) { + const rawTag2 = event.tagStart === NO_RANGE$2 ? "" : state.source.slice(event.tagStart, event.tagEnd); + const tagName = rawTag2 === "" || rawTag2 === "!" ? defaultTagName : tagNameFull(rawTag2, state.tagHandlers); + return { + tagName, + tag: findExplicitTag(state, exact, prefix, tagName, nodeKind) + }; + } + __name(collectionTag, "collectionTag"); + function isMappingTag(tag) { + return tag.nodeKind === "mapping"; + } + __name(isMappingTag, "isMappingTag"); + function mergeKeys(state, frame, source, sourceTag) { + for (const sourceKey of sourceTag.keys(source)) { + var _frame$overridable; + if (state.maxTotalMergeKeys !== -1 && ++state.totalMergeKeys > state.maxTotalMergeKeys) throwError$1(state, `merge keys exceeded maxTotalMergeKeys (${state.maxTotalMergeKeys})`); + if (frame.tag.has(frame.value, sourceKey)) continue; + const err = frame.tag.addPair(frame.value, sourceKey, sourceTag.get(source, sourceKey)); + if (err) throwError$1(state, err); + ((_frame$overridable = frame.overridable) !== null && _frame$overridable !== void 0 ? _frame$overridable : frame.overridable = /* @__PURE__ */ new Set()).add(sourceKey); + } + } + __name(mergeKeys, "mergeKeys"); + function mergeSource(state, frame, source, sourceTag) { + state.position = frame.keyPosition; + if (isMappingTag(sourceTag)) mergeKeys(state, frame, source, sourceTag); + else if (sourceTag.nodeKind === "sequence" && Array.isArray(source)) for (const element of source) mergeKeys(state, frame, element, frame.tag); + else throwError$1(state, "cannot merge mappings; the provided source object is unacceptable"); + } + __name(mergeSource, "mergeSource"); + function addMappingValue(state, frame, key, value, tag) { + var _frame$overridable2, _frame$overridable3; + state.position = frame.keyPosition; + if (key === MERGE_KEY) { + mergeSource(state, frame, value, tag); + return; + } + if (!state.json && frame.tag.has(frame.value, key) && !((_frame$overridable2 = frame.overridable) === null || _frame$overridable2 === void 0 ? void 0 : _frame$overridable2.has(key))) throwError$1(state, "duplicated mapping key"); + const err = frame.tag.addPair(frame.value, key, value); + if (err) throwError$1(state, err); + (_frame$overridable3 = frame.overridable) === null || _frame$overridable3 === void 0 || _frame$overridable3.delete(key); + } + __name(addMappingValue, "addMappingValue"); + function addValue(state, value, tag) { + const frame = state.frames[state.frames.length - 1]; + if (frame.kind === "document") { + frame.value = value; + frame.hasValue = true; + } else if (frame.kind === "sequence") { + if (frame.merge) { + if (!isMappingTag(tag)) throwError$1(state, "cannot merge mappings; the provided source object is unacceptable"); + } + const err = frame.tag.addItem(frame.value, value, frame.index++); + if (err) throwError$1(state, err); + } else if (frame.hasKey) { + const key = frame.key; + frame.key = void 0; + frame.hasKey = false; + addMappingValue(state, frame, key, value, tag); + } else { + frame.key = value; + frame.keyPosition = state.position; + frame.hasKey = true; + } + } + __name(addValue, "addValue"); + function storeAnchor(state, event, value, tag, isValueFinal) { + if (event.anchorStart !== NO_RANGE$2) { + const anchor = { + value, + tag, + isValueFinal + }; + state.anchors.set(state.source.slice(event.anchorStart, event.anchorEnd), anchor); + return anchor; + } + return null; + } + __name(storeAnchor, "storeAnchor"); + function constructFromEvents(events, options) { + const state = _objectSpread2(_objectSpread2(_objectSpread2({}, DEFAULT_CONSTRUCTOR_OPTIONS), options), {}, { + events, + documents: [], + eventIndex: 0, + position: 0, + frames: [], + anchors: /* @__PURE__ */ new Map(), + tagHandlers: /* @__PURE__ */ Object.create(null), + totalMergeKeys: 0, + aliasCount: 0 + }); + while (state.eventIndex < state.events.length) { + const event = state.events[state.eventIndex++]; + state.position = eventPosition$1(event); + switch (event.type) { + case 1: + state.anchors = /* @__PURE__ */ new Map(); + state.aliasCount = 0; + state.tagHandlers = /* @__PURE__ */ Object.create(null); + for (const directive of event.directives) if (directive.kind === "tag") state.tagHandlers[directive.handle] = directive.prefix; + state.frames.push({ + kind: "document", + position: state.position, + value: void 0, + hasValue: false + }); + break; + case 4: { + const { value, tag } = constructScalar(state, event); + storeAnchor(state, event, value, tag, true); + addValue(state, value, tag); + break; + } + case 2: { + const definition = collectionTag(state, event, state.schema.exact.sequence, state.schema.prefix.sequence, "tag:yaml.org,2002:seq", "sequence"); + const value = definition.tag.create(definition.tagName); + const anchor = storeAnchor(state, event, value, definition.tag, definition.tag.carrierIsResult); + const parent = state.frames[state.frames.length - 1]; + const merge = parent !== void 0 && parent.kind === "mapping" && parent.hasKey && parent.key === MERGE_KEY; + state.frames.push({ + kind: "sequence", + position: state.position, + value, + tag: definition.tag, + anchor, + index: 0, + merge + }); + break; + } + case 3: { + const definition = collectionTag(state, event, state.schema.exact.mapping, state.schema.prefix.mapping, "tag:yaml.org,2002:map", "mapping"); + const value = definition.tag.create(definition.tagName); + const anchor = storeAnchor(state, event, value, definition.tag, definition.tag.carrierIsResult); + state.frames.push({ + kind: "mapping", + position: state.position, + value, + tag: definition.tag, + anchor, + key: void 0, + keyPosition: state.position, + hasKey: false, + overridable: null + }); + break; + } + case 5: { + if (state.maxAliases !== -1 && ++state.aliasCount > state.maxAliases) throwError$1(state, `aliases exceeded maxAliases (${state.maxAliases})`); + const name = state.source.slice(event.anchorStart, event.anchorEnd); + const anchor = state.anchors.get(name); + if (!anchor) throwError$1(state, `unidentified alias "${name}"`); + if (!anchor.isValueFinal) throwError$1(state, `recursive alias "${name}" is not supported for tag ${anchor.tag.tagName} because it uses finalize()`); + addValue(state, anchor.value, anchor.tag); + break; + } + case 6: { + const frame = state.frames.pop(); + if (frame.kind === "document") state.documents.push(frame.value); + else { + const value = frame.tag.carrierIsResult ? frame.value : finalizeCollection(state, frame.position, frame.tag, frame.value); + if (frame.anchor) { + frame.anchor.value = value; + frame.anchor.isValueFinal = true; + } + addValue(state, value, frame.tag); + } + break; + } + } + } + return state.documents; + } + __name(constructFromEvents, "constructFromEvents"); + var NO_RANGE$1 = -1; + var HAS_OWN = Object.prototype.hasOwnProperty; + var CONTEXT_FLOW_IN = 1; + var CONTEXT_FLOW_OUT = 2; + var CONTEXT_BLOCK_IN = 3; + var CONTEXT_BLOCK_OUT = 4; + var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; + var PATTERN_FLOW_INDICATORS = /[,\[\]{}]/; + var PATTERN_TAG_HANDLE = /^(?:!|!!|![0-9A-Za-z-]+!)$/; + var NS_URI_CHAR = String.raw`(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\-#;/?:@&=+$,_.!~*'()\[\]])`; + var NS_TAG_CHAR = String.raw`(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\-#;/?:@&=+$.~*'()_])`; + var PATTERN_TAG_URI = new RegExp(`^(?:${NS_URI_CHAR})*$`); + var PATTERN_TAG_SUFFIX = new RegExp(`^(?:${NS_TAG_CHAR})+$`); + var PATTERN_TAG_PREFIX = new RegExp(`^(?:!(?:${NS_URI_CHAR})*|${NS_TAG_CHAR}(?:${NS_URI_CHAR})*)$`); + var DEFAULT_PARSER_OPTIONS = { + filename: "", + maxDepth: 100 + }; + function addDocumentEvent(state, explicitStart, explicitEnd) { + state.events.push({ + type: 1, + explicitStart, + explicitEnd, + directives: state.directives + }); + } + __name(addDocumentEvent, "addDocumentEvent"); + function addSequenceEvent(state, start, anchorStart, anchorEnd, tagStart, tagEnd, style) { + state.events.push({ + type: 2, + start, + anchorStart, + anchorEnd, + tagStart, + tagEnd, + style + }); + } + __name(addSequenceEvent, "addSequenceEvent"); + function addMappingEvent(state, start, anchorStart, anchorEnd, tagStart, tagEnd, style) { + state.events.push({ + type: 3, + start, + anchorStart, + anchorEnd, + tagStart, + tagEnd, + style + }); + } + __name(addMappingEvent, "addMappingEvent"); + function addScalarEvent(state, valueStart, valueEnd, anchorStart, anchorEnd, tagStart, tagEnd, style, chomping = 1, indent = -1, fast = false) { + state.events.push({ + type: 4, + valueStart, + valueEnd, + anchorStart, + anchorEnd, + tagStart, + tagEnd, + style, + chomping, + indent, + fast + }); + } + __name(addScalarEvent, "addScalarEvent"); + function addAliasEvent(state, anchorStart, anchorEnd) { + state.events.push({ + type: 5, + anchorStart, + anchorEnd + }); + } + __name(addAliasEvent, "addAliasEvent"); + function addPopEvent(state) { + state.events.push({ type: 6 }); + } + __name(addPopEvent, "addPopEvent"); + function addEmptyScalarEvent(state) { + addScalarEvent(state, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, 1); + } + __name(addEmptyScalarEvent, "addEmptyScalarEvent"); + function emptyProperties() { + return { + anchorStart: NO_RANGE$1, + anchorEnd: NO_RANGE$1, + tagStart: NO_RANGE$1, + tagEnd: NO_RANGE$1 + }; + } + __name(emptyProperties, "emptyProperties"); + function snapshotState(state) { + return { + position: state.position, + line: state.line, + lineStart: state.lineStart, + lineIndent: state.lineIndent, + firstTabInLine: state.firstTabInLine, + eventsLength: state.events.length + }; + } + __name(snapshotState, "snapshotState"); + function restoreState(state, snapshot) { + state.position = snapshot.position; + state.line = snapshot.line; + state.lineStart = snapshot.lineStart; + state.lineIndent = snapshot.lineIndent; + state.firstTabInLine = snapshot.firstTabInLine; + state.events.length = snapshot.eventsLength; + } + __name(restoreState, "restoreState"); + function throwError(state, message) { + throwErrorAt(state.input.slice(0, state.length), state.position, message, state.filename); + } + __name(throwError, "throwError"); + function isEol(c) { + return c === 10 || c === 13; + } + __name(isEol, "isEol"); + function isWhiteSpace(c) { + return c === 9 || c === 32; + } + __name(isWhiteSpace, "isWhiteSpace"); + function isWsOrEol(c) { + return isWhiteSpace(c) || isEol(c); + } + __name(isWsOrEol, "isWsOrEol"); + function isWsOrEolOrEnd(c) { + return c === 0 || isWsOrEol(c); + } + __name(isWsOrEolOrEnd, "isWsOrEolOrEnd"); + function isFlowIndicator(c) { + return c === 44 || c === 91 || c === 93 || c === 123 || c === 125; + } + __name(isFlowIndicator, "isFlowIndicator"); + function fromDecimalCode(c) { + return c >= 48 && c <= 57 ? c - 48 : -1; + } + __name(fromDecimalCode, "fromDecimalCode"); + function fromHexCode(c) { + if (c >= 48 && c <= 57) return c - 48; + const lc = c | 32; + if (lc >= 97 && lc <= 102) return lc - 97 + 10; + return -1; + } + __name(fromHexCode, "fromHexCode"); + function escapedHexLen(c) { + if (c === 120) return 2; + if (c === 117) return 4; + if (c === 85) return 8; + return 0; + } + __name(escapedHexLen, "escapedHexLen"); + function isSimpleEscape(c) { + return c === 48 || c === 97 || c === 98 || c === 116 || c === 9 || c === 110 || c === 118 || c === 102 || c === 114 || c === 101 || c === 32 || c === 34 || c === 47 || c === 92 || c === 78 || c === 95 || c === 76 || c === 80; + } + __name(isSimpleEscape, "isSimpleEscape"); + function consumeLineBreak(state) { + if (state.input.charCodeAt(state.position) === 10) state.position++; + else { + state.position++; + if (state.input.charCodeAt(state.position) === 10) state.position++; + } + state.line++; + state.lineStart = state.position; + state.lineIndent = 0; + state.firstTabInLine = -1; + } + __name(consumeLineBreak, "consumeLineBreak"); + function skipSeparationSpace(state, allowComments) { + let lineBreaks = 0; + let ch = state.input.charCodeAt(state.position); + let hasSeparation = state.position === state.lineStart || isWsOrEol(state.input.charCodeAt(state.position - 1)); + while (ch !== 0) { + while (isWhiteSpace(ch)) { + hasSeparation = true; + if (ch === 9 && state.firstTabInLine === -1) state.firstTabInLine = state.position; + ch = state.input.charCodeAt(++state.position); + } + if (allowComments && hasSeparation && ch === 35) do + ch = state.input.charCodeAt(++state.position); + while (!isEol(ch) && ch !== 0); + if (!isEol(ch)) break; + consumeLineBreak(state); + lineBreaks++; + hasSeparation = true; + ch = state.input.charCodeAt(state.position); + while (ch === 32) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } + return lineBreaks; + } + __name(skipSeparationSpace, "skipSeparationSpace"); + function testDocumentSeparator(state, position = state.position) { + const ch = state.input.charCodeAt(position); + if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(position + 1) && ch === state.input.charCodeAt(position + 2)) { + const following = state.input.charCodeAt(position + 3); + return following === 0 || isWsOrEol(following); + } + return false; + } + __name(testDocumentSeparator, "testDocumentSeparator"); + function skipUntilLineEnd(state) { + let ch = state.input.charCodeAt(state.position); + while (ch !== 0 && !isEol(ch)) ch = state.input.charCodeAt(++state.position); + } + __name(skipUntilLineEnd, "skipUntilLineEnd"); + function checkPrintable(state, start, end) { + if (PATTERN_NON_PRINTABLE.test(state.input.slice(start, end))) throwError(state, "the stream contains non-printable characters"); + } + __name(checkPrintable, "checkPrintable"); + function readTagProperty(state, props, inFlow) { + if (state.input.charCodeAt(state.position) !== 33) return false; + if (props.tagStart !== NO_RANGE$1) throwError(state, "duplication of a tag property"); + const start = state.position; + let isVerbatim = false; + let isNamed = false; + let tagHandle = "!"; + let ch = state.input.charCodeAt(++state.position); + if (ch === 60) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + } else if (ch === 33) { + isNamed = true; + tagHandle = "!!"; + ch = state.input.charCodeAt(++state.position); + } + let suffixStart = state.position; + let tagName; + if (isVerbatim) { + while (ch !== 0 && ch !== 62) ch = state.input.charCodeAt(++state.position); + if (ch !== 62) throwError(state, "unexpected end of the stream within a verbatim tag"); + tagName = state.input.slice(suffixStart, state.position); + state.position++; + } else { + while (ch !== 0 && !isWsOrEol(ch) && !(inFlow && isFlowIndicator(ch))) { + if (ch === 33) if (!isNamed) { + tagHandle = state.input.slice(suffixStart - 1, state.position + 1); + if (!PATTERN_TAG_HANDLE.test(tagHandle)) throwError(state, "named tag handle cannot contain such characters"); + isNamed = true; + suffixStart = state.position + 1; + } else throwError(state, "tag suffix cannot contain exclamation marks"); + ch = state.input.charCodeAt(++state.position); + } + tagName = state.input.slice(suffixStart, state.position); + if (PATTERN_FLOW_INDICATORS.test(tagName)) throwError(state, "tag suffix cannot contain flow indicator characters"); + } + if (tagName && !(isVerbatim ? PATTERN_TAG_URI.test(tagName) : PATTERN_TAG_SUFFIX.test(tagName))) throwError(state, `tag name cannot contain such characters: ${tagName}`); + if (!isVerbatim && tagHandle !== "!" && tagHandle !== "!!" && !HAS_OWN.call(state.tagHandlers, tagHandle)) throwError(state, `undeclared tag handle "${tagHandle}"`); + props.tagStart = start; + props.tagEnd = state.position; + return true; + } + __name(readTagProperty, "readTagProperty"); + function readAnchorProperty(state, props) { + if (state.input.charCodeAt(state.position) !== 38) return false; + if (props.anchorStart !== NO_RANGE$1) throwError(state, "duplication of an anchor property"); + state.position++; + const start = state.position; + while (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position)) && !isFlowIndicator(state.input.charCodeAt(state.position))) state.position++; + if (state.position === start) throwError(state, "name of an anchor node must contain at least one character"); + props.anchorStart = start; + props.anchorEnd = state.position; + return true; + } + __name(readAnchorProperty, "readAnchorProperty"); + function readAlias(state, props) { + if (state.input.charCodeAt(state.position) !== 42) return false; + if (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1) throwError(state, "alias node should not have any properties"); + state.position++; + const start = state.position; + while (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position)) && !isFlowIndicator(state.input.charCodeAt(state.position))) state.position++; + if (state.position === start) throwError(state, "name of an alias node must contain at least one character"); + addAliasEvent(state, start, state.position); + return true; + } + __name(readAlias, "readAlias"); + function readFlowScalarBreak(state, nodeIndent) { + skipSeparationSpace(state, false); + if (state.lineIndent < nodeIndent) throwError(state, "deficient indentation"); + } + __name(readFlowScalarBreak, "readFlowScalarBreak"); + function readSingleQuotedScalar(state, nodeIndent, props) { + if (state.input.charCodeAt(state.position) !== 39) return false; + state.position++; + const start = state.position; + let simple = true; + while (state.input.charCodeAt(state.position) !== 0) { + const ch = state.input.charCodeAt(state.position); + if (ch === 39) { + if (state.input.charCodeAt(state.position + 1) === 39) { + simple = false; + state.position += 2; + continue; + } + const end = state.position; + state.position++; + addScalarEvent(state, start, end, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, 2, 1, -1, simple); + return true; + } + if (isEol(ch)) { + simple = false; + readFlowScalarBreak(state, nodeIndent); + } else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, "unexpected end of the document within a single quoted scalar"); + else if (ch !== 9 && ch < 32) throwError(state, "expected valid JSON character"); + else state.position++; + } + throwError(state, "unexpected end of the stream within a single quoted scalar"); + } + __name(readSingleQuotedScalar, "readSingleQuotedScalar"); + function readDoubleQuotedScalar(state, nodeIndent, props) { + if (state.input.charCodeAt(state.position) !== 34) return false; + state.position++; + const start = state.position; + let simple = true; + while (state.input.charCodeAt(state.position) !== 0) { + const ch = state.input.charCodeAt(state.position); + if (ch === 34) { + const end = state.position; + state.position++; + addScalarEvent(state, start, end, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, 3, 1, -1, simple); + return true; + } + if (ch === 92) { + simple = false; + const escaped = state.input.charCodeAt(++state.position); + if (isEol(escaped)) readFlowScalarBreak(state, nodeIndent); + else if (isSimpleEscape(escaped)) state.position++; + else { + let hexLength = escapedHexLen(escaped); + if (hexLength === 0) throwError(state, "unknown escape sequence"); + while (hexLength-- > 0) { + state.position++; + if (fromHexCode(state.input.charCodeAt(state.position)) < 0) throwError(state, "expected hexadecimal character"); + } + state.position++; + } + } else if (isEol(ch)) { + simple = false; + readFlowScalarBreak(state, nodeIndent); + } else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, "unexpected end of the document within a double quoted scalar"); + else if (ch !== 9 && ch < 32) throwError(state, "expected valid JSON character"); + else state.position++; + } + throwError(state, "unexpected end of the stream within a double quoted scalar"); + } + __name(readDoubleQuotedScalar, "readDoubleQuotedScalar"); + function readBlockScalar(state, parentIndent, props) { + const ch = state.input.charCodeAt(state.position); + let chomping = 1; + let indent = -1; + let detectedIndent = false; + if (ch !== 124 && ch !== 62) return false; + const style = ch === 124 ? 4 : 5; + state.position++; + while (state.input.charCodeAt(state.position) !== 0) { + const current = state.input.charCodeAt(state.position); + const digit = fromDecimalCode(current); + if (current === 43 || current === 45) { + if (chomping !== 1) throwError(state, "repeat of a chomping mode identifier"); + chomping = current === 43 ? 3 : 2; + state.position++; + } else if (digit >= 0) { + if (digit === 0) throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one"); + if (detectedIndent) throwError(state, "repeat of an indentation width identifier"); + indent = parentIndent + digit - 1; + detectedIndent = true; + state.position++; + } else break; + } + let hadWhitespace = false; + while (isWhiteSpace(state.input.charCodeAt(state.position))) { + hadWhitespace = true; + state.position++; + } + if (hadWhitespace && state.input.charCodeAt(state.position) === 35) skipUntilLineEnd(state); + if (isEol(state.input.charCodeAt(state.position))) consumeLineBreak(state); + else if (state.input.charCodeAt(state.position) !== 0) throwError(state, "a line break is expected"); + let contentIndent = detectedIndent ? indent : -1; + let maxLeadingIndent = 0; + const valueStart = state.position; + let valueEnd = state.position; + while (state.input.charCodeAt(state.position) !== 0) { + const linePosition = state.position; + let column = 0; + while (state.input.charCodeAt(linePosition + column) === 32) column++; + const first = state.input.charCodeAt(linePosition + column); + if (first === 0) { + if (contentIndent >= 0) { + if (column > contentIndent) valueEnd = linePosition + column; + } else if (column > 0) valueEnd = linePosition + column; + break; + } + if (linePosition === state.lineStart && testDocumentSeparator(state, linePosition)) break; + if (!detectedIndent && contentIndent === -1 && isEol(first)) maxLeadingIndent = Math.max(maxLeadingIndent, column); + if (!detectedIndent && contentIndent === -1 && !isEol(first)) { + if (first === 9 && column < parentIndent) { + state.position = linePosition + column; + throwError(state, "tab characters must not be used in indentation"); + } + if (column < maxLeadingIndent) { + state.position = linePosition + column; + throwError(state, "bad indentation of a mapping entry"); + } + } + if (contentIndent === -1 && first !== 0 && !isEol(first) && column < parentIndent) { + state.lineIndent = column; + state.position = linePosition + column; + break; + } + if (!detectedIndent && first !== 0 && !isEol(first) && contentIndent === -1) contentIndent = column; + const requiredIndent = contentIndent === -1 ? parentIndent + 1 : contentIndent; + if (first !== 0 && !isEol(first) && column < requiredIndent) { + state.lineIndent = column; + state.position = linePosition + column; + break; + } + skipUntilLineEnd(state); + valueEnd = state.position; + if (isEol(state.input.charCodeAt(state.position))) { + consumeLineBreak(state); + valueEnd = state.position; + } + } + checkPrintable(state, valueStart, valueEnd); + addScalarEvent(state, valueStart, valueEnd, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, style, chomping, contentIndent); + return true; + } + __name(readBlockScalar, "readBlockScalar"); + function canStartPlainScalar(state, nodeContext) { + const ch = state.input.charCodeAt(state.position); + const inFlow = nodeContext === CONTEXT_FLOW_IN; + if (ch === 0 || isWsOrEol(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96 || inFlow && isFlowIndicator(ch)) return false; + if (ch === 63 || ch === 45) { + const following = state.input.charCodeAt(state.position + 1); + if (isWsOrEolOrEnd(following) || inFlow && isFlowIndicator(following)) return false; + } + return true; + } + __name(canStartPlainScalar, "canStartPlainScalar"); + function readPlainScalar(state, nodeIndent, nodeContext, props) { + if (!canStartPlainScalar(state, nodeContext)) return false; + const start = state.position; + let end = state.position; + let ch = state.input.charCodeAt(state.position); + const inFlow = nodeContext === CONTEXT_FLOW_IN; + let multiline = false; + while (ch !== 0) { + if (state.position === state.lineStart && testDocumentSeparator(state)) break; + if (ch === 58) { + const following = state.input.charCodeAt(state.position + 1); + if (isWsOrEolOrEnd(following) || inFlow && isFlowIndicator(following)) break; + } else if (ch === 35) { + if (isWsOrEol(state.input.charCodeAt(state.position - 1))) break; + } else if (inFlow && isFlowIndicator(ch)) break; + else if (isEol(ch)) { + const savedPosition = state.position; + const savedLine = state.line; + const savedLineStart = state.lineStart; + const savedLineIndent = state.lineIndent; + skipSeparationSpace(state, false); + if (state.lineIndent >= nodeIndent) { + multiline = true; + ch = state.input.charCodeAt(state.position); + continue; + } + state.position = savedPosition; + state.line = savedLine; + state.lineStart = savedLineStart; + state.lineIndent = savedLineIndent; + break; + } + if (!isWhiteSpace(ch)) end = state.position + 1; + ch = state.input.charCodeAt(++state.position); + } + if (end === start) return false; + checkPrintable(state, start, end); + addScalarEvent(state, start, end, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, 1, 1, -1, !multiline); + return true; + } + __name(readPlainScalar, "readPlainScalar"); + function skipFlowSeparationSpace(state, nodeIndent) { + const startLine = state.line; + skipSeparationSpace(state, true); + if (state.line > startLine && state.lineIndent < nodeIndent || state.firstTabInLine !== -1 && state.lineIndent < nodeIndent) throwError(state, "deficient indentation"); + } + __name(skipFlowSeparationSpace, "skipFlowSeparationSpace"); + function readFlowCollection(state, nodeIndent, props) { + const ch = state.input.charCodeAt(state.position); + const isMapping = ch === 123; + const start = state.position; + let readNext = true; + if (ch !== 91 && ch !== 123) return false; + const terminator = isMapping ? 125 : 93; + if (isMapping) addMappingEvent(state, start, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, 2); + else addSequenceEvent(state, start, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, 2); + state.position++; + while (state.input.charCodeAt(state.position) !== 0) { + skipFlowSeparationSpace(state, nodeIndent); + let ch2 = state.input.charCodeAt(state.position); + if (ch2 === terminator) { + state.position++; + addPopEvent(state); + return true; + } else if (!readNext) throwError(state, "missed comma between flow collection entries"); + else if (ch2 === 44) throwError(state, "expected the node content, but found ','"); + let isPair = false; + let isExplicitPair = false; + if (ch2 === 63 && isWsOrEol(state.input.charCodeAt(state.position + 1))) { + isPair = isExplicitPair = true; + state.position += 1; + skipFlowSeparationSpace(state, nodeIndent); + } + const entryLine = state.line; + const entryStart = snapshotState(state); + const keyWasRead = parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + skipFlowSeparationSpace(state, nodeIndent); + ch2 = state.input.charCodeAt(state.position); + if ((isMapping || isExplicitPair || state.line === entryLine) && ch2 === 58) { + isPair = true; + state.position++; + skipFlowSeparationSpace(state, nodeIndent); + if (!isMapping) { + restoreState(state, entryStart); + addMappingEvent(state, entryStart.position, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, 2); + if (!parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true)) addEmptyScalarEvent(state); + skipFlowSeparationSpace(state, nodeIndent); + state.position++; + skipFlowSeparationSpace(state, nodeIndent); + } else if (!keyWasRead) addEmptyScalarEvent(state); + if (!parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true)) addEmptyScalarEvent(state); + skipFlowSeparationSpace(state, nodeIndent); + if (!isMapping) addPopEvent(state); + } else if (isMapping && isPair) { + if (!keyWasRead) addEmptyScalarEvent(state); + addEmptyScalarEvent(state); + } else if (isMapping) addEmptyScalarEvent(state); + else if (isPair) { + restoreState(state, entryStart); + addMappingEvent(state, entryStart.position, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, 2); + parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + addEmptyScalarEvent(state); + addPopEvent(state); + } + ch2 = state.input.charCodeAt(state.position); + if (ch2 === 44) { + readNext = true; + state.position++; + } else readNext = false; + } + throwError(state, "unexpected end of the stream within a flow collection"); + } + __name(readFlowCollection, "readFlowCollection"); + function readBlockSequence(state, nodeIndent, props) { + if (state.firstTabInLine !== -1 || state.input.charCodeAt(state.position) !== 45 || !isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) return false; + addSequenceEvent(state, state.position, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, 1); + while (state.input.charCodeAt(state.position) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, "tab characters must not be used in indentation"); + } + const entryLine = state.line; + state.position++; + const hadBreak = skipSeparationSpace(state, true) > 0; + if (state.firstTabInLine !== -1 && state.input.charCodeAt(state.position) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) throwError(state, "bad indentation of a sequence entry"); + if (hadBreak && state.lineIndent <= nodeIndent) addEmptyScalarEvent(state); + else parseNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + skipSeparationSpace(state, true); + if (state.lineIndent < nodeIndent || state.position >= state.length) break; + if (state.lineIndent > nodeIndent) throwError(state, "bad indentation of a sequence entry"); + if (state.line === entryLine && state.input.charCodeAt(state.position) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) throwError(state, "bad indentation of a sequence entry"); + } + addPopEvent(state); + return true; + } + __name(readBlockSequence, "readBlockSequence"); + function readBlockMapping(state, nodeIndent, flowIndent, props) { + let atExplicitKey = false; + let detected = false; + let mappingOpened = false; + let pendingExplicitKey = false; + if (state.firstTabInLine !== -1) return false; + let ch = state.input.charCodeAt(state.position); + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, "tab characters must not be used in indentation"); + } + const following = state.input.charCodeAt(state.position + 1); + const entryLine = state.line; + if ((ch === 63 || ch === 58) && isWsOrEolOrEnd(following)) { + if (!mappingOpened) { + addMappingEvent(state, state.position, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, 1); + mappingOpened = true; + } + if (ch === 63) { + if (atExplicitKey) addEmptyScalarEvent(state); + detected = true; + atExplicitKey = true; + } else if (atExplicitKey) atExplicitKey = false; + else { + addEmptyScalarEvent(state); + detected = true; + atExplicitKey = false; + } + state.position += 1; + pendingExplicitKey = true; + } else { + if (atExplicitKey) { + addEmptyScalarEvent(state); + atExplicitKey = false; + } + const beforeKey = snapshotState(state); + if (!parseNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) break; + if (state.line === entryLine) { + ch = state.input.charCodeAt(state.position); + while (isWhiteSpace(ch)) ch = state.input.charCodeAt(++state.position); + if (ch === 58) { + ch = state.input.charCodeAt(++state.position); + if (!isWsOrEolOrEnd(ch)) throwError(state, "a whitespace character is expected after the key-value separator within a block mapping"); + if (!mappingOpened) { + restoreState(state, beforeKey); + addMappingEvent(state, beforeKey.position, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, 1); + mappingOpened = true; + parseNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true); + ch = state.input.charCodeAt(state.position); + while (isWhiteSpace(ch)) ch = state.input.charCodeAt(++state.position); + state.position++; + } + detected = true; + atExplicitKey = false; + pendingExplicitKey = false; + } else if (detected) throwError(state, "expected ':' after a mapping key"); + else { + if (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1) { + restoreState(state, beforeKey); + return false; + } + return true; + } + } else if (detected) throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key"); + else { + if (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1) { + restoreState(state, beforeKey); + return false; + } + return true; + } + } + if (parseNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, pendingExplicitKey)) pendingExplicitKey = false; + if (!atExplicitKey) { + if (pendingExplicitKey) { + addEmptyScalarEvent(state); + pendingExplicitKey = false; + } + } + skipSeparationSpace(state, true); + ch = state.input.charCodeAt(state.position); + if ((state.line === entryLine || state.lineIndent > nodeIndent) && ch !== 0) throwError(state, "bad indentation of a mapping entry"); + else if (state.lineIndent < nodeIndent) break; + } + if (!detected) return false; + if (atExplicitKey) addEmptyScalarEvent(state); + if (mappingOpened) addPopEvent(state); + return true; + } + __name(readBlockMapping, "readBlockMapping"); + function parseNode(state, parentIndent, nodeContext, allowToSeek, allowCompact, allowPropertyMapping = true) { + if (state.depth >= state.maxDepth) throwError(state, `nesting exceeded maxDepth (${state.maxDepth})`); + state.depth++; + let indentStatus = 1; + let atNewLine = false; + let hasContent = false; + let propertyStart = null; + const props = emptyProperties(); + let allowBlockScalars = nodeContext === CONTEXT_BLOCK_OUT || nodeContext === CONTEXT_BLOCK_IN; + let allowBlockCollections = allowBlockScalars; + const allowBlockStyles = allowBlockScalars; + if (allowToSeek && skipSeparationSpace(state, true)) { + atNewLine = true; + if (state.lineIndent > parentIndent) indentStatus = 1; + else if (state.lineIndent === parentIndent) indentStatus = 0; + else indentStatus = -1; + } + if (state.position === state.lineStart && testDocumentSeparator(state)) { + state.depth--; + return false; + } + if (indentStatus === 1) while (true) { + const ch = state.input.charCodeAt(state.position); + const propertyState = snapshotState(state); + if (atNewLine && indentStatus !== 1 && (ch === 33 || ch === 38)) break; + if (atNewLine && allowBlockStyles && (props.tagStart !== NO_RANGE$1 || props.anchorStart !== NO_RANGE$1) && (ch === 33 || ch === 38)) { + var _state$events$fallbac; + const fallbackState = snapshotState(state); + const flowIndent = parentIndent + 1; + if (readBlockMapping(state, state.position - state.lineStart, flowIndent, props) && ((_state$events$fallbac = state.events[fallbackState.eventsLength]) === null || _state$events$fallbac === void 0 ? void 0 : _state$events$fallbac.type) === 3) { + state.depth--; + return true; + } + restoreState(state, fallbackState); + } + if (atNewLine && (ch === 33 && props.tagStart !== NO_RANGE$1 || ch === 38 && props.anchorStart !== NO_RANGE$1)) break; + if (!readTagProperty(state, props, nodeContext === CONTEXT_FLOW_IN) && !readAnchorProperty(state, props)) break; + if (propertyStart === null) propertyStart = propertyState; + if (skipSeparationSpace(state, true)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + if (state.lineIndent > parentIndent) indentStatus = 1; + else if (state.lineIndent === parentIndent) indentStatus = 0; + else indentStatus = -1; + } else allowBlockCollections = false; + } + if (allowBlockCollections) allowBlockCollections = atNewLine || allowCompact; + if (indentStatus === 1 || nodeContext === CONTEXT_BLOCK_OUT) { + const flowIndent = nodeContext === CONTEXT_FLOW_IN || nodeContext === CONTEXT_FLOW_OUT ? parentIndent : parentIndent + 1; + const blockIndent = state.position - state.lineStart; + if (indentStatus === 1) if (allowBlockCollections && (readBlockSequence(state, blockIndent, props) || readBlockMapping(state, blockIndent, flowIndent, props)) || readFlowCollection(state, flowIndent, props)) hasContent = true; + else { + const ch = state.input.charCodeAt(state.position); + if (propertyStart !== null && allowPropertyMapping && allowBlockStyles && !allowBlockCollections && ch !== 124 && ch !== 62) { + var _state$events$fallbac2; + const fallbackState = snapshotState(state); + const propertyIndent = propertyStart.position - propertyStart.lineStart; + restoreState(state, propertyStart); + if (readBlockMapping(state, propertyIndent, flowIndent, emptyProperties()) && ((_state$events$fallbac2 = state.events[fallbackState.eventsLength]) === null || _state$events$fallbac2 === void 0 ? void 0 : _state$events$fallbac2.type) === 3) hasContent = true; + else restoreState(state, fallbackState); + } + if (!hasContent && (allowBlockScalars && readBlockScalar(state, flowIndent, props) || readSingleQuotedScalar(state, flowIndent, props) || readDoubleQuotedScalar(state, flowIndent, props) || readAlias(state, props) || readPlainScalar(state, flowIndent, nodeContext, props))) hasContent = true; + } + else if (indentStatus === 0) hasContent = allowBlockCollections && readBlockSequence(state, blockIndent, props); + } + allowBlockScalars = allowBlockScalars && !hasContent; + if (!hasContent && (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1 || allowBlockScalars)) { + addScalarEvent(state, NO_RANGE$1, NO_RANGE$1, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, 1); + hasContent = true; + } + state.depth--; + return hasContent || props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1; + } + __name(parseNode, "parseNode"); + function readDirective(state) { + if (state.lineIndent > 0 || state.input.charCodeAt(state.position) !== 37) return false; + state.position++; + const nameStart = state.position; + while (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position))) state.position++; + const name = state.input.slice(nameStart, state.position); + const args = []; + if (name.length === 0) throwError(state, "directive name must not be less than one character in length"); + while (state.input.charCodeAt(state.position) !== 0 && !isEol(state.input.charCodeAt(state.position))) { + while (isWhiteSpace(state.input.charCodeAt(state.position))) state.position++; + if (state.input.charCodeAt(state.position) === 35 || isEol(state.input.charCodeAt(state.position)) || state.input.charCodeAt(state.position) === 0) break; + const start = state.position; + while (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position))) state.position++; + args.push(state.input.slice(start, state.position)); + } + if (isEol(state.input.charCodeAt(state.position))) consumeLineBreak(state); + if (name === "YAML") { + if (state.directives.some((directive) => directive.kind === "yaml")) throwError(state, "duplication of %YAML directive"); + if (args.length !== 1) throwError(state, "YAML directive accepts exactly one argument"); + const match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + if (match === null) throwError(state, "ill-formed argument of the YAML directive"); + if (parseInt(match[1], 10) !== 1) throwError(state, "unacceptable YAML version of the document"); + state.directives.push({ + kind: "yaml", + version: args[0] + }); + } else if (name === "TAG") { + if (args.length !== 2) throwError(state, "TAG directive accepts exactly two arguments"); + const [handle, prefix] = args; + if (!PATTERN_TAG_HANDLE.test(handle)) throwError(state, "ill-formed tag handle (first argument) of the TAG directive"); + if (HAS_OWN.call(state.tagHandlers, handle)) throwError(state, `there is a previously declared suffix for "${handle}" tag handle`); + if (!PATTERN_TAG_PREFIX.test(prefix)) throwError(state, "ill-formed tag prefix (second argument) of the TAG directive"); + state.tagHandlers[handle] = prefix; + state.directives.push({ + kind: "tag", + handle, + prefix + }); + } + return true; + } + __name(readDirective, "readDirective"); + function readDocument(state) { + state.directives = []; + state.tagHandlers = /* @__PURE__ */ Object.create(null); + let hasDirectives = false; + skipSeparationSpace(state, true); + while (readDirective(state)) { + hasDirectives = true; + skipSeparationSpace(state, true); + } + let explicitStart = false; + let explicitEnd = false; + let allowCompact = true; + if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 3))) { + explicitStart = true; + const markerLine = state.line; + state.position += 3; + skipSeparationSpace(state, true); + allowCompact = state.line > markerLine; + } else if (hasDirectives) throwError(state, "directives end mark is expected"); + const documentEventIndex = state.events.length; + if (!explicitStart && state.position === state.lineStart && state.input.charCodeAt(state.position) === 46 && testDocumentSeparator(state)) { + state.position += 3; + skipSeparationSpace(state, true); + return; + } + addDocumentEvent(state, explicitStart, false); + if (!parseNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, allowCompact, allowCompact)) addEmptyScalarEvent(state); + skipSeparationSpace(state, true); + if (state.position === state.lineStart && testDocumentSeparator(state)) { + explicitEnd = state.input.charCodeAt(state.position) === 46; + if (explicitEnd) { + const markerLine = state.line; + state.position += 3; + skipSeparationSpace(state, true); + if (state.line === markerLine && state.position < state.length) throwError(state, "end of the stream or a document separator is expected"); + } + } + const documentEvent = state.events[documentEventIndex]; + if ((documentEvent === null || documentEvent === void 0 ? void 0 : documentEvent.type) === 1) documentEvent.explicitEnd = explicitEnd; + addPopEvent(state); + if (!explicitEnd && state.position < state.length && !(state.position === state.lineStart && testDocumentSeparator(state))) throwError(state, "end of the stream or a document separator is expected"); + } + __name(readDocument, "readDocument"); + function parseEvents(input, options) { + const length = input.length; + const state = _objectSpread2(_objectSpread2(_objectSpread2({}, DEFAULT_PARSER_OPTIONS), options), {}, { + input: `${input}\0`, + length, + position: 0, + line: 0, + lineStart: 0, + lineIndent: 0, + firstTabInLine: -1, + depth: 0, + directives: [], + tagHandlers: /* @__PURE__ */ Object.create(null), + events: [] + }); + const nullpos = input.indexOf("\0"); + if (nullpos !== -1) throwErrorAt(input, nullpos, "null byte is not allowed in input", state.filename); + if (state.input.charCodeAt(state.position) === 65279) state.position++; + while (state.position < state.length) { + skipSeparationSpace(state, true); + if (state.position >= state.length) break; + const documentStart = state.position; + readDocument(state); + if (state.position === documentStart) + throwError(state, "can not read a document"); + } + return state.events; + } + __name(parseEvents, "parseEvents"); + var DEFAULT_LOAD_OPTIONS = _objectSpread2(_objectSpread2({}, DEFAULT_PARSER_OPTIONS), DEFAULT_CONSTRUCTOR_OPTIONS); + function loadDocuments(input, options = {}) { + const opts = _objectSpread2(_objectSpread2({}, DEFAULT_LOAD_OPTIONS), options); + const source = String(input); + const PARSER_OPT_KEYS = Object.keys(DEFAULT_PARSER_OPTIONS); + const CONSTRUCTOR_OPT_KEYS = Object.keys(DEFAULT_CONSTRUCTOR_OPTIONS); + return constructFromEvents(parseEvents(source, pick(opts, PARSER_OPT_KEYS)), _objectSpread2(_objectSpread2({}, pick(opts, CONSTRUCTOR_OPT_KEYS)), {}, { source })); + } + __name(loadDocuments, "loadDocuments"); + function loadAll(input, iteratorOrOptions, options) { + let iterator = null; + if (typeof iteratorOrOptions === "function") iterator = iteratorOrOptions; + else if (iteratorOrOptions !== null && typeof iteratorOrOptions === "object") options = iteratorOrOptions; + const documents = loadDocuments(input, options); + if (iterator === null) return documents; + for (const document2 of documents) iterator(document2); + } + __name(loadAll, "loadAll"); + function load(input, options) { + const documents = loadDocuments(input, options); + if (documents.length === 0) throw new YAMLException("expected a document, but the input is empty"); + if (documents.length === 1) return documents[0]; + throw new YAMLException("expected a single document in the stream, but found more"); + } + __name(load, "load"); + var Style = class { + static { + __name(this, "Style"); + } + constructor() { + _defineProperty(this, "tagged", false); + _defineProperty(this, "flow", false); + _defineProperty(this, "singleQuoted", false); + _defineProperty(this, "doubleQuoted", false); + _defineProperty(this, "literal", false); + _defineProperty(this, "folded", false); + } + }; + var INVALID = /* @__PURE__ */ Symbol("INVALID"); + function buildRepresentTypes(schema) { + const defaultTags = new Set([ + schema.defaultScalarTag, + schema.defaultSequenceTag, + schema.defaultMappingTag + ].filter((t) => t !== void 0)); + const implicitScalars = schema.implicitScalarTags; + const explicitTags = schema.tags.filter((t) => !(t.nodeKind === "scalar" && t.implicit) && !defaultTags.has(t)); + const defaultTagsLast = schema.tags.filter((t) => defaultTags.has(t)); + return [ + ...implicitScalars.map((tag) => ({ + tag, + implicitTag: true + })), + ...explicitTags.map((tag) => ({ + tag, + implicitTag: false + })), + ...defaultTagsLast.map((tag) => ({ + tag, + implicitTag: true + })) + ]; + } + __name(buildRepresentTypes, "buildRepresentTypes"); + function matchTag(state, object) { + for (let index = 0, length = state.representTypes.length; index < length; index += 1) { + const { tag, implicitTag } = state.representTypes[index]; + if (tag.identify && tag.identify(object)) { + let tagName; + if (tag.matchByTagPrefix && tag.representTagName) tagName = tag.representTagName(object); + else tagName = tag.tagName; + return { + tag, + tagName, + implicitTag + }; + } + } + return null; + } + __name(matchTag, "matchTag"); + function build(state, object) { + if (!state.noRefs && object !== null && typeof object === "object") { + const existing = state.refs.get(object); + if (existing) { + if (existing.anchor === void 0) existing.anchor = `ref_${state.refCounter++}`; + return { + kind: "alias", + tag: "", + style: new Style(), + anchor: existing.anchor + }; + } + } + const matched = matchTag(state, object); + if (!matched) { + if (object === void 0) return INVALID; + if (state.skipInvalid) return INVALID; + throw new YAMLException(`unacceptable kind of an object to dump ${Object.prototype.toString.call(object)}`); + } + const { tag, tagName, implicitTag } = matched; + const nodeTagName = implicitTag ? tagName : tagNameShort(tagName); + if (tag.nodeKind === "scalar") { + const style2 = new Style(); + style2.tagged = !implicitTag; + return { + kind: "scalar", + tag: nodeTagName, + style: style2, + value: tag.represent(object) + }; + } + if (tag.nodeKind === "sequence") { + const container = tag.represent(object); + const style2 = new Style(); + style2.tagged = !implicitTag; + const node2 = { + kind: "sequence", + tag: nodeTagName, + style: style2, + items: [] + }; + if (!state.noRefs) state.refs.set(object, node2); + for (let index = 0, length = container.length; index < length; index += 1) { + let item = build(state, container[index]); + if (item === INVALID && container[index] === void 0) item = build(state, null); + if (item === INVALID) continue; + node2.items.push(item); + } + return node2; + } + const map = tag.represent(object); + const style = new Style(); + style.tagged = !implicitTag; + const node = { + kind: "mapping", + tag: nodeTagName, + style, + items: [] + }; + if (!state.noRefs) state.refs.set(object, node); + for (const [objectKey, objectValue] of map) { + const key = build(state, objectKey); + if (key === INVALID) continue; + const value = build(state, objectValue); + if (value === INVALID) continue; + node.items.push({ + key, + value + }); + } + return node; + } + __name(build, "build"); + function jsToAst(input, schema, options = {}) { + var _options$noRefs, _options$skipInvalid; + const root = build({ + representTypes: buildRepresentTypes(schema), + noRefs: (_options$noRefs = options.noRefs) !== null && _options$noRefs !== void 0 ? _options$noRefs : false, + skipInvalid: (_options$skipInvalid = options.skipInvalid) !== null && _options$skipInvalid !== void 0 ? _options$skipInvalid : false, + refs: /* @__PURE__ */ new Map(), + refCounter: 0 + }, input); + return [{ + contents: root === INVALID ? null : root, + directives: [] + }]; + } + __name(jsToAst, "jsToAst"); + var VISIT_BREAK = /* @__PURE__ */ Symbol("visit:break"); + var VISIT_SKIP = /* @__PURE__ */ Symbol("visit:skip"); + function visitNode(node, visitor, ctx) { + const control = visitor(node, ctx); + if (control === VISIT_BREAK) return true; + if (control === VISIT_SKIP) return false; + const depth = ctx.depth + 1; + switch (node.kind) { + case "sequence": + for (const item of node.items) if (visitNode(item, visitor, { + depth, + parent: node, + isKey: false + })) return true; + break; + case "mapping": + for (const { key, value } of node.items) { + if (visitNode(key, visitor, { + depth, + parent: node, + isKey: true + })) return true; + if (visitNode(value, visitor, { + depth, + parent: node, + isKey: false + })) return true; + } + break; + } + return false; + } + __name(visitNode, "visitNode"); + function visit(documents, visitor) { + for (const doc of documents) if (doc.contents && visitNode(doc.contents, visitor, { + depth: 0, + parent: null, + isKey: false + })) return; + } + __name(visit, "visit"); + var CHAR_BOM = 65279; + var CHAR_TAB = 9; + var CHAR_LINE_FEED = 10; + var CHAR_CARRIAGE_RETURN = 13; + var CHAR_SPACE = 32; + var CHAR_EXCLAMATION = 33; + var CHAR_DOUBLE_QUOTE = 34; + var CHAR_SHARP = 35; + var CHAR_PERCENT = 37; + var CHAR_AMPERSAND = 38; + var CHAR_SINGLE_QUOTE = 39; + var CHAR_ASTERISK = 42; + var CHAR_COMMA = 44; + var CHAR_MINUS = 45; + var CHAR_COLON = 58; + var CHAR_EQUALS = 61; + var CHAR_GREATER_THAN = 62; + var CHAR_QUESTION = 63; + var CHAR_COMMERCIAL_AT = 64; + var CHAR_LEFT_SQUARE_BRACKET = 91; + var CHAR_RIGHT_SQUARE_BRACKET = 93; + var CHAR_GRAVE_ACCENT = 96; + var CHAR_LEFT_CURLY_BRACKET = 123; + var CHAR_VERTICAL_LINE = 124; + var CHAR_RIGHT_CURLY_BRACKET = 125; + var ESCAPE_SEQUENCES = {}; + ESCAPE_SEQUENCES[0] = "\\0"; + ESCAPE_SEQUENCES[7] = "\\a"; + ESCAPE_SEQUENCES[8] = "\\b"; + ESCAPE_SEQUENCES[9] = "\\t"; + ESCAPE_SEQUENCES[10] = "\\n"; + ESCAPE_SEQUENCES[11] = "\\v"; + ESCAPE_SEQUENCES[12] = "\\f"; + ESCAPE_SEQUENCES[13] = "\\r"; + ESCAPE_SEQUENCES[27] = "\\e"; + ESCAPE_SEQUENCES[34] = '\\"'; + ESCAPE_SEQUENCES[92] = "\\\\"; + ESCAPE_SEQUENCES[133] = "\\N"; + ESCAPE_SEQUENCES[160] = "\\_"; + ESCAPE_SEQUENCES[8232] = "\\L"; + ESCAPE_SEQUENCES[8233] = "\\P"; + var DEFAULT_PRESENTER_OPTIONS = { + indent: 2, + seqNoIndent: false, + seqInlineFirst: true, + sortKeys: false, + lineWidth: 80, + flowBracketPadding: false, + flowSkipCommaSpace: false, + flowSkipColonSpace: false, + quoteFlowKeys: false, + quoteStyle: "single", + forceQuotes: false, + tagBeforeAnchor: false + }; + function nodeTagShort(node) { + return node.style.tagged ? node.tag : tagNameShort(node.tag); + } + __name(nodeTagShort, "nodeTagShort"); + function createPresenterState(options) { + const opts = _objectSpread2(_objectSpread2({}, DEFAULT_PRESENTER_OPTIONS), options); + return _objectSpread2(_objectSpread2({}, opts), {}, { + defaultScalarTagName: opts.schema.defaultScalarTag.tagName, + implicitResolvers: opts.schema.implicitScalarTags + }); + } + __name(createPresenterState, "createPresenterState"); + function encodeNonPrintable(character) { + const string = character.toString(16).toUpperCase(); + const handle = character <= 255 ? "x" : "u"; + const length = character <= 255 ? 2 : 4; + return `\\${handle}${"0".repeat(length - string.length)}${string}`; + } + __name(encodeNonPrintable, "encodeNonPrintable"); + function indentString(string, spaces) { + const ind = " ".repeat(spaces); + let position = 0; + let result = ""; + const length = string.length; + while (position < length) { + let line; + const next = string.indexOf("\n", position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + if (line.length && line !== "\n") result += ind; + result += line; + } + return result; + } + __name(indentString, "indentString"); + function generateNextLine(state, level) { + return ` +${" ".repeat(state.indent * level)}`; + } + __name(generateNextLine, "generateNextLine"); + function scalarLayout(state, level) { + const indent = state.indent * Math.max(1, level); + return { + indent, + blockIndent: level === 0 ? state.indent + 1 : state.indent, + lineWidth: state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent) + }; + } + __name(scalarLayout, "scalarLayout"); + function resolveImplicitTag(state, str) { + for (let index = 0, length = state.implicitResolvers.length; index < length; index += 1) { + const tagDefinition = state.implicitResolvers[index]; + if (tagDefinition.resolve(str, false, tagDefinition.tagName) !== NOT_RESOLVED) return tagDefinition.tagName; + } + return state.defaultScalarTagName; + } + __name(resolveImplicitTag, "resolveImplicitTag"); + function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; + } + __name(isWhitespace, "isWhitespace"); + function startsWithDocumentSeparator(string) { + const marker = string.charCodeAt(0); + if (marker !== CHAR_MINUS && marker !== 46 || string.charCodeAt(1) !== marker || string.charCodeAt(2) !== marker) return false; + if (string.length === 3) return true; + const following = string.charCodeAt(3); + return isWhitespace(following) || following === CHAR_CARRIAGE_RETURN || following === CHAR_LINE_FEED; + } + __name(startsWithDocumentSeparator, "startsWithDocumentSeparator"); + function isPrintable(c) { + return c >= 32 && c <= 126 || c >= 161 && c <= 55295 && c !== 8232 && c !== 8233 || c >= 57344 && c <= 65533 && c !== CHAR_BOM || c >= 65536 && c <= 1114111; + } + __name(isPrintable, "isPrintable"); + function isNsCharOrWhitespace(c) { + return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED; + } + __name(isNsCharOrWhitespace, "isNsCharOrWhitespace"); + function isPlainSafe(c, prev, inblock) { + const cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + const cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return (inblock ? cIsNsCharOrWhitespace : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar; + } + __name(isPlainSafe, "isPlainSafe"); + function isPlainSafeFirst(c) { + return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT; + } + __name(isPlainSafeFirst, "isPlainSafeFirst"); + function isPlainSafeAtStart(string, inblock) { + const first = codePointAt(string, 0); + if (isPlainSafeFirst(first)) return true; + if (string.length > 1 && (first === CHAR_MINUS || first === CHAR_QUESTION || first === CHAR_COLON)) { + const second = codePointAt(string, 1); + return !isWhitespace(second) && isPlainSafe(second, first, inblock); + } + return false; + } + __name(isPlainSafeAtStart, "isPlainSafeAtStart"); + function isPlainSafeLast(c) { + return !isWhitespace(c) && c !== CHAR_COLON; + } + __name(isPlainSafeLast, "isPlainSafeLast"); + function codePointAt(string, pos) { + const first = string.charCodeAt(pos); + let second; + if (first >= 55296 && first <= 56319 && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 56320 && second <= 57343) return (first - 55296) * 1024 + second - 56320 + 65536; + } + return first; + } + __name(codePointAt, "codePointAt"); + function needIndentIndicator(string) { + return /^\n* /.test(string); + } + __name(needIndentIndicator, "needIndentIndicator"); + var STYLE_PLAIN = 1; + var STYLE_SINGLE = 2; + var STYLE_LITERAL = 3; + var STYLE_FOLDED = 4; + var STYLE_DOUBLE = 5; + function chooseScalarStyle(state, string, layout, singleLineOnly, forceQuote, inblock) { + const { blockIndent, lineWidth } = layout; + let i; + let char = 0; + let prevChar = -1; + let hasLineBreak = false; + let hasFoldableLine = false; + const shouldTrackWidth = lineWidth !== -1; + let previousLineBreak = -1; + let plain = !startsWithDocumentSeparator(string) && isPlainSafeAtStart(string, inblock) && isPlainSafeLast(codePointAt(string, string.length - 1)); + if (singleLineOnly || forceQuote) for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) return STYLE_DOUBLE; + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + else { + for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "; + previousLineBreak = i; + } + } else if (!isPrintable(char)) return STYLE_DOUBLE; + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + hasFoldableLine = hasFoldableLine || shouldTrackWidth && i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "; + } + if (!hasLineBreak && !hasFoldableLine) { + if (plain && !forceQuote) return STYLE_PLAIN; + return state.quoteStyle === "double" ? STYLE_DOUBLE : STYLE_SINGLE; + } + if (blockIndent > 9 && needIndentIndicator(string)) return STYLE_DOUBLE; + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + } + __name(chooseScalarStyle, "chooseScalarStyle"); + function renderScalarStyle(string, style, layout) { + const { indent, blockIndent, lineWidth } = layout; + switch (style) { + case STYLE_PLAIN: + return encodeFlowBreaks(string, indent); + case STYLE_SINGLE: + return `'${encodeFlowBreaks(string, indent).replace(/'/g, "''")}'`; + case STYLE_LITERAL: + return "|" + blockHeader(string, blockIndent) + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return ">" + blockHeader(string, blockIndent) + dropEndingNewline(indentString(foldBlockScalar(string, lineWidth), indent)); + case STYLE_DOUBLE: + return `"${escapeString(string)}"`; + } + } + __name(renderScalarStyle, "renderScalarStyle"); + function resolveScalarStyle(state, node, layout, iskey, inblock) { + const singleLineOnly = iskey || !inblock; + if (node.style.singleQuoted) return STYLE_SINGLE; + if (node.style.doubleQuoted) return STYLE_DOUBLE; + if (!singleLineOnly) { + if (node.style.literal) return STYLE_LITERAL; + if (node.style.folded) return STYLE_FOLDED; + } + const string = node.value; + if (string.length === 0) { + if (node.style.tagged || resolveImplicitTag(state, string) === node.tag) return STYLE_PLAIN; + return state.quoteStyle === "double" ? STYLE_DOUBLE : STYLE_SINGLE; + } + const style = chooseScalarStyle(state, string, layout, singleLineOnly, state.forceQuotes && !iskey, inblock); + if (style === STYLE_PLAIN && !node.style.tagged && resolveImplicitTag(state, string) !== node.tag) return state.quoteStyle === "double" ? STYLE_DOUBLE : STYLE_SINGLE; + return style; + } + __name(resolveScalarStyle, "resolveScalarStyle"); + function blockHeader(string, indentPerLevel) { + const indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ""; + const clip = string[string.length - 1] === "\n"; + return `${indentIndicator}${clip && (string[string.length - 2] === "\n" || string === "\n") ? "+" : clip ? "" : "-"} +`; + } + __name(blockHeader, "blockHeader"); + function encodeFlowBreaks(string, indent) { + let nextLF = string.indexOf("\n"); + if (nextLF === -1) return string; + const pad = " ".repeat(indent); + let result = string.slice(0, nextLF); + const lineRe = /(\n+)([^\n]*)/g; + lineRe.lastIndex = nextLF; + let match; + while (match = lineRe.exec(string)) { + const breaks = match[1].length; + const line = match[2]; + result += "\n".repeat(breaks + 1) + pad + line; + } + return result; + } + __name(encodeFlowBreaks, "encodeFlowBreaks"); + function dropEndingNewline(string) { + return string[string.length - 1] === "\n" ? string.slice(0, -1) : string; + } + __name(dropEndingNewline, "dropEndingNewline"); + function foldBlockScalar(string, width) { + const lineRe = /(\n+)([^\n]*)/g; + let nextLF = string.indexOf("\n"); + if (nextLF === -1) nextLF = string.length; + lineRe.lastIndex = nextLF; + let result = foldLine(string.slice(0, nextLF), width); + let prevMoreIndented = string[0] === "\n" || string[0] === " "; + let moreIndented; + let match; + while (match = lineRe.exec(string)) { + const prefix = match[1]; + const line = match[2]; + moreIndented = line[0] === " "; + result += prefix + (!prevMoreIndented && !moreIndented && line !== "" ? "\n" : "") + foldLine(line, width); + prevMoreIndented = moreIndented; + } + return result; + } + __name(foldBlockScalar, "foldBlockScalar"); + function foldLine(line, width) { + if (line === "" || line[0] === " ") return line; + const breakRe = / [^ ]/g; + let match; + let start = 0; + let end; + let curr = 0; + let next = 0; + let result = ""; + while (match = breakRe.exec(line)) { + next = match.index; + if (next - start > width) { + end = curr > start ? curr : next; + result += ` +${line.slice(start, end)}`; + start = end + 1; + } + curr = next; + } + result += "\n"; + if (line.length - start > width && curr > start) result += `${line.slice(start, curr)} +${line.slice(curr + 1)}`; + else result += line.slice(start); + return result.slice(1); + } + __name(foldLine, "foldLine"); + function escapeString(string) { + let result = ""; + let char = 0; + for (let i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { + char = codePointAt(string, i); + const escapeSeq = ESCAPE_SEQUENCES[char]; + if (escapeSeq) { + result += escapeSeq; + continue; + } + if (isPrintable(char)) { + result += string[i]; + if (char >= 65536) result += string[i + 1]; + continue; + } + result += encodeNonPrintable(char); + } + return result; + } + __name(escapeString, "escapeString"); + function writeFlowSequence(state, level, node) { + let result = ""; + for (let index = 0, length = node.items.length; index < length; index += 1) { + const item = writeNode(state, level, node.items[index], {}); + if (result !== "") result += `,${!state.flowSkipCommaSpace ? " " : ""}`; + result += item; + } + const pad = state.flowBracketPadding && result !== "" ? " " : ""; + return `[${pad}${result}${pad}]`; + } + __name(writeFlowSequence, "writeFlowSequence"); + function writeBlockSequence(state, level, node, compact) { + let result = ""; + for (let index = 0, length = node.items.length; index < length; index += 1) { + const item = writeNode(state, level + 1, node.items[index], { + block: true, + compact: state.seqInlineFirst, + isblockseq: true + }); + if (!compact || result !== "") result += generateNextLine(state, level); + if (item === "" || CHAR_LINE_FEED === item.charCodeAt(0)) result += "-"; + else result += "- "; + result += item; + } + return result; + } + __name(writeBlockSequence, "writeBlockSequence"); + function writeFlowMapping(state, level, node) { + let result = ""; + const items = sortMappingItems(state, node.items); + for (const { key, value } of items) { + let pairBuffer = ""; + if (result !== "") pairBuffer += `,${!state.flowSkipCommaSpace ? " " : ""}`; + const keyText = writeNode(state, level, key, { iskey: true }); + const explicitPair = keyText.length > 1024; + if (explicitPair) pairBuffer += "? "; + else if (state.quoteFlowKeys) pairBuffer += '"'; + const valueText = writeNode(state, level, value, {}); + const sep = state.flowSkipColonSpace || valueText === "" ? "" : " "; + pairBuffer += `${keyText}${state.quoteFlowKeys && !explicitPair ? '"' : ""}:${sep}${valueText}`; + result += pairBuffer; + } + const pad = state.flowBracketPadding && result !== "" ? " " : ""; + return `{${pad}${result}${pad}}`; + } + __name(writeFlowMapping, "writeFlowMapping"); + function sortKeyValue(key) { + return key.kind === "scalar" ? key.value : key; + } + __name(sortKeyValue, "sortKeyValue"); + function sortMappingItems(state, items) { + if (!state.sortKeys) return items; + const copy = items.slice(); + if (state.sortKeys === true) copy.sort((a, b) => { + const x = sortKeyValue(a.key); + const y = sortKeyValue(b.key); + if (x < y) return -1; + if (x > y) return 1; + return 0; + }); + else { + const fn = state.sortKeys; + copy.sort((a, b) => fn(sortKeyValue(a.key), sortKeyValue(b.key))); + } + return copy; + } + __name(sortMappingItems, "sortMappingItems"); + function writeBlockMapping(state, level, node, compact) { + let result = ""; + const items = sortMappingItems(state, node.items); + for (let index = 0, length = items.length; index < length; index += 1) { + let pairBuffer = ""; + if (!compact || result !== "") pairBuffer += generateNextLine(state, level); + const { key, value } = items[index]; + const keyIsBlock = (key.kind === "mapping" || key.kind === "sequence") && !key.style.flow && key.items.length !== 0 || key.kind === "scalar" && (key.style.literal || key.style.folded); + const keyText = keyIsBlock ? writeNode(state, level + 1, key, { + block: true, + compact: true, + isblockseq: !cannotBeCompact(state, key, level + 1) + }) : writeNode(state, level + 1, key, { + block: true, + compact: true, + iskey: true + }); + const keyHasLineBreak = key.kind === "scalar" && key.value.indexOf("\n") !== -1; + const explicitPair = keyIsBlock || keyHasLineBreak || keyText.length > 1024; + if (explicitPair) if (keyText && CHAR_LINE_FEED === keyText.charCodeAt(0)) pairBuffer += "?"; + else pairBuffer += "? "; + pairBuffer += keyText; + if (explicitPair) pairBuffer += generateNextLine(state, level); + const valueText = writeNode(state, level + 1, value, { + block: true, + compact: explicitPair, + isblockseq: explicitPair && !cannotBeCompact(state, value, level + 1) + }); + const keyIsBareProps = key.kind === "scalar" && key.value === "" && keyText !== "" && keyText.charCodeAt(keyText.length - 1) !== CHAR_SINGLE_QUOTE && keyText.charCodeAt(keyText.length - 1) !== CHAR_DOUBLE_QUOTE; + const keyColonSep = !explicitPair && (key.kind === "alias" || keyIsBareProps) ? " " : ""; + if (valueText === "" || CHAR_LINE_FEED === valueText.charCodeAt(0)) pairBuffer += `${keyColonSep}:`; + else pairBuffer += `${keyColonSep}: `; + pairBuffer += valueText; + result += pairBuffer; + } + return result; + } + __name(writeBlockMapping, "writeBlockMapping"); + function cannotBeCompact(state, node, level) { + return node.style.tagged || node.anchor !== void 0 || state.indent < 2 && level > 0; + } + __name(cannotBeCompact, "cannotBeCompact"); + function writeNode(state, level, node, ctx) { + var _ctx$compact; + if (node.kind === "alias") return `*${node.anchor}`; + const { block = false, iskey = false, isblockseq = false } = ctx; + let compact = (_ctx$compact = ctx.compact) !== null && _ctx$compact !== void 0 ? _ctx$compact : false; + const hasAnchor = node.anchor !== void 0; + if (cannotBeCompact(state, node, level)) compact = false; + let body; + let shouldPrintTag = node.style.tagged; + const useBlockCollection = block && (node.kind === "mapping" || node.kind === "sequence") && !node.style.flow && node.items.length !== 0; + if (node.kind === "mapping") if (useBlockCollection) body = writeBlockMapping(state, level, node, compact); + else body = writeFlowMapping(state, level, node); + else if (node.kind === "sequence") if (useBlockCollection) if (state.seqNoIndent && !isblockseq && level > 0) body = writeBlockSequence(state, level - 1, node, compact); + else body = writeBlockSequence(state, level, node, compact); + else body = writeFlowSequence(state, level, node); + else { + const layout = scalarLayout(state, level); + const style = resolveScalarStyle(state, node, layout, iskey, block); + body = renderScalarStyle(node.value, style, layout); + shouldPrintTag = node.style.tagged || style !== STYLE_PLAIN && node.tag !== state.defaultScalarTagName; + } + if (useBlockCollection && compact && level > 0 && state.indent > 2) body = `${" ".repeat(state.indent - 2)}${body}`; + if (shouldPrintTag || hasAnchor) { + const props = []; + const tag = shouldPrintTag ? nodeTagShort(node) : null; + const anchor = hasAnchor ? `&${node.anchor}` : null; + if (state.tagBeforeAnchor) { + if (tag !== null) props.push(tag); + if (anchor !== null) props.push(anchor); + } else { + if (anchor !== null) props.push(anchor); + if (tag !== null) props.push(tag); + } + const sep = body === "" || body.charCodeAt(0) === CHAR_LINE_FEED ? "" : " "; + body = `${props.join(" ")}${sep}${body}`; + } + return body; + } + __name(writeNode, "writeNode"); + function rootStartsOwnLine(node) { + return (node.kind === "sequence" || node.kind === "mapping") && !node.style.flow && node.items.length !== 0 && !node.style.tagged && node.anchor === void 0; + } + __name(rootStartsOwnLine, "rootStartsOwnLine"); + function isOpenEnded(node) { + let leaf = node; + while ((leaf.kind === "sequence" || leaf.kind === "mapping") && !leaf.style.flow && leaf.items.length !== 0) leaf = leaf.kind === "sequence" ? leaf.items[leaf.items.length - 1] : leaf.items[leaf.items.length - 1].value; + if (leaf.kind !== "scalar" || !(leaf.style.literal || leaf.style.folded)) return false; + const { value } = leaf; + return value.endsWith("\n\n") || value === "\n"; + } + __name(isOpenEnded, "isOpenEnded"); + function writeDocumentDirectives(doc) { + let result = ""; + for (const directive of doc.directives) { + if (directive.kind === "yaml") { + result += `%YAML ${directive.version} +`; + continue; + } + const { handle, prefix } = directive; + result += `%TAG ${handle} ${prefix} +`; + } + return result; + } + __name(writeDocumentDirectives, "writeDocumentDirectives"); + function present(documents, options) { + const state = createPresenterState(options); + let result = ""; + let previousEnded = false; + for (let index = 0; index < documents.length; index += 1) { + const doc = documents[index]; + const directives = writeDocumentDirectives(doc); + const hasDirectives = directives !== ""; + const marker = doc.explicitStart || hasDirectives || index > 0 && !previousEnded; + result += directives; + if (doc.contents === null) { + if (marker) result += "---\n"; + } else if (marker) { + const body = writeNode(state, 0, doc.contents, { + block: true, + compact: true + }); + const sep = body === "" ? "" : hasDirectives || rootStartsOwnLine(doc.contents) ? "\n" : " "; + result += `---${sep}${body} +`; + } else result += writeNode(state, 0, doc.contents, { + block: true, + compact: true + }) + "\n"; + previousEnded = doc.explicitEnd || doc.contents !== null && isOpenEnded(doc.contents); + if (previousEnded) result += "...\n"; + } + return result; + } + __name(present, "present"); + var DEFAULT_DUMP_SCHEMA = YAML11_SCHEMA.withTags(_objectSpread2(_objectSpread2({}, intYaml11Tag), {}, { resolve: /* @__PURE__ */ __name((source, isExplicit, tagName) => { + const result = intYaml11Tag.resolve(source, isExplicit, tagName); + return result === NOT_RESOLVED ? intCoreTag.resolve(source, isExplicit, tagName) : result; + }, "resolve") }), _objectSpread2(_objectSpread2({}, floatYaml11Tag), {}, { resolve: /* @__PURE__ */ __name((source, isExplicit, tagName) => { + const result = floatYaml11Tag.resolve(source, isExplicit, tagName); + return result === NOT_RESOLVED ? floatCoreTag.resolve(source, isExplicit, tagName) : result; + }, "resolve") })); + var DEFAULT_DUMP_OPTIONS = _objectSpread2(_objectSpread2({}, DEFAULT_PRESENTER_OPTIONS), {}, { + schema: DEFAULT_DUMP_SCHEMA, + skipInvalid: false, + noRefs: false, + flowLevel: -1, + transform: /* @__PURE__ */ __name(() => { + }, "transform") + }); + function dump(input, options = {}) { + const opts = _objectSpread2(_objectSpread2({}, DEFAULT_DUMP_OPTIONS), options); + const documents = jsToAst(input, opts.schema, { + noRefs: opts.noRefs, + skipInvalid: opts.skipInvalid + }); + if (opts.flowLevel >= 0) visit(documents, (node, ctx) => { + if (ctx.depth < opts.flowLevel) return; + node.style.flow = true; + return VISIT_SKIP; + }); + opts.transform(documents); + return present(documents, _objectSpread2(_objectSpread2({}, pick(opts, Object.keys(DEFAULT_PRESENTER_OPTIONS))), {}, { schema: opts.schema })); + } + __name(dump, "dump"); + var NO_RANGE = -1; + function eventPosition(event) { + if ("tagStart" in event && event.tagStart !== NO_RANGE) return event.tagStart; + if ("anchorStart" in event && event.anchorStart !== NO_RANGE) return event.anchorStart; + if ("valueStart" in event && event.valueStart !== NO_RANGE) return event.valueStart; + if ("start" in event) return event.start; + return 0; + } + __name(eventPosition, "eventPosition"); + function rawTag(state, event) { + return event.tagStart === NO_RANGE ? "" : state.source.slice(event.tagStart, event.tagEnd); + } + __name(rawTag, "rawTag"); + function anchorName(state, event) { + return event.anchorStart === NO_RANGE ? void 0 : state.source.slice(event.anchorStart, event.anchorEnd); + } + __name(anchorName, "anchorName"); + function implicitScalarTagName(state, source) { + var _schema$implicitScala; + const { schema } = state; + const candidates = (_schema$implicitScala = schema.implicitScalarByFirstChar.get(source.charAt(0))) !== null && _schema$implicitScala !== void 0 ? _schema$implicitScala : schema.implicitScalarAnyFirstChar; + for (const tag of candidates) if (tag.resolve(source, false, tag.tagName) !== NOT_RESOLVED) return tag.tagName; + return schema.defaultScalarTag.tagName; + } + __name(implicitScalarTagName, "implicitScalarTagName"); + function buildScalar(state, event) { + const value = getScalarValue(state.source, event); + const raw2 = rawTag(state, event); + const style = new Style(); + switch (event.style) { + case 2: + style.singleQuoted = true; + break; + case 3: + style.doubleQuoted = true; + break; + case 4: + style.literal = true; + break; + case 5: + style.folded = true; + break; + } + let tag; + if (raw2 !== "") { + style.tagged = true; + tag = raw2; + } else if (event.style === 1) tag = implicitScalarTagName(state, value); + else tag = state.schema.defaultScalarTag.tagName; + return { + kind: "scalar", + tag, + style, + anchor: anchorName(state, event), + value + }; + } + __name(buildScalar, "buildScalar"); + function buildCollection(state, event, defaultTagName) { + const raw2 = rawTag(state, event); + const style = new Style(); + if (event.style === 2) style.flow = true; + let tag; + if (raw2 === "") tag = defaultTagName; + else { + tag = raw2; + style.tagged = true; + } + return { + tag, + style, + anchor: anchorName(state, event) + }; + } + __name(buildCollection, "buildCollection"); + function addNode(state, node) { + const frame = state.frames[state.frames.length - 1]; + if (frame.kind === "document") frame.doc.contents = node; + else if (frame.kind === "sequence") frame.node.items.push(node); + else if (frame.key) { + frame.node.items.push({ + key: frame.key, + value: node + }); + frame.key = null; + } else frame.key = node; + } + __name(addNode, "addNode"); + function eventsToAst(events, options) { + const state = { + source: options.source, + schema: options.schema, + eventIndex: 0, + position: 0, + frames: [], + documents: [] + }; + while (state.eventIndex < events.length) { + const event = events[state.eventIndex++]; + state.position = eventPosition(event); + switch (event.type) { + case 1: { + const doc = { + contents: null, + explicitStart: event.explicitStart, + explicitEnd: event.explicitEnd, + directives: event.directives + }; + state.frames.push({ + kind: "document", + doc + }); + break; + } + case 4: + addNode(state, buildScalar(state, event)); + break; + case 2: { + const { tag, style, anchor } = buildCollection(state, event, "tag:yaml.org,2002:seq"); + const node = { + kind: "sequence", + tag, + style, + anchor, + items: [] + }; + state.frames.push({ + kind: "sequence", + node + }); + break; + } + case 3: { + const { tag, style, anchor } = buildCollection(state, event, "tag:yaml.org,2002:map"); + const node = { + kind: "mapping", + tag, + style, + anchor, + items: [] + }; + state.frames.push({ + kind: "mapping", + node, + key: null + }); + break; + } + case 5: { + const name = state.source.slice(event.anchorStart, event.anchorEnd); + addNode(state, { + kind: "alias", + tag: "", + style: new Style(), + anchor: name + }); + break; + } + case 6: { + const frame = state.frames.pop(); + if (frame.kind === "document") state.documents.push(frame.doc); + else addNode(state, frame.node); + break; + } + } + } + return state.documents; + } + __name(eventsToAst, "eventsToAst"); + exports2.CHOMPING_CLIP = CHOMPING_CLIP; + exports2.CHOMPING_KEEP = CHOMPING_KEEP; + exports2.CHOMPING_STRIP = CHOMPING_STRIP; + exports2.COLLECTION_STYLE_BLOCK = COLLECTION_STYLE_BLOCK; + exports2.COLLECTION_STYLE_FLOW = COLLECTION_STYLE_FLOW; + exports2.CORE_SCHEMA = CORE_SCHEMA; + exports2.EVENT_ALIAS = EVENT_ALIAS; + exports2.EVENT_DOCUMENT = EVENT_DOCUMENT; + exports2.EVENT_MAPPING = EVENT_MAPPING; + exports2.EVENT_POP = EVENT_POP; + exports2.EVENT_SCALAR = EVENT_SCALAR; + exports2.EVENT_SEQUENCE = EVENT_SEQUENCE; + exports2.FAILSAFE_SCHEMA = FAILSAFE_SCHEMA; + exports2.JSON_SCHEMA = JSON_SCHEMA; + exports2.MERGE_KEY = MERGE_KEY; + exports2.NOT_RESOLVED = NOT_RESOLVED; + exports2.SCALAR_STYLE_DOUBLE_QUOTED = SCALAR_STYLE_DOUBLE_QUOTED; + exports2.SCALAR_STYLE_FOLDED_BLOCK = SCALAR_STYLE_FOLDED_BLOCK; + exports2.SCALAR_STYLE_LITERAL_BLOCK = SCALAR_STYLE_LITERAL_BLOCK; + exports2.SCALAR_STYLE_PLAIN = SCALAR_STYLE_PLAIN; + exports2.SCALAR_STYLE_SINGLE_QUOTED = SCALAR_STYLE_SINGLE_QUOTED; + exports2.Schema = Schema; + exports2.Style = Style; + exports2.VISIT_BREAK = VISIT_BREAK; + exports2.VISIT_SKIP = VISIT_SKIP; + exports2.YAML11_SCHEMA = YAML11_SCHEMA; + exports2.YAMLException = YAMLException; + exports2.binaryTag = binaryTag; + exports2.boolCoreTag = boolCoreTag; + exports2.boolJsonTag = boolJsonTag; + exports2.boolYaml11Tag = boolYaml11Tag; + exports2.constructFromEvents = constructFromEvents; + exports2.defineMappingTag = defineMappingTag; + exports2.defineScalarTag = defineScalarTag; + exports2.defineSequenceTag = defineSequenceTag; + exports2.dump = dump; + exports2.eventsToAst = eventsToAst; + exports2.floatCoreTag = floatCoreTag; + exports2.floatJsonTag = floatJsonTag; + exports2.floatYaml11Tag = floatYaml11Tag; + exports2.getScalarValue = getScalarValue; + exports2.intCoreTag = intCoreTag; + exports2.intJsonTag = intJsonTag; + exports2.intYaml11Tag = intYaml11Tag; + exports2.jsToAst = jsToAst; + exports2.legacyMapTag = legacyMapTag; + exports2.load = load; + exports2.loadAll = loadAll; + exports2.mapTag = mapTag; + exports2.mergeTag = mergeTag; + exports2.nullCoreTag = nullCoreTag; + exports2.nullJsonTag = nullJsonTag; + exports2.nullYaml11Tag = nullYaml11Tag; + exports2.omapTag = omapTag; + exports2.pairsTag = pairsTag; + exports2.parseEvents = parseEvents; + exports2.present = present; + exports2.realMapTag = realMapTag; + exports2.seqTag = seqTag; + exports2.setTag = setTag; + exports2.strTag = strTag; + exports2.timestampTag = timestampTag; + exports2.visit = visit; + } +}); + +// node_modules/@nestjs/swagger/dist/plugin/metadata-loader.js +var require_metadata_loader = __commonJS({ + "node_modules/@nestjs/swagger/dist/plugin/metadata-loader.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + __name(adopt, "adopt"); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + __name(fulfilled, "fulfilled"); + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + __name(rejected, "rejected"); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + __name(step, "step"); + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MetadataLoader = void 0; + var plugin_constants_1 = require_plugin_constants(); + var MetadataLoader = class _MetadataLoader { + static { + __name(this, "MetadataLoader"); + } + static addRefreshHook(hook) { + return _MetadataLoader.refreshHooks.push(hook); + } + load(metadata) { + return __awaiter2(this, void 0, void 0, function* () { + const pkgMetadata = metadata["@nestjs/swagger"]; + if (!pkgMetadata) { + return; + } + const { models, controllers } = pkgMetadata; + if (models) { + yield this.applyMetadata(models); + } + if (controllers) { + yield this.applyMetadata(controllers); + } + this.runHooks(); + }); + } + applyMetadata(meta) { + return __awaiter2(this, void 0, void 0, function* () { + const loadPromises = meta.map((_a) => __awaiter2(this, [_a], void 0, function* ([fileImport, fileMeta]) { + const fileRef = yield fileImport; + Object.keys(fileMeta).map((key) => { + const clsRef = fileRef[key]; + clsRef[plugin_constants_1.METADATA_FACTORY_NAME] = () => fileMeta[key]; + }); + })); + yield Promise.all(loadPromises); + }); + } + runHooks() { + _MetadataLoader.refreshHooks.forEach((hook) => hook()); + } + }; + exports2.MetadataLoader = MetadataLoader; + MetadataLoader.refreshHooks = new Array(); + } +}); + +// node_modules/@nestjs/swagger/dist/services/model-properties-accessor.js +var require_model_properties_accessor = __commonJS({ + "node_modules/@nestjs/swagger/dist/services/model-properties-accessor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ModelPropertiesAccessor = void 0; + var shared_utils_1 = require_shared_utils(); + require_Reflect(); + var constants_1 = require_constants8(); + var api_property_decorator_1 = require_api_property_decorator(); + var plugin_constants_1 = require_plugin_constants(); + var ModelPropertiesAccessor = class { + static { + __name(this, "ModelPropertiesAccessor"); + } + getModelProperties(prototype) { + const properties = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES_ARRAY, prototype) || []; + return properties.filter(shared_utils_1.isString).filter((key) => key.charAt(0) === ":" && !(0, shared_utils_1.isFunction)(prototype[key])).map((key) => key.slice(1)); + } + applyMetadataFactory(prototype) { + const classPrototype = prototype; + do { + if (!prototype.constructor) { + return; + } + if (!prototype.constructor[plugin_constants_1.METADATA_FACTORY_NAME]) { + continue; + } + const metadata = prototype.constructor[plugin_constants_1.METADATA_FACTORY_NAME](); + const properties = Object.keys(metadata); + properties.forEach((key) => { + (0, api_property_decorator_1.createApiPropertyDecorator)(metadata[key], false)(classPrototype, key); + }); + } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype && prototype); + } + }; + exports2.ModelPropertiesAccessor = ModelPropertiesAccessor; + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-extra-models.explorer.js +var require_api_extra_models_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-extra-models.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiExtraModelsMetadata = exports2.exploreGlobalApiExtraModelsMetadata = void 0; + var constants_1 = require_constants8(); + var exploreGlobalApiExtraModelsMetadata = /* @__PURE__ */ __name((metatype) => { + const extraModels = Reflect.getMetadata(constants_1.DECORATORS.API_EXTRA_MODELS, metatype); + return extraModels || []; + }, "exploreGlobalApiExtraModelsMetadata"); + exports2.exploreGlobalApiExtraModelsMetadata = exploreGlobalApiExtraModelsMetadata; + var exploreApiExtraModelsMetadata = /* @__PURE__ */ __name((instance, prototype, method) => Reflect.getMetadata(constants_1.DECORATORS.API_EXTRA_MODELS, method) || [], "exploreApiExtraModelsMetadata"); + exports2.exploreApiExtraModelsMetadata = exploreApiExtraModelsMetadata; + } +}); + +// node_modules/@nestjs/swagger/dist/utils/get-schema-path.util.js +var require_get_schema_path_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/get-schema-path.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getSchemaPath = getSchemaPath; + exports2.refs = refs; + var shared_utils_1 = require_shared_utils(); + var constants_1 = require_constants8(); + function getSchemaPath(model) { + const modelName = (0, shared_utils_1.isString)(model) ? model : getSchemaNameByClass(model); + return `#/components/schemas/${modelName}`; + } + __name(getSchemaPath, "getSchemaPath"); + function getSchemaNameByClass(target) { + var _a; + if (!target || typeof target !== "function") { + return ""; + } + const customSchema = Reflect.getOwnMetadata(constants_1.DECORATORS.API_SCHEMA, target); + if (!customSchema || customSchema.length === 0) { + return target.name; + } + return (_a = customSchema[customSchema.length - 1].name) !== null && _a !== void 0 ? _a : target.name; + } + __name(getSchemaNameByClass, "getSchemaNameByClass"); + function refs(...models) { + return models.map((item) => ({ + $ref: getSchemaPath(item.name) + })); + } + __name(refs, "refs"); + } +}); + +// node_modules/@nestjs/swagger/dist/services/swagger-types-mapper.js +var require_swagger_types_mapper = __commonJS({ + "node_modules/@nestjs/swagger/dist/services/swagger-types-mapper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SwaggerTypesMapper = void 0; + var lodash_1 = require_lodash(); + var SwaggerTypesMapper = class { + static { + __name(this, "SwaggerTypesMapper"); + } + constructor() { + this.keysToRemove = [ + "isArray", + "enum", + "enumName", + "enumSchema", + "$ref", + "selfRequired", + ...this.getSchemaOptionsKeys() + ]; + } + mapParamTypes(parameters) { + return parameters.map((param) => { + if (this.hasSchemaDefinition(param) || this.hasRawContentDefinition(param)) { + if (Array.isArray(param.required) && "schema" in param) { + param.schema.required = param.required; + delete param.required; + } + if ("selfRequired" in param) { + param.required = param.selfRequired; + } + return this.omitParamKeys(param); + } + const { type } = param; + const typeName = type && (0, lodash_1.isFunction)(type) ? this.mapTypeToOpenAPIType(type.name) : this.mapTypeToOpenAPIType(type); + const paramWithTypeMetadata = (0, lodash_1.omitBy)(Object.assign(Object.assign({}, param), { type: typeName }), lodash_1.isUndefined); + if (this.isEnumArrayType(paramWithTypeMetadata)) { + return this.mapEnumArrayType(paramWithTypeMetadata, this.keysToRemove); + } else if (paramWithTypeMetadata.isArray) { + return this.mapArrayType(paramWithTypeMetadata, this.keysToRemove); + } + return Object.assign(Object.assign({}, (0, lodash_1.omit)(param, this.keysToRemove)), { schema: (0, lodash_1.omitBy)(Object.assign(Object.assign(Object.assign({}, this.getSchemaOptions(param)), param.schema || {}), { enum: paramWithTypeMetadata.enum, type: paramWithTypeMetadata.type, $ref: paramWithTypeMetadata.$ref }), lodash_1.isUndefined) }); + }); + } + mapTypeToOpenAPIType(type) { + if (!(type && type.charAt)) { + return; + } + return type.charAt(0).toLowerCase() + type.slice(1); + } + mapEnumArrayType(param, keysToRemove) { + return Object.assign(Object.assign({}, (0, lodash_1.omit)(param, keysToRemove)), { schema: Object.assign(Object.assign({}, this.getSchemaOptions(param)), { type: "array", items: param.items }) }); + } + mapArrayType(param, keysToRemove) { + const itemsModifierKeys = ["format", "maximum", "minimum", "pattern"]; + const items = param.items || (0, lodash_1.omitBy)(Object.assign(Object.assign({}, param.schema || {}), { enum: param.enum, type: this.mapTypeToOpenAPIType(param.type) }), lodash_1.isUndefined); + const modifierProperties = (0, lodash_1.pick)(param, itemsModifierKeys); + return Object.assign(Object.assign({}, (0, lodash_1.omit)(param, keysToRemove)), { schema: Object.assign(Object.assign({}, (0, lodash_1.omit)(this.getSchemaOptions(param), [...itemsModifierKeys])), { type: "array", items: (0, lodash_1.isString)(items.type) ? Object.assign({ type: items.type }, modifierProperties) : Object.assign(Object.assign({}, items.type), modifierProperties) }) }); + } + getSchemaOptionsKeys() { + return [ + "properties", + "patternProperties", + "additionalProperties", + "minimum", + "maximum", + "maxProperties", + "minItems", + "minProperties", + "maxItems", + "minLength", + "maxLength", + "exclusiveMaximum", + "exclusiveMinimum", + "uniqueItems", + "multipleOf", + "title", + "format", + "pattern", + "nullable", + "default", + "example", + "oneOf", + "anyOf", + "type", + "items" + ]; + } + getSchemaOptions(param) { + const schemaKeys = this.getSchemaOptionsKeys(); + const optionsObject = schemaKeys.reduce((acc, key) => Object.assign(Object.assign({}, acc), { [key]: param[key] }), {}); + return (0, lodash_1.omitBy)(optionsObject, lodash_1.isUndefined); + } + isEnumArrayType(param) { + return param.isArray && param.items && param.items.enum; + } + hasSchemaDefinition(param) { + return !!param.schema; + } + hasRawContentDefinition(param) { + return "content" in param; + } + omitParamKeys(param) { + return (0, lodash_1.omit)(param, this.keysToRemove); + } + }; + exports2.SwaggerTypesMapper = SwaggerTypesMapper; + } +}); + +// node_modules/@nestjs/swagger/dist/utils/generate-schema.util.js +var require_generate_schema_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/generate-schema.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.generateSchema = generateSchema; + var model_properties_accessor_1 = require_model_properties_accessor(); + var schema_object_factory_1 = require_schema_object_factory(); + var swagger_types_mapper_1 = require_swagger_types_mapper(); + function generateSchema(target, extraSchemas = {}) { + const factory = new schema_object_factory_1.SchemaObjectFactory(new model_properties_accessor_1.ModelPropertiesAccessor(), new swagger_types_mapper_1.SwaggerTypesMapper()); + const schemas = Object.assign({}, extraSchemas); + factory.exploreModelSchema(target, schemas); + return { schema: schemas[target.name], schemas }; + } + __name(generateSchema, "generateSchema"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/index.js +var require_utils13 = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_get_schema_path_util(), exports2); + __exportStar2(require_generate_schema_util(), exports2); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/is-body-parameter.util.js +var require_is_body_parameter_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/is-body-parameter.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isBodyParameter = isBodyParameter; + function isBodyParameter(param) { + return param.in === "body"; + } + __name(isBodyParameter, "isBodyParameter"); + } +}); + +// node_modules/@nestjs/swagger/dist/services/constants.js +var require_constants9 = __commonJS({ + "node_modules/@nestjs/swagger/dist/services/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BUILT_IN_TYPES = void 0; + exports2.BUILT_IN_TYPES = [String, Boolean, Number, Object, Array]; + } +}); + +// node_modules/@nestjs/swagger/dist/utils/is-built-in-type.util.js +var require_is_built_in_type_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/is-built-in-type.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isBuiltInType = isBuiltInType; + var lodash_1 = require_lodash(); + var constants_1 = require_constants9(); + function isBuiltInType(type) { + return (0, lodash_1.isFunction)(type) && constants_1.BUILT_IN_TYPES.some((item) => item === type); + } + __name(isBuiltInType, "isBuiltInType"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/is-date-ctor.util.js +var require_is_date_ctor_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/is-date-ctor.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isDateCtor = isDateCtor; + function isDateCtor(type) { + return type === Date; + } + __name(isDateCtor, "isDateCtor"); + } +}); + +// node_modules/@nestjs/swagger/dist/services/schema-object-factory.js +var require_schema_object_factory = __commonJS({ + "node_modules/@nestjs/swagger/dist/services/schema-object-factory.js"(exports2) { + "use strict"; + var __rest2 = exports2 && exports2.__rest || function(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SchemaObjectFactory = void 0; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var helpers_1 = require_helpers2(); + var api_extra_models_explorer_1 = require_api_extra_models_explorer(); + var utils_1 = require_utils13(); + var enum_utils_1 = require_enum_utils(); + var is_body_parameter_util_1 = require_is_body_parameter_util(); + var is_built_in_type_util_1 = require_is_built_in_type_util(); + var is_date_ctor_util_1 = require_is_date_ctor_util(); + var SchemaObjectFactory = class { + static { + __name(this, "SchemaObjectFactory"); + } + constructor(modelPropertiesAccessor, swaggerTypesMapper) { + this.modelPropertiesAccessor = modelPropertiesAccessor; + this.swaggerTypesMapper = swaggerTypesMapper; + } + createFromModel(parameters, schemas) { + const parameterObjects = parameters.map((param) => { + if (this.isLazyTypeFunc(param.type)) { + [param.type, param.isArray] = (0, helpers_1.getTypeIsArrayTuple)(param.type(), void 0); + } + if (!(0, is_body_parameter_util_1.isBodyParameter)(param) && param.enumName) { + return this.createEnumParam(param, schemas); + } + if (this.isPrimitiveType(param.type)) { + return param; + } + if (this.isArrayCtor(param.type)) { + return this.mapArrayCtorParam(param); + } + if (!(0, is_body_parameter_util_1.isBodyParameter)(param)) { + return this.createQueryOrParamSchema(param, schemas); + } + return this.getCustomType(param, schemas); + }); + return (0, lodash_1.flatten)(parameterObjects); + } + getCustomType(param, schemas) { + const modelName = this.exploreModelSchema(param.type, schemas); + const name = param.name || modelName; + const schema = Object.assign(Object.assign({}, param.schema || {}), { $ref: (0, utils_1.getSchemaPath)(modelName) }); + const isArray = param.isArray; + param = (0, lodash_1.omit)(param, "isArray"); + if (isArray) { + return Object.assign(Object.assign({}, param), { name, schema: { + type: "array", + items: schema + } }); + } + return Object.assign(Object.assign({}, param), { + name, + schema + }); + } + createQueryOrParamSchema(param, schemas) { + if ((0, is_date_ctor_util_1.isDateCtor)(param.type)) { + return Object.assign(Object.assign({ format: "date-time" }, param), { type: "string" }); + } + if (this.isBigInt(param.type)) { + return Object.assign(Object.assign({ format: "int64" }, param), { type: "integer" }); + } + if ((0, lodash_1.isFunction)(param.type)) { + if (param.name) { + const customType = this.getCustomType(param, schemas); + const schemaOptionsKeys = [ + ...this.swaggerTypesMapper.getSchemaOptionsKeys(), + "allOf" + ]; + const schemaOptionsFromParam = {}; + for (const key of schemaOptionsKeys) { + if (key === "type" || key === "items") { + continue; + } + if (key in customType && !(key in (customType.schema || {}))) { + schemaOptionsFromParam[key] = customType[key]; + delete customType[key]; + } + } + if (Object.keys(schemaOptionsFromParam).length > 0) { + const existingSchema = customType.schema || {}; + if ("$ref" in existingSchema) { + const { $ref, allOf: existingAllOf } = existingSchema, restSchema = __rest2(existingSchema, ["$ref", "allOf"]); + const { allOf: paramAllOf } = schemaOptionsFromParam, restParamOptions = __rest2(schemaOptionsFromParam, ["allOf"]); + const mergedAllOf = [ + ...Array.isArray(existingAllOf) ? existingAllOf : [], + ...Array.isArray(paramAllOf) ? paramAllOf : [], + { $ref } + ]; + customType.schema = Object.assign(Object.assign(Object.assign({}, restSchema), restParamOptions), { allOf: mergedAllOf }); + } else { + const mergedSchema = Object.assign(Object.assign({}, existingSchema), schemaOptionsFromParam); + const existingAllOf = existingSchema.allOf; + const paramAllOf = schemaOptionsFromParam.allOf; + if (Array.isArray(existingAllOf) && Array.isArray(paramAllOf)) { + mergedSchema.allOf = [...existingAllOf, ...paramAllOf]; + } + customType.schema = mergedSchema; + } + } + return customType; + } + const propertiesWithType = this.extractPropertiesFromType(param.type, schemas); + if (!propertiesWithType) { + return param; + } + return propertiesWithType.map((property) => { + const keysToOmit = [ + "isArray", + "enumName", + "enumSchema", + "selfRequired" + ]; + const parameterObject = Object.assign(Object.assign({}, (0, lodash_1.omit)(property, keysToOmit)), { in: "query", required: "selfRequired" in property ? property.selfRequired : typeof property.required === "boolean" ? property.required : true }); + const keysToMoveToSchema = [ + ...this.swaggerTypesMapper.getSchemaOptionsKeys(), + "allOf" + ]; + return keysToMoveToSchema.reduce((acc, key) => { + if (key in property) { + acc.schema = Object.assign(Object.assign({}, acc.schema), { [key]: property[key] }); + delete acc[key]; + } + return acc; + }, parameterObject); + }); + } + if (this.isConstEnumObject(param.type)) { + const enumValues = (0, enum_utils_1.getEnumValues)(param.type); + const enumType = (0, enum_utils_1.getEnumType)(enumValues); + return Object.assign(Object.assign({}, param), { schema: { + type: enumType, + enum: enumValues + }, selfRequired: param.required }); + } + if (this.isObjectLiteral(param.type)) { + const schemaFromObjectLiteral = this.createFromObjectLiteral(param.name, param.type, schemas); + if (param.isArray) { + return Object.assign(Object.assign({}, param), { schema: { + type: "array", + items: (0, lodash_1.omit)(schemaFromObjectLiteral, "name") + }, selfRequired: param.required }); + } + return Object.assign(Object.assign({}, param), { schema: { + type: schemaFromObjectLiteral.type, + properties: schemaFromObjectLiteral.properties, + required: schemaFromObjectLiteral.required + }, selfRequired: param.required }); + } + return param; + } + extractPropertiesFromType(type, schemas, pendingSchemasRefs = []) { + const { prototype } = type; + if (!prototype) { + return; + } + const extraModels = (0, api_extra_models_explorer_1.exploreGlobalApiExtraModelsMetadata)(type); + extraModels.forEach((item) => this.exploreModelSchema(item, schemas, pendingSchemasRefs)); + this.modelPropertiesAccessor.applyMetadataFactory(prototype); + const modelProperties = this.modelPropertiesAccessor.getModelProperties(prototype); + const propertiesWithType = modelProperties.map((key) => { + let property; + try { + property = this.mergePropertyWithMetadata(key, prototype, schemas, pendingSchemasRefs); + } catch (err) { + if (err instanceof Error) { + const className = (type === null || type === void 0 ? void 0 : type.name) || "UnknownType"; + const prefix = `[${className}] `; + if (!err.message.startsWith(prefix)) { + err.message = `${prefix}${err.message}`; + } + } + throw err; + } + const schemaCombinators = ["oneOf", "anyOf", "allOf"]; + const declaredSchemaCombinator = schemaCombinators.find((combinator) => combinator in property); + if (declaredSchemaCombinator) { + const reflectedPropertyMetadata = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, prototype, key); + const hasDeclaredSchemaCombinator = schemaCombinators.some((combinator) => combinator in (reflectedPropertyMetadata || {})); + const schemaObjectMetadata = property; + if ((schemaObjectMetadata === null || schemaObjectMetadata === void 0 ? void 0 : schemaObjectMetadata.type) === "array" || schemaObjectMetadata.isArray) { + schemaObjectMetadata.items = {}; + schemaObjectMetadata.items[declaredSchemaCombinator] = property[declaredSchemaCombinator]; + delete property[declaredSchemaCombinator]; + } else if (hasDeclaredSchemaCombinator) { + delete schemaObjectMetadata.type; + } + } + return property; + }); + return propertiesWithType; + } + exploreModelSchema(type, schemas, pendingSchemasRefs = []) { + if (this.isLazyTypeFunc(type)) { + type = type(); + } + const propertiesWithType = this.extractPropertiesFromType(type, schemas, pendingSchemasRefs); + if (!propertiesWithType) { + return ""; + } + const extensionProperties = Reflect.getMetadata(constants_1.DECORATORS.API_EXTENSION, type) || {}; + const { schemaName, schemaProperties } = this.getSchemaMetadata(type); + const typeDefinition = Object.assign(Object.assign({ type: "object", properties: (0, lodash_1.mapValues)((0, lodash_1.keyBy)(propertiesWithType, "name"), (property) => { + const keysToOmit = [ + "name", + "isArray", + "enumName", + "enumSchema", + "selfRequired" + ]; + if ("required" in property && Array.isArray(property.required)) { + return (0, lodash_1.omit)(property, keysToOmit); + } + return (0, lodash_1.omit)(property, [...keysToOmit, "required"]); + }) }, extensionProperties), schemaProperties); + const typeDefinitionRequiredFields = propertiesWithType.filter((property) => "selfRequired" in property ? property.selfRequired != false : property.required != false && !Array.isArray(property.required)).map((property) => property.name); + if (typeDefinitionRequiredFields.length > 0) { + typeDefinition["required"] = typeDefinitionRequiredFields; + } + if (schemas[schemaName] && !(0, lodash_1.isEqual)(schemas[schemaName], typeDefinition)) { + common_12.Logger.warn(`Duplicate DTO detected: "${schemaName}" is defined multiple times with different schemas. +Consider using unique class names or applying @ApiExtraModels() decorator with custom schema names. +Note: This will throw an error in the next major version.`); + } + schemas[schemaName] = typeDefinition; + return schemaName; + } + getSchemaMetadata(type) { + var _a, _b; + const schemas = (_a = Reflect.getOwnMetadata(constants_1.DECORATORS.API_SCHEMA, type)) !== null && _a !== void 0 ? _a : []; + const _c = (_b = schemas[schemas.length - 1]) !== null && _b !== void 0 ? _b : {}, { name } = _c, schemaProperties = __rest2(_c, ["name"]); + return { schemaName: name !== null && name !== void 0 ? name : type.name, schemaProperties }; + } + mergePropertyWithMetadata(key, prototype, schemas, pendingSchemaRefs, metadata) { + if (!metadata) { + metadata = (0, lodash_1.omit)(Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, prototype, key), "link") || {}; + } + if (this.isLazyTypeFunc(metadata.type)) { + metadata.type = metadata.type(); + [metadata.type, metadata.isArray] = (0, helpers_1.getTypeIsArrayTuple)(metadata.type, metadata.isArray); + } + if (Array.isArray(metadata.type)) { + return this.createFromNestedArray(key, metadata, schemas, pendingSchemaRefs); + } + return this.createSchemaMetadata(key, metadata, schemas, pendingSchemaRefs); + } + createEnumParam(param, schemas) { + var _a, _b, _c, _d, _e; + const enumName = param.enumName; + const $ref = (0, utils_1.getSchemaPath)(enumName); + if (!(enumName in schemas)) { + const _enum = param.enum ? param.enum : param.schema ? param.schema["items"] ? param.schema["items"]["enum"] : param.schema["enum"] : param.isArray && param.items ? param.items.enum : void 0; + schemas[enumName] = Object.assign(Object.assign({ type: (_d = param.isArray ? (_b = (_a = param.schema) === null || _a === void 0 ? void 0 : _a["items"]) === null || _b === void 0 ? void 0 : _b["type"] : (_c = param.schema) === null || _c === void 0 ? void 0 : _c["type"]) !== null && _d !== void 0 ? _d : "string", enum: _enum }, param.enumSchema), param["x-enumNames"] ? { "x-enumNames": param["x-enumNames"] } : {}); + } else { + if (param.enumSchema) { + schemas[enumName] = Object.assign(Object.assign({}, schemas[enumName]), param.enumSchema); + } + } + const newSchema = param.isArray || ((_e = param.schema) === null || _e === void 0 ? void 0 : _e["items"]) ? { type: "array", items: { $ref } } : { $ref }; + return (0, lodash_1.omit)(Object.assign(Object.assign({}, param), { schema: newSchema }), ["isArray", "items", "enumName", "enum", "x-enumNames", "enumSchema"]); + } + createEnumSchemaType(key, metadata, schemas) { + var _a, _b, _c; + if (!("enumName" in metadata) || !metadata.enumName) { + return Object.assign(Object.assign({}, metadata), { name: metadata.name || key }); + } + const enumName = metadata.enumName; + const $ref = (0, utils_1.getSchemaPath)(enumName); + const enumType = (_a = metadata.isArray ? metadata.items["type"] : metadata.type) !== null && _a !== void 0 ? _a : "string"; + if (!schemas[enumName]) { + schemas[enumName] = Object.assign(Object.assign({ type: enumType }, metadata.enumSchema), { enum: metadata.isArray && metadata.items ? metadata.items["enum"] : metadata.enum, description: (_b = metadata.description) !== null && _b !== void 0 ? _b : void 0, "x-enumNames": (_c = metadata["x-enumNames"]) !== null && _c !== void 0 ? _c : void 0 }); + } else { + if (metadata.enumSchema) { + schemas[enumName] = Object.assign(Object.assign({}, schemas[enumName]), metadata.enumSchema); + } + if (metadata["x-enumNames"]) { + schemas[enumName]["x-enumNames"] = metadata["x-enumNames"]; + } + } + const _schemaObject = Object.assign(Object.assign({}, metadata), { name: metadata.name || key, type: metadata.isArray ? "array" : "string" }); + const existingCombinator = ["oneOf", "anyOf"].find((key2) => key2 in metadata && Array.isArray(metadata[key2])); + const refHost = metadata.isArray ? { items: { $ref } } : existingCombinator ? { [existingCombinator]: [...metadata[existingCombinator], { $ref }] } : { allOf: [{ $ref }] }; + const paramObject = Object.assign(Object.assign({}, _schemaObject), refHost); + const pathsToOmit = ["enum", "enumName", "enumSchema", "x-enumNames"]; + if (!metadata.isArray) { + pathsToOmit.push("type"); + } + return (0, lodash_1.omit)(paramObject, pathsToOmit); + } + createNotBuiltInTypeReference(key, metadata, trueMetadataType, schemas, pendingSchemaRefs) { + if ((0, shared_utils_1.isUndefined)(trueMetadataType)) { + const errorIn = (pendingSchemaRefs === null || pendingSchemaRefs === void 0 ? void 0 : pendingSchemaRefs.length) > 0 ? `in "${pendingSchemaRefs[pendingSchemaRefs.length - 1]}" ` : ""; + throw new Error(`A circular dependency has been detected ${errorIn}(property key: "${key}"). To resolve this, use a lazy resolver for the property type ("type: () => ClassType") on each side of the relationship, or break the cycle by introducing a reference via @ApiExtraModels.`); + } + let { schemaName: schemaObjectName } = this.getSchemaMetadata(trueMetadataType); + if (!(schemaObjectName in schemas) && !pendingSchemaRefs.includes(schemaObjectName)) { + schemaObjectName = this.exploreModelSchema(trueMetadataType, schemas, [...pendingSchemaRefs, schemaObjectName]); + } + const $ref = (0, utils_1.getSchemaPath)(schemaObjectName); + if (metadata.isArray) { + return this.transformToArraySchemaProperty(metadata, key, { $ref }); + } + const keysToRemove = ["type", "isArray", "required", "name"]; + const validMetadataObject = (0, lodash_1.omit)(metadata, keysToRemove); + const extraMetadataKeys = Object.keys(validMetadataObject); + if (extraMetadataKeys.length > 0) { + return Object.assign(Object.assign(Object.assign({ name: metadata.name || key, required: metadata.required }, validMetadataObject), validMetadataObject["nullable"] ? { type: "object" } : {}), { allOf: [{ $ref }] }); + } + return { + name: metadata.name || key, + required: metadata.required, + $ref + }; + } + transformToArraySchemaProperty(metadata, key, type) { + const keysToRemove = ["type", "enum"]; + const [movedProperties, keysToMove] = this.extractPropertyModifiers(metadata); + const schemaHost = Object.assign(Object.assign({}, (0, lodash_1.omit)(metadata, [...keysToRemove, ...keysToMove])), { name: metadata.name || key, type: "array", items: metadata.items ? Object.assign(Object.assign({}, metadata.items), movedProperties) : (0, lodash_1.isString)(type) ? Object.assign({ type }, movedProperties) : Object.assign(Object.assign({}, type), movedProperties) }); + schemaHost.items = (0, lodash_1.omitBy)(schemaHost.items, shared_utils_1.isUndefined); + return schemaHost; + } + mapArrayCtorParam(param) { + return Object.assign(Object.assign({}, (0, lodash_1.omit)(param, "type")), { schema: { + type: "array", + items: { + type: "string" + } + } }); + } + createFromObjectLiteral(key, literalObj, schemas) { + const objLiteralKeys = Object.keys(literalObj); + const properties = {}; + const required = []; + objLiteralKeys.forEach((key2) => { + var _a, _b; + const propertyCompilerMetadata = literalObj[key2]; + if ((0, enum_utils_1.isEnumArray)(propertyCompilerMetadata)) { + propertyCompilerMetadata.type = "array"; + const enumValues = (0, enum_utils_1.getEnumValues)(propertyCompilerMetadata.enum); + propertyCompilerMetadata.items = { + type: (_b = (_a = propertyCompilerMetadata.items) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : (0, enum_utils_1.getEnumType)(enumValues), + enum: enumValues + }; + delete propertyCompilerMetadata.enum; + } else if (propertyCompilerMetadata.enum) { + const enumValues = (0, enum_utils_1.getEnumValues)(propertyCompilerMetadata.enum); + propertyCompilerMetadata.enum = enumValues; + if (!propertyCompilerMetadata.type) { + propertyCompilerMetadata.type = (0, enum_utils_1.getEnumType)(enumValues); + } + } + const propertyMetadata = this.mergePropertyWithMetadata(key2, Object, schemas, [], propertyCompilerMetadata); + if ("required" in propertyMetadata && propertyMetadata.required) { + required.push(key2); + } + const keysToRemove = ["isArray", "name", "required"]; + const validMetadataObject = (0, lodash_1.omit)(propertyMetadata, keysToRemove); + properties[key2] = validMetadataObject; + }); + const schema = { + name: key, + type: "object", + properties, + required + }; + return schema; + } + createFromNestedArray(key, metadata, schemas, pendingSchemaRefs) { + const recurse = /* @__PURE__ */ __name((type) => { + if (!Array.isArray(type)) { + const schemaMetadata = this.createSchemaMetadata(key, metadata, schemas, pendingSchemaRefs, type); + return (0, lodash_1.omit)(schemaMetadata, ["isArray", "name"]); + } + return { + name: key, + type: "array", + items: recurse(type[0]) + }; + }, "recurse"); + return recurse(metadata.type); + } + createSchemaMetadata(key, metadata, schemas, pendingSchemaRefs, nestedArrayType) { + const typeRef = nestedArrayType || metadata.type; + if (metadata.enum && typeRef === Object) { + const enumValues = (0, enum_utils_1.getEnumValues)(metadata.enum); + const enumType = (0, enum_utils_1.getEnumType)(enumValues); + if (metadata.isArray) { + return this.transformToArraySchemaProperty(Object.assign(Object.assign({}, metadata), { items: { + type: enumType, + enum: enumValues + } }), key, { type: enumType, enum: enumValues }); + } + return this.createSchemaMetadata(key, Object.assign(Object.assign({}, metadata), { type: enumType, enum: enumValues }), schemas, pendingSchemaRefs, enumType); + } + if (this.isConstEnumObject(typeRef)) { + const enumValues = (0, enum_utils_1.getEnumValues)(typeRef); + const enumType = (0, enum_utils_1.getEnumType)(enumValues); + const syntheticMetadata = Object.assign(Object.assign({}, metadata), { type: enumType, enum: enumValues }); + return this.createSchemaMetadata(key, syntheticMetadata, schemas, pendingSchemaRefs, enumType); + } + if (this.isObjectLiteral(typeRef)) { + const schemaFromObjectLiteral = this.createFromObjectLiteral(key, typeRef, schemas); + if (metadata.isArray) { + return { + name: schemaFromObjectLiteral.name, + type: "array", + items: (0, lodash_1.omit)(schemaFromObjectLiteral, "name"), + selfRequired: metadata.required + }; + } + return Object.assign(Object.assign({}, schemaFromObjectLiteral), { selfRequired: metadata.required }); + } + if ((0, lodash_1.isString)(typeRef)) { + if ((0, enum_utils_1.isEnumMetadata)(metadata)) { + return this.createEnumSchemaType(key, metadata, schemas); + } + if (metadata.isArray) { + return this.transformToArraySchemaProperty(metadata, key, typeRef); + } + return Object.assign(Object.assign({}, metadata), { name: metadata.name || key }); + } + if ((0, is_date_ctor_util_1.isDateCtor)(typeRef)) { + if (metadata.isArray) { + return this.transformToArraySchemaProperty(metadata, key, { + format: metadata.format || "date-time", + type: "string" + }); + } + return Object.assign(Object.assign({ format: "date-time" }, metadata), { type: "string", name: metadata.name || key }); + } + if (this.isBigInt(typeRef)) { + return Object.assign(Object.assign({ format: "int64" }, metadata), { type: "integer", name: metadata.name || key }); + } + if (!(0, is_built_in_type_util_1.isBuiltInType)(typeRef)) { + return this.createNotBuiltInTypeReference(key, metadata, typeRef, schemas, pendingSchemaRefs); + } + const typeName = this.getTypeName(typeRef); + const itemType = this.swaggerTypesMapper.mapTypeToOpenAPIType(typeName); + if (metadata.isArray) { + return this.transformToArraySchemaProperty(metadata, key, { + type: itemType + }); + } else if (itemType === "array") { + const defaultOnArray = "string"; + const hasSchemaCombinator = ["oneOf", "anyOf", "allOf"].some((combinator) => combinator in metadata); + if (hasSchemaCombinator) { + return Object.assign(Object.assign({}, metadata), { type: void 0, name: metadata.name || key }); + } + return this.transformToArraySchemaProperty(metadata, key, { + type: defaultOnArray + }); + } + return Object.assign(Object.assign({}, metadata), { name: metadata.name || key, type: itemType }); + } + isArrayCtor(type) { + return type === Array; + } + isPrimitiveType(type) { + return (0, lodash_1.isFunction)(type) && [String, Boolean, Number].some((item) => item === type); + } + isLazyTypeFunc(type) { + return (0, lodash_1.isFunction)(type) && type.name == "type"; + } + getTypeName(type) { + return type && (0, lodash_1.isFunction)(type) ? type.name : type; + } + isObjectLiteral(obj) { + if (typeof obj !== "object" || !obj) { + return false; + } + const hasOwnProp = Object.prototype.hasOwnProperty; + let objPrototype = obj; + while (Object.getPrototypeOf(objPrototype = Object.getPrototypeOf(objPrototype)) !== null) + ; + for (const prop in obj) { + if (!hasOwnProp.call(obj, prop) && !hasOwnProp.call(objPrototype, prop)) { + return false; + } + } + return Object.getPrototypeOf(obj) === objPrototype; + } + isBigInt(type) { + return type === BigInt; + } + isConstEnumObject(obj) { + if (typeof obj !== "object" || !obj || Array.isArray(obj)) { + return false; + } + const values = Object.values(obj); + if (values.length === 0) { + return false; + } + return values.every((value) => typeof value === "string" || typeof value === "number"); + } + extractPropertyModifiers(metadata) { + const modifierKeys = [ + "format", + "maximum", + "maxLength", + "minimum", + "minLength", + "pattern" + ]; + return [(0, lodash_1.pick)(metadata, modifierKeys), modifierKeys]; + } + }; + exports2.SchemaObjectFactory = SchemaObjectFactory; + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-callbacks.explorer.js +var require_api_callbacks_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-callbacks.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiCallbacksMetadata = void 0; + var constants_1 = require_constants8(); + var utils_1 = require_utils13(); + var exploreApiCallbacksMetadata = /* @__PURE__ */ __name((instance, prototype, method) => { + const callbacksData = Reflect.getMetadata(constants_1.DECORATORS.API_CALLBACKS, method); + if (!callbacksData) + return callbacksData; + return callbacksData.reduce((acc, callbackData) => { + const { name: eventName, callbackUrl, method: callbackMethod, requestBody, expectedResponse } = callbackData; + return Object.assign(Object.assign({}, acc), { [eventName]: { + [callbackUrl]: { + [callbackMethod]: { + requestBody: { + required: true, + content: { + "application/json": { + schema: { + $ref: (0, utils_1.getSchemaPath)(requestBody.type) + } + } + } + }, + responses: { + [expectedResponse.status]: { + description: expectedResponse.description || "Your server returns this code if it accepts the callback" + } + } + } + } + } }); + }, {}); + }, "exploreApiCallbacksMetadata"); + exports2.exploreApiCallbacksMetadata = exploreApiCallbacksMetadata; + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-exclude-controller.explorer.js +var require_api_exclude_controller_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-exclude-controller.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiExcludeControllerMetadata = void 0; + var constants_1 = require_constants8(); + var exploreApiExcludeControllerMetadata = /* @__PURE__ */ __name((metatype) => { + var _a; + return ((_a = Reflect.getMetadata(constants_1.DECORATORS.API_EXCLUDE_CONTROLLER, metatype)) === null || _a === void 0 ? void 0 : _a[0]) === true; + }, "exploreApiExcludeControllerMetadata"); + exports2.exploreApiExcludeControllerMetadata = exploreApiExcludeControllerMetadata; + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-exclude-endpoint.explorer.js +var require_api_exclude_endpoint_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-exclude-endpoint.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiExcludeEndpointMetadata = void 0; + var constants_1 = require_constants8(); + var exploreApiExcludeEndpointMetadata = /* @__PURE__ */ __name((instance, prototype, method) => Reflect.getMetadata(constants_1.DECORATORS.API_EXCLUDE_ENDPOINT, method), "exploreApiExcludeEndpointMetadata"); + exports2.exploreApiExcludeEndpointMetadata = exploreApiExcludeEndpointMetadata; + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-headers.explorer.js +var require_api_headers_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-headers.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreGlobalApiHeaderMetadata = void 0; + var constants_1 = require_constants8(); + var exploreGlobalApiHeaderMetadata = /* @__PURE__ */ __name((metatype) => { + const headers = Reflect.getMetadata(constants_1.DECORATORS.API_HEADERS, metatype); + return headers ? { root: { parameters: headers }, depth: 1 } : void 0; + }, "exploreGlobalApiHeaderMetadata"); + exports2.exploreGlobalApiHeaderMetadata = exploreGlobalApiHeaderMetadata; + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-include-endpoint.explorer.js +var require_api_include_endpoint_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-include-endpoint.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiIncludeEndpointMetadata = void 0; + var constants_1 = require_constants8(); + var exploreApiIncludeEndpointMetadata = /* @__PURE__ */ __name((instance, prototype, method) => Reflect.getMetadata(constants_1.DECORATORS.API_INCLUDE_ENDPOINT, method), "exploreApiIncludeEndpointMetadata"); + exports2.exploreApiIncludeEndpointMetadata = exploreApiIncludeEndpointMetadata; + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-operation.explorer.js +var require_api_operation_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-operation.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiOperationMetadata = void 0; + var constants_1 = require_constants8(); + var api_operation_decorator_1 = require_api_operation_decorator(); + var plugin_constants_1 = require_plugin_constants(); + var exploreApiOperationMetadata = /* @__PURE__ */ __name((instance, prototype, method) => { + applyMetadataFactory(prototype, instance); + return Reflect.getMetadata(constants_1.DECORATORS.API_OPERATION, method); + }, "exploreApiOperationMetadata"); + exports2.exploreApiOperationMetadata = exploreApiOperationMetadata; + function applyMetadataFactory(prototype, instance) { + const classPrototype = prototype; + do { + if (!prototype.constructor) { + return; + } + if (!prototype.constructor[plugin_constants_1.METADATA_FACTORY_NAME]) { + continue; + } + const metadata = prototype.constructor[plugin_constants_1.METADATA_FACTORY_NAME](); + const methodKeys = Object.keys(metadata).filter((key) => typeof instance[key] === "function"); + methodKeys.forEach((key) => { + const operationMeta = {}; + const { summary, deprecated, tags, description } = metadata[key]; + applyIfNotNil(operationMeta, "summary", summary); + applyIfNotNil(operationMeta, "deprecated", deprecated); + applyIfNotNil(operationMeta, "tags", tags); + applyIfNotNil(operationMeta, "description", description); + if (Object.keys(operationMeta).length === 0) { + return; + } + (0, api_operation_decorator_1.ApiOperation)(operationMeta, { overrideExisting: false })(classPrototype, key, Object.getOwnPropertyDescriptor(classPrototype, key)); + }); + } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype && prototype); + } + __name(applyMetadataFactory, "applyMetadataFactory"); + function applyIfNotNil(target, key, value) { + if (value !== void 0 && value !== null) { + target[key] = value; + } + } + __name(applyIfNotNil, "applyIfNotNil"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/reverse-object-keys.util.js +var require_reverse_object_keys_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/reverse-object-keys.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.reverseObjectKeys = reverseObjectKeys; + function reverseObjectKeys(originalObject) { + const reversedObject = {}; + const keys = Object.keys(originalObject).reverse(); + for (const key of keys) { + reversedObject[key] = originalObject[key]; + } + return reversedObject; + } + __name(reverseObjectKeys, "reverseObjectKeys"); + } +}); + +// node_modules/@nestjs/swagger/dist/services/parameter-metadata-accessor.js +var require_parameter_metadata_accessor = __commonJS({ + "node_modules/@nestjs/swagger/dist/services/parameter-metadata-accessor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParameterMetadataAccessor = void 0; + var constants_1 = require_constants2(); + var route_paramtypes_enum_1 = require_route_paramtypes_enum(); + var lodash_1 = require_lodash(); + var reverse_object_keys_util_1 = require_reverse_object_keys_util(); + var PARAM_TOKEN_PLACEHOLDER = "placeholder"; + var ParameterMetadataAccessor = class { + static { + __name(this, "ParameterMetadataAccessor"); + } + explore(instance, prototype, method) { + const types = Reflect.getMetadata(constants_1.PARAMTYPES_METADATA, instance, method.name); + if (!(types === null || types === void 0 ? void 0 : types.length)) { + return void 0; + } + const routeArgsMetadata = Reflect.getMetadata(constants_1.ROUTE_ARGS_METADATA, instance.constructor, method.name) || {}; + const parametersWithType = (0, lodash_1.mapValues)((0, reverse_object_keys_util_1.reverseObjectKeys)(routeArgsMetadata), (param) => ({ + type: types[param.index], + name: param.data, + required: true + })); + const excludePredicate = /* @__PURE__ */ __name((val) => val.in === PARAM_TOKEN_PLACEHOLDER || val.name && val.in === "body", "excludePredicate"); + const parameters = (0, lodash_1.omitBy)((0, lodash_1.mapValues)(parametersWithType, (val, key) => Object.assign(Object.assign({}, val), { in: this.mapParamType(key) })), excludePredicate); + return !(0, lodash_1.isEmpty)(parameters) ? parameters : void 0; + } + mapParamType(key) { + const keyPair = key.split(":"); + switch (Number(keyPair[0])) { + case route_paramtypes_enum_1.RouteParamtypes.BODY: + return "body"; + case route_paramtypes_enum_1.RouteParamtypes.PARAM: + return "path"; + case route_paramtypes_enum_1.RouteParamtypes.QUERY: + return "query"; + case route_paramtypes_enum_1.RouteParamtypes.HEADERS: + return "header"; + default: + return PARAM_TOKEN_PLACEHOLDER; + } + } + }; + exports2.ParameterMetadataAccessor = ParameterMetadataAccessor; + } +}); + +// node_modules/@nestjs/swagger/dist/services/parameters-metadata-mapper.js +var require_parameters_metadata_mapper = __commonJS({ + "node_modules/@nestjs/swagger/dist/services/parameters-metadata-mapper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ParametersMetadataMapper = void 0; + var shared_utils_1 = require_shared_utils(); + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var is_body_parameter_util_1 = require_is_body_parameter_util(); + var ParametersMetadataMapper = class { + static { + __name(this, "ParametersMetadataMapper"); + } + constructor(modelPropertiesAccessor) { + this.modelPropertiesAccessor = modelPropertiesAccessor; + } + transformModelToProperties(parameters) { + const properties = (0, lodash_1.flatMap)(parameters, (param) => { + if (!param || param.type === Object || !param.type) { + return void 0; + } + if (param.name) { + return param; + } + if ((0, is_body_parameter_util_1.isBodyParameter)(param)) { + const isCtor = param.type && (0, shared_utils_1.isFunction)(param.type); + const name = isCtor ? param.type.name : param.type; + return Object.assign(Object.assign({}, param), { name }); + } + const { prototype } = param.type; + this.modelPropertiesAccessor.applyMetadataFactory(prototype); + const modelProperties = this.modelPropertiesAccessor.getModelProperties(prototype); + return modelProperties.map((key) => this.mergeImplicitWithExplicit(key, prototype, param)); + }); + return properties.filter(lodash_1.identity); + } + mergeImplicitWithExplicit(key, prototype, param) { + const reflectedParam = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, prototype, key) || {}; + return Object.assign(Object.assign(Object.assign({}, param), reflectedParam), { name: reflectedParam.name || key }); + } + }; + exports2.ParametersMetadataMapper = ParametersMetadataMapper; + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-parameters.explorer.js +var require_api_parameters_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-parameters.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiParametersMetadata = void 0; + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var model_properties_accessor_1 = require_model_properties_accessor(); + var parameter_metadata_accessor_1 = require_parameter_metadata_accessor(); + var parameters_metadata_mapper_1 = require_parameters_metadata_mapper(); + var schema_object_factory_1 = require_schema_object_factory(); + var swagger_types_mapper_1 = require_swagger_types_mapper(); + var global_parameters_storage_1 = require_global_parameters_storage(); + var parameterMetadataAccessor = new parameter_metadata_accessor_1.ParameterMetadataAccessor(); + var modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor(); + var parametersMetadataMapper = new parameters_metadata_mapper_1.ParametersMetadataMapper(modelPropertiesAccessor); + var swaggerTypesMapper = new swagger_types_mapper_1.SwaggerTypesMapper(); + var schemaObjectFactory = new schema_object_factory_1.SchemaObjectFactory(modelPropertiesAccessor, swaggerTypesMapper); + var exploreApiParametersMetadata = /* @__PURE__ */ __name((schemas, instance, prototype, method) => { + const explicitParameters = Reflect.getMetadata(constants_1.DECORATORS.API_PARAMETERS, method); + const globalParameters = global_parameters_storage_1.GlobalParametersStorage.getAll(); + const parametersMetadata = parameterMetadataAccessor.explore(instance, prototype, method); + const noExplicitAndGlobalMetadata = (0, lodash_1.isNil)(explicitParameters) && (0, lodash_1.isNil)(globalParameters); + if (noExplicitAndGlobalMetadata && (0, lodash_1.isNil)(parametersMetadata)) { + return void 0; + } + const reflectedParametersAsProperties = parametersMetadataMapper.transformModelToProperties(parametersMetadata || {}); + let properties = reflectedParametersAsProperties; + if (!noExplicitAndGlobalMetadata) { + const mergeImplicitAndExplicit = /* @__PURE__ */ __name((item) => (0, lodash_1.assign)(item, (0, lodash_1.find)(explicitParameters, ["name", item.name])), "mergeImplicitAndExplicit"); + properties = removeBodyMetadataIfExplicitExists(properties, explicitParameters); + properties = (0, lodash_1.map)(properties, mergeImplicitAndExplicit); + properties = (0, lodash_1.unionWith)(properties, explicitParameters, globalParameters, (arrVal, othVal) => { + return arrVal.name === othVal.name && arrVal.in === othVal.in; + }); + } + const paramsWithDefinitions = schemaObjectFactory.createFromModel(properties, schemas); + const parameters = swaggerTypesMapper.mapParamTypes(paramsWithDefinitions); + return parameters ? { parameters } : void 0; + }, "exploreApiParametersMetadata"); + exports2.exploreApiParametersMetadata = exploreApiParametersMetadata; + function removeBodyMetadataIfExplicitExists(properties, explicitParams) { + const isBodyReflected = (0, lodash_1.some)(properties, (p) => p.in === "body"); + const isBodyDefinedExplicitly = (0, lodash_1.some)(explicitParams, (p) => p.in === "body"); + if (isBodyReflected && isBodyDefinedExplicitly) { + return (0, lodash_1.omitBy)(properties, (p) => p.in === "body"); + } + return properties; + } + __name(removeBodyMetadataIfExplicitExists, "removeBodyMetadataIfExplicitExists"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/remove-undefined-keys.js +var require_remove_undefined_keys = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/remove-undefined-keys.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.removeUndefinedKeys = removeUndefinedKeys; + function removeUndefinedKeys(obj) { + Object.entries(obj).forEach(([key, value]) => { + if (value === void 0) { + delete obj[key]; + } + }); + return obj; + } + __name(removeUndefinedKeys, "removeUndefinedKeys"); + } +}); + +// node_modules/@nestjs/swagger/dist/services/mimetype-content-wrapper.js +var require_mimetype_content_wrapper = __commonJS({ + "node_modules/@nestjs/swagger/dist/services/mimetype-content-wrapper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MimetypeContentWrapper = void 0; + var lodash_1 = require_lodash(); + var remove_undefined_keys_1 = require_remove_undefined_keys(); + var MimetypeContentWrapper = class { + static { + __name(this, "MimetypeContentWrapper"); + } + wrap(mimetype, obj) { + const content = mimetype.reduce((acc, item) => Object.assign(Object.assign({}, acc), { [item]: (0, remove_undefined_keys_1.removeUndefinedKeys)((0, lodash_1.cloneDeep)(obj)) }), {}); + return { content }; + } + }; + exports2.MimetypeContentWrapper = MimetypeContentWrapper; + } +}); + +// node_modules/@nestjs/swagger/dist/services/response-object-mapper.js +var require_response_object_mapper = __commonJS({ + "node_modules/@nestjs/swagger/dist/services/response-object-mapper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ResponseObjectMapper = void 0; + var lodash_1 = require_lodash(); + var utils_1 = require_utils13(); + var mimetype_content_wrapper_1 = require_mimetype_content_wrapper(); + var ResponseObjectMapper = class { + static { + __name(this, "ResponseObjectMapper"); + } + constructor() { + this.mimetypeContentWrapper = new mimetype_content_wrapper_1.MimetypeContentWrapper(); + } + toArrayRefObject(response, name, produces) { + const exampleKeys = ["example", "examples"]; + const arraySchema = { + type: "array", + items: { $ref: (0, utils_1.getSchemaPath)(name) } + }; + const schema = response.nullable ? { oneOf: [arraySchema, { type: "null" }] } : arraySchema; + return Object.assign(Object.assign({}, (0, lodash_1.omit)(response, [...exampleKeys, "nullable"])), this.mimetypeContentWrapper.wrap(produces, Object.assign({ schema }, (0, lodash_1.pick)(response, exampleKeys)))); + } + toRefObject(response, name, produces) { + const exampleKeys = ["example", "examples"]; + const schema = response.nullable ? { oneOf: [{ $ref: (0, utils_1.getSchemaPath)(name) }, { type: "null" }] } : { $ref: (0, utils_1.getSchemaPath)(name) }; + return Object.assign(Object.assign({}, (0, lodash_1.omit)(response, [...exampleKeys, "nullable"])), this.mimetypeContentWrapper.wrap(produces, Object.assign({ schema }, (0, lodash_1.pick)(response, exampleKeys)))); + } + wrapSchemaWithContent(response, produces) { + if (!response.schema && !("example" in response) && !("examples" in response)) { + return response; + } + const exampleKeys = ["example", "examples"]; + const content = this.mimetypeContentWrapper.wrap(produces, Object.assign({ schema: response.schema }, (0, lodash_1.pick)(response, exampleKeys))); + const keysToOmit = [...exampleKeys, "schema"]; + return Object.assign(Object.assign({}, (0, lodash_1.omit)(response, keysToOmit)), content); + } + }; + exports2.ResponseObjectMapper = ResponseObjectMapper; + } +}); + +// node_modules/@nestjs/swagger/dist/services/response-object-factory.js +var require_response_object_factory = __commonJS({ + "node_modules/@nestjs/swagger/dist/services/response-object-factory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ResponseObjectFactory = void 0; + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var is_built_in_type_util_1 = require_is_built_in_type_util(); + var mimetype_content_wrapper_1 = require_mimetype_content_wrapper(); + var model_properties_accessor_1 = require_model_properties_accessor(); + var response_object_mapper_1 = require_response_object_mapper(); + var schema_object_factory_1 = require_schema_object_factory(); + var swagger_types_mapper_1 = require_swagger_types_mapper(); + var ResponseObjectFactory = class { + static { + __name(this, "ResponseObjectFactory"); + } + constructor() { + this.mimetypeContentWrapper = new mimetype_content_wrapper_1.MimetypeContentWrapper(); + this.modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor(); + this.swaggerTypesMapper = new swagger_types_mapper_1.SwaggerTypesMapper(); + this.schemaObjectFactory = new schema_object_factory_1.SchemaObjectFactory(this.modelPropertiesAccessor, this.swaggerTypesMapper); + this.responseObjectMapper = new response_object_mapper_1.ResponseObjectMapper(); + } + create(response, produces, schemas, factories) { + var _a; + const { type, isArray } = response; + response = (0, lodash_1.omit)(response, ["isArray"]); + if (!type) { + return this.responseObjectMapper.wrapSchemaWithContent(response, produces); + } + if ((0, is_built_in_type_util_1.isBuiltInType)(type)) { + const typeName = type && (0, lodash_1.isFunction)(type) ? type.name : type; + const swaggerType = this.swaggerTypesMapper.mapTypeToOpenAPIType(typeName); + const exampleKeys = ["example", "examples"]; + const baseSchema = isArray ? { type: "array", items: { type: swaggerType } } : { type: swaggerType }; + const schema = response.nullable ? { oneOf: [baseSchema, { type: "null" }] } : baseSchema; + const content = this.mimetypeContentWrapper.wrap(produces, Object.assign({ schema }, (0, lodash_1.pick)(response, exampleKeys))); + return Object.assign(Object.assign({}, (0, lodash_1.omit)(response, [...exampleKeys, "nullable"])), content); + } + const name = this.schemaObjectFactory.exploreModelSchema(type, schemas); + if ((0, lodash_1.isFunction)(type) && type.prototype) { + const { prototype } = type; + const links = {}; + const properties = this.modelPropertiesAccessor.getModelProperties(prototype); + const generateLink = /* @__PURE__ */ __name((controllerPrototype, method, parameter, field) => { + if (!factories) { + return; + } + const linkName = factories.linkName(controllerPrototype.constructor.name, method.name, field); + links[linkName] = { + operationId: factories.operationId(controllerPrototype.constructor.name, method.name), + parameters: { + [parameter]: `$response.body#/${field}` + } + }; + }, "generateLink"); + for (const key of properties) { + const metadata = (_a = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, prototype, key)) !== null && _a !== void 0 ? _a : {}; + if (!metadata.link) { + continue; + } + const linkedType = metadata.link(); + const linkedGetterInfo = Reflect.getMetadata(constants_1.DECORATORS.API_DEFAULT_GETTER, linkedType.prototype); + if (!linkedGetterInfo) { + continue; + } + const { getter, parameter, prototype: controllerPrototype } = linkedGetterInfo; + generateLink(controllerPrototype, getter, parameter, key); + } + const customLinks = Reflect.getMetadata(constants_1.DECORATORS.API_LINK, prototype); + for (const customLink of customLinks !== null && customLinks !== void 0 ? customLinks : []) { + const { method, parameter, field, prototype: controllerPrototype } = customLink; + generateLink(controllerPrototype, method, parameter, field); + } + if (!(0, lodash_1.isEmpty)(links)) { + response.links = Object.assign(links, response.links); + } + } + if (isArray) { + return this.responseObjectMapper.toArrayRefObject(response, name, produces); + } + return this.responseObjectMapper.toRefObject(response, name, produces); + } + }; + exports2.ResponseObjectFactory = ResponseObjectFactory; + } +}); + +// node_modules/@nestjs/swagger/dist/utils/merge-and-uniq.util.js +var require_merge_and_uniq_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/merge-and-uniq.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeAndUniq = mergeAndUniq; + var lodash_1 = require_lodash(); + function mergeAndUniq(a = [], b = []) { + return (0, lodash_1.uniq)((0, lodash_1.merge)(a, b)); + } + __name(mergeAndUniq, "mergeAndUniq"); + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-response.explorer.js +var require_api_response_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-response.explorer.js"(exports2) { + "use strict"; + var __rest2 = exports2 && exports2.__rest || function(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiResponseMetadata = exports2.exploreGlobalApiResponseMetadata = void 0; + var common_12 = require_common(); + var constants_1 = require_constants2(); + var shared_utils_1 = require_shared_utils(); + var lodash_1 = require_lodash(); + var constants_2 = require_constants8(); + var decorators_1 = require_decorators5(); + var plugin_constants_1 = require_plugin_constants(); + var response_object_factory_1 = require_response_object_factory(); + var global_responses_storage_1 = require_global_responses_storage(); + var merge_and_uniq_util_1 = require_merge_and_uniq_util(); + var responseObjectFactory = new response_object_factory_1.ResponseObjectFactory(); + var exploreGlobalApiResponseMetadata = /* @__PURE__ */ __name((schemas, metatype, factories) => { + const responses = Reflect.getMetadata(constants_2.DECORATORS.API_RESPONSE, metatype); + const globalResponses = global_responses_storage_1.GlobalResponsesStorage.getAll(); + const mappedGlobalResponsesOrUndefined = globalResponses ? mapResponsesToSwaggerResponses(globalResponses, schemas, void 0, factories) : void 0; + const produces = Reflect.getMetadata(constants_2.DECORATORS.API_PRODUCES, metatype); + return responses ? { + responses: Object.assign(Object.assign({}, mappedGlobalResponsesOrUndefined), mapResponsesToSwaggerResponses(responses, schemas, produces, factories)) + } : mappedGlobalResponsesOrUndefined ? { + responses: mappedGlobalResponsesOrUndefined + } : void 0; + }, "exploreGlobalApiResponseMetadata"); + exports2.exploreGlobalApiResponseMetadata = exploreGlobalApiResponseMetadata; + var exploreApiResponseMetadata = /* @__PURE__ */ __name((schemas, factories, instance, prototype, method, metatype) => { + applyMetadataFactory(prototype, instance); + const responses = Reflect.getMetadata(constants_2.DECORATORS.API_RESPONSE, method); + if (responses) { + const classProduces = Reflect.getMetadata(constants_2.DECORATORS.API_PRODUCES, metatype !== null && metatype !== void 0 ? metatype : prototype === null || prototype === void 0 ? void 0 : prototype.constructor); + const methodProduces = Reflect.getMetadata(constants_2.DECORATORS.API_PRODUCES, method); + const produces = (0, merge_and_uniq_util_1.mergeAndUniq)(classProduces, methodProduces); + return mapResponsesToSwaggerResponses(responses, schemas, produces, factories); + } + const status = getStatusCode(method); + if (status) { + return { [status]: { description: "" } }; + } + return void 0; + }, "exploreApiResponseMetadata"); + exports2.exploreApiResponseMetadata = exploreApiResponseMetadata; + var getStatusCode = /* @__PURE__ */ __name((method) => { + const status = Reflect.getMetadata(constants_1.HTTP_CODE_METADATA, method); + if (status) { + return status; + } + const requestMethod = Reflect.getMetadata(constants_1.METHOD_METADATA, method); + switch (requestMethod) { + case common_12.RequestMethod.POST: + return common_12.HttpStatus.CREATED; + default: + return common_12.HttpStatus.OK; + } + }, "getStatusCode"); + var omitParamType = /* @__PURE__ */ __name((param) => (0, lodash_1.omit)(param, "type"), "omitParamType"); + var mapResponsesToSwaggerResponses = /* @__PURE__ */ __name((responses, schemas, produces = ["application/json"], factories) => { + produces = (0, shared_utils_1.isEmpty)(produces) ? ["application/json"] : produces; + const openApiResponses = (0, lodash_1.mapValues)(responses, (response) => responseObjectFactory.create(response, produces, schemas, factories)); + return (0, lodash_1.mapValues)(openApiResponses, omitParamType); + }, "mapResponsesToSwaggerResponses"); + function applyMetadataFactory(prototype, instance) { + const classPrototype = prototype; + do { + if (!prototype.constructor) { + return; + } + if (!prototype.constructor[plugin_constants_1.METADATA_FACTORY_NAME]) { + continue; + } + const metadata = prototype.constructor[plugin_constants_1.METADATA_FACTORY_NAME](); + const methodKeys = Object.keys(metadata).filter((key) => typeof instance[key] === "function"); + methodKeys.forEach((key) => { + const _a = metadata[key], { summary, deprecated, tags } = _a, meta = __rest2(_a, ["summary", "deprecated", "tags"]); + if (Object.keys(meta).length === 0) { + return; + } + if (meta.status === void 0) { + meta.status = getStatusCode(instance[key]); + } + (0, decorators_1.ApiResponse)(meta, { overrideExisting: false })(classPrototype, key, Object.getOwnPropertyDescriptor(classPrototype, key)); + }); + } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype && prototype); + } + __name(applyMetadataFactory, "applyMetadataFactory"); + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-security.explorer.js +var require_api_security_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-security.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiSecurityMetadata = exports2.exploreGlobalApiSecurityMetadata = void 0; + var constants_1 = require_constants8(); + var exploreGlobalApiSecurityMetadata = /* @__PURE__ */ __name((metatype) => { + const security = Reflect.getMetadata(constants_1.DECORATORS.API_SECURITY, metatype); + return security ? { security } : void 0; + }, "exploreGlobalApiSecurityMetadata"); + exports2.exploreGlobalApiSecurityMetadata = exploreGlobalApiSecurityMetadata; + var exploreApiSecurityMetadata = /* @__PURE__ */ __name((instance, prototype, method) => { + return Reflect.getMetadata(constants_1.DECORATORS.API_SECURITY, method); + }, "exploreApiSecurityMetadata"); + exports2.exploreApiSecurityMetadata = exploreApiSecurityMetadata; + } +}); + +// node_modules/@nestjs/swagger/dist/explorers/api-use-tags.explorer.js +var require_api_use_tags_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/explorers/api-use-tags.explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.exploreApiTagsMetadata = exports2.exploreGlobalApiTagsMetadata = void 0; + var constants_1 = require_constants8(); + var exploreGlobalApiTagsMetadata = /* @__PURE__ */ __name((autoTagControllers) => (metatype) => { + const decoratorTags = Reflect.getMetadata(constants_1.DECORATORS.API_TAGS, metatype); + const isEmpty = !decoratorTags || decoratorTags.length === 0; + if (isEmpty && autoTagControllers) { + const defaultTag = metatype.name.replace(/Controller$/, ""); + return { + tags: [defaultTag] + }; + } + return isEmpty ? void 0 : { tags: decoratorTags }; + }, "exploreGlobalApiTagsMetadata"); + exports2.exploreGlobalApiTagsMetadata = exploreGlobalApiTagsMetadata; + var exploreApiTagsMetadata = /* @__PURE__ */ __name((instance, prototype, method) => Reflect.getMetadata(constants_1.DECORATORS.API_TAGS, method), "exploreApiTagsMetadata"); + exports2.exploreApiTagsMetadata = exploreApiTagsMetadata; + } +}); + +// node_modules/@nestjs/swagger/dist/swagger-explorer.js +var require_swagger_explorer = __commonJS({ + "node_modules/@nestjs/swagger/dist/swagger-explorer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SwaggerExplorer = void 0; + var common_12 = require_common(); + var constants_1 = require_constants2(); + var interfaces_1 = require_interfaces(); + var shared_utils_1 = require_shared_utils(); + var core_12 = require_core3(); + var legacy_route_converter_1 = require_legacy_route_converter(); + var route_path_factory_1 = require_route_path_factory(); + var lodash_1 = require_lodash(); + var path_to_regexp_1 = require_dist2(); + var constants_2 = require_constants8(); + var api_callbacks_explorer_1 = require_api_callbacks_explorer(); + var api_exclude_controller_explorer_1 = require_api_exclude_controller_explorer(); + var api_exclude_endpoint_explorer_1 = require_api_exclude_endpoint_explorer(); + var api_extra_models_explorer_1 = require_api_extra_models_explorer(); + var api_headers_explorer_1 = require_api_headers_explorer(); + var api_include_endpoint_explorer_1 = require_api_include_endpoint_explorer(); + var api_operation_explorer_1 = require_api_operation_explorer(); + var api_parameters_explorer_1 = require_api_parameters_explorer(); + var api_response_explorer_1 = require_api_response_explorer(); + var api_security_explorer_1 = require_api_security_explorer(); + var api_use_tags_explorer_1 = require_api_use_tags_explorer(); + var mimetype_content_wrapper_1 = require_mimetype_content_wrapper(); + var is_body_parameter_util_1 = require_is_body_parameter_util(); + var merge_and_uniq_util_1 = require_merge_and_uniq_util(); + var SwaggerExplorer = class { + static { + __name(this, "SwaggerExplorer"); + } + constructor(schemaObjectFactory, options = {}) { + this.schemaObjectFactory = schemaObjectFactory; + this.options = options; + this.mimetypeContentWrapper = new mimetype_content_wrapper_1.MimetypeContentWrapper(); + this.metadataScanner = new core_12.MetadataScanner(); + this.schemas = {}; + this.operationIdFactory = (controllerKey, methodKey, version) => version ? controllerKey ? `${controllerKey}_${methodKey}_${version}` : `${methodKey}_${version}` : controllerKey ? `${controllerKey}_${methodKey}` : methodKey; + this.linkNameFactory = (controllerKey, methodKey, fieldKey) => controllerKey ? `${controllerKey}_${methodKey}_from_${fieldKey}` : `${methodKey}_from_${fieldKey}`; + } + exploreController(wrapper, applicationConfig, options) { + const { operationIdFactory, linkNameFactory } = options; + this.routePathFactory = new route_path_factory_1.RoutePathFactory(applicationConfig); + if (operationIdFactory) { + this.operationIdFactory = operationIdFactory; + } + if (linkNameFactory) { + this.linkNameFactory = linkNameFactory; + } + const { instance, metatype } = wrapper; + const prototype = Object.getPrototypeOf(instance); + const documentResolvers = { + root: [ + this.exploreRoutePathAndMethod, + api_operation_explorer_1.exploreApiOperationMetadata, + api_parameters_explorer_1.exploreApiParametersMetadata.bind(null, this.schemas) + ], + security: [api_security_explorer_1.exploreApiSecurityMetadata], + tags: [api_use_tags_explorer_1.exploreApiTagsMetadata], + callbacks: [api_callbacks_explorer_1.exploreApiCallbacksMetadata], + responses: [ + api_response_explorer_1.exploreApiResponseMetadata.bind(null, this.schemas, { + operationId: this.operationIdFactory, + linkName: this.linkNameFactory + }) + ] + }; + return this.generateDenormalizedDocument(metatype, prototype, instance, documentResolvers, applicationConfig, options); + } + getSchemas() { + return this.schemas; + } + generateDenormalizedDocument(metatype, prototype, instance, documentResolvers, applicationConfig, options) { + const self2 = this; + const excludeController = (0, api_exclude_controller_explorer_1.exploreApiExcludeControllerMetadata)(metatype); + if (excludeController) { + return []; + } + const globalMetadata = this.exploreGlobalMetadata(metatype, { + autoTagControllers: options.autoTagControllers + }); + const ctrlExtraModels = (0, api_extra_models_explorer_1.exploreGlobalApiExtraModelsMetadata)(metatype); + this.registerExtraModels(ctrlExtraModels); + const denormalizedPaths = this.metadataScanner.scanFromPrototype(instance, prototype, (name) => { + const targetCallback = prototype[name]; + const includeEndpoint = (0, api_include_endpoint_explorer_1.exploreApiIncludeEndpointMetadata)(instance, prototype, targetCallback); + if (options.onlyIncludeDecoratedEndpoints && !includeEndpoint) { + return; + } + const excludeEndpoint = (0, api_exclude_endpoint_explorer_1.exploreApiExcludeEndpointMetadata)(instance, prototype, targetCallback); + if (excludeEndpoint && excludeEndpoint.disable) { + return; + } + const ctrlExtraModels2 = (0, api_extra_models_explorer_1.exploreApiExtraModelsMetadata)(instance, prototype, targetCallback); + this.registerExtraModels(ctrlExtraModels2); + const methodMetadata = (0, lodash_1.mapValues)(documentResolvers, (explorers) => explorers.reduce((metadata, fn) => { + const exploredMetadata = fn.call(self2, instance, prototype, targetCallback, metatype, options.globalPrefix, options.modulePath, applicationConfig, options.autoTagControllers); + if (!exploredMetadata) { + return metadata; + } + if (!(0, lodash_1.isArray)(exploredMetadata)) { + if (Array.isArray(metadata)) { + return metadata.map((item) => Object.assign(Object.assign({}, item), exploredMetadata)); + } + return Object.assign(Object.assign({}, metadata), exploredMetadata); + } + return (0, lodash_1.isArray)(metadata) ? [...metadata, ...exploredMetadata] : exploredMetadata; + }, {})); + if (Array.isArray(methodMetadata.root)) { + return methodMetadata.root.map((endpointMetadata) => { + endpointMetadata = (0, lodash_1.cloneDeep)(Object.assign(Object.assign({}, methodMetadata), { root: endpointMetadata })); + const mergedMethodMetadata2 = this.mergeMetadata(globalMetadata, (0, lodash_1.omitBy)(endpointMetadata, lodash_1.isEmpty)); + return this.migrateOperationSchema(Object.assign(Object.assign({ responses: {} }, (0, lodash_1.omit)(globalMetadata, "chunks")), mergedMethodMetadata2), prototype, targetCallback, metatype); + }); + } + const mergedMethodMetadata = this.mergeMetadata(globalMetadata, (0, lodash_1.omitBy)(methodMetadata, lodash_1.isEmpty)); + return [ + this.migrateOperationSchema(Object.assign(Object.assign({ responses: {} }, (0, lodash_1.omit)(globalMetadata, "chunks")), mergedMethodMetadata), prototype, targetCallback, metatype) + ]; + }); + return (0, lodash_1.flatten)(denormalizedPaths).filter((path) => { + var _a; + return (_a = path.root) === null || _a === void 0 ? void 0 : _a.path; + }); + } + exploreGlobalMetadata(metatype, options) { + const globalExplorers = [ + (0, api_use_tags_explorer_1.exploreGlobalApiTagsMetadata)(options.autoTagControllers), + api_security_explorer_1.exploreGlobalApiSecurityMetadata, + api_response_explorer_1.exploreGlobalApiResponseMetadata.bind(null, this.schemas), + api_headers_explorer_1.exploreGlobalApiHeaderMetadata + ]; + const globalMetadata = globalExplorers.map((explorer) => explorer.call(explorer, metatype)).filter((val) => !(0, shared_utils_1.isUndefined)(val)).reduce((curr, next) => { + if (next.depth) { + return Object.assign(Object.assign({}, curr), { chunks: (curr.chunks || []).concat(next) }); + } + return Object.assign(Object.assign({}, curr), next); + }, {}); + return globalMetadata; + } + exploreRoutePathAndMethod(instance, prototype, method, metatype, globalPrefix, modulePath, applicationConfig) { + const methodPath = Reflect.getMetadata(constants_1.PATH_METADATA, method); + if ((0, shared_utils_1.isUndefined)(methodPath)) { + return void 0; + } + const requestMethod = Reflect.getMetadata(constants_1.METHOD_METADATA, method); + const webhookMetadata = Reflect.getMetadata(constants_2.DECORATORS.API_WEBHOOK, method); + const isWebhook = Boolean(webhookMetadata); + const methodVersion = Reflect.getMetadata(constants_1.VERSION_METADATA, method); + const versioningOptions = applicationConfig.getVersioning(); + const controllerVersion = this.getVersionMetadata(metatype, versioningOptions); + const versionOrVersions = methodVersion !== null && methodVersion !== void 0 ? methodVersion : controllerVersion; + const versions = this.getRoutePathVersions(versionOrVersions, versioningOptions); + const allRoutePaths = this.routePathFactory.create({ + methodPath, + methodVersion, + modulePath, + globalPrefix, + controllerVersion, + ctrlPath: this.reflectControllerPath(metatype), + versioningOptions: applicationConfig.getVersioning() + }, requestMethod); + return (0, lodash_1.flatten)(allRoutePaths.map((routePath, index) => { + const fullPath = this.validateRoutePath(routePath); + const apiExtension = Reflect.getMetadata(constants_2.DECORATORS.API_EXTENSION, method); + if (requestMethod === common_12.RequestMethod.ALL) { + const validMethods = [ + "get", + "post", + "put", + "delete", + "patch", + "options", + "head", + "search" + ]; + return validMethods.map((requestMethod2) => Object.assign(Object.assign(Object.assign({ method: requestMethod2, path: fullPath === "" ? "/" : fullPath }, isWebhook ? { + isWebhook: true, + webhookName: typeof webhookMetadata === "string" ? webhookMetadata : method.name + } : {}), { operationId: `${this.getOperationId(instance, method.name)}_${requestMethod2.toLowerCase()}` }), apiExtension)); + } + const pathVersion = versions.find((v) => fullPath.includes(`/${v}/`) || fullPath.endsWith(`/${v}`)); + const isAlias = allRoutePaths.length > 1 && allRoutePaths.length !== versions.length; + const methodKey = isAlias ? `${method.name}[${index}]` : method.name; + const nonPathVersion = this.getNonPathVersion(methodVersion, metatype, versioningOptions); + const operationVersion = pathVersion !== null && pathVersion !== void 0 ? pathVersion : nonPathVersion; + return Object.assign(Object.assign(Object.assign({ method: common_12.RequestMethod[requestMethod].toLowerCase(), path: fullPath === "" ? "/" : fullPath }, isWebhook ? { + isWebhook: true, + webhookName: typeof webhookMetadata === "string" ? webhookMetadata : method.name + } : {}), { operationId: this.getOperationId(instance, methodKey, operationVersion) }), apiExtension); + })); + } + getOperationId(instance, methodKey, version) { + var _a; + return this.operationIdFactory(((_a = instance.constructor) === null || _a === void 0 ? void 0 : _a.name) || "", methodKey, version); + } + getRoutePathVersions(versionValue, versioningOptions) { + let versions = []; + if (!versionValue || (versioningOptions === null || versioningOptions === void 0 ? void 0 : versioningOptions.type) !== common_12.VersioningType.URI) { + return versions; + } + if (Array.isArray(versionValue)) { + versions = versionValue.filter((v) => v !== interfaces_1.VERSION_NEUTRAL); + } else if (versionValue !== interfaces_1.VERSION_NEUTRAL) { + versions = [versionValue]; + } + const prefix = this.routePathFactory.getVersionPrefix(versioningOptions); + versions = versions.map((v) => `${prefix}${v}`); + return versions; + } + reflectControllerPath(metatype) { + return Reflect.getMetadata(constants_1.PATH_METADATA, metatype); + } + validateRoutePath(path) { + if ((0, shared_utils_1.isUndefined)(path)) { + return ""; + } + if (Array.isArray(path)) { + path = (0, lodash_1.head)(path); + } + let pathWithParams = ""; + try { + let normalizedPath = legacy_route_converter_1.LegacyRouteConverter.tryConvert(path, { + logs: this.options.httpAdapterType !== "fastify" + }); + normalizedPath = normalizedPath.replace(/::/g, "\\:"); + normalizedPath = normalizedPath.replace(/\[:\]/g, "\\:"); + normalizedPath = normalizedPath.replace(/\(\^([^)]+)\)/g, ""); + const { tokens } = (0, path_to_regexp_1.parse)(normalizedPath); + for (const item of tokens) { + if (item.type === "text") { + pathWithParams += item.value; + } else if (item.type === "param") { + pathWithParams += `{${item.name}}`; + } else if (item.type === "wildcard") { + pathWithParams += `{${item.name}}`; + } else if (item.type === "group") { + pathWithParams += item.tokens.reduce((acc, item2) => acc + (item2.type === "text" ? item2.value : `{${item2.name}}`), ""); + } + } + } catch (err) { + if (err instanceof TypeError) { + legacy_route_converter_1.LegacyRouteConverter.printError(path); + } + throw err; + } + return pathWithParams === "/" ? "" : (0, shared_utils_1.addLeadingSlash)(pathWithParams); + } + mergeMetadata(globalMetadata, methodMetadata) { + if (methodMetadata.root && !methodMetadata.root.parameters) { + methodMetadata.root.parameters = []; + } + const deepMerge = /* @__PURE__ */ __name((metadata) => (value, key) => { + if (!metadata[key]) { + return value; + } + const globalValue = metadata[key]; + if (metadata.depth) { + return this.deepMergeMetadata(globalValue, value, metadata.depth); + } + return this.mergeValues(globalValue, value); + }, "deepMerge"); + if (globalMetadata.chunks) { + const { chunks } = globalMetadata; + chunks.forEach((chunk) => { + methodMetadata = (0, lodash_1.mapValues)(methodMetadata, deepMerge(chunk)); + }); + } + return (0, lodash_1.mapValues)(methodMetadata, deepMerge(globalMetadata)); + } + deepMergeMetadata(globalValue, methodValue, maxDepth, currentDepthLevel = 0) { + if (currentDepthLevel === maxDepth) { + return this.mergeValues(globalValue, methodValue); + } + return (0, lodash_1.mapValues)(methodValue, (value, key) => { + if (key in globalValue) { + return this.deepMergeMetadata(globalValue[key], methodValue[key], maxDepth, currentDepthLevel + 1); + } + return value; + }); + } + mergeValues(globalValue, methodValue) { + if (!(0, lodash_1.isArray)(globalValue)) { + return Object.assign(Object.assign({}, globalValue), methodValue); + } + return [...globalValue, ...methodValue]; + } + migrateOperationSchema(document2, prototype, method, metatype) { + const parametersObject = (0, lodash_1.get)(document2, "root.parameters"); + const requestBodyIndex = (parametersObject || []).findIndex(is_body_parameter_util_1.isBodyParameter); + if (requestBodyIndex < 0) { + return document2; + } + const requestBody = parametersObject[requestBodyIndex]; + parametersObject.splice(requestBodyIndex, 1); + const classConsumes = Reflect.getMetadata(constants_2.DECORATORS.API_CONSUMES, metatype !== null && metatype !== void 0 ? metatype : prototype === null || prototype === void 0 ? void 0 : prototype.constructor); + const methodConsumes = Reflect.getMetadata(constants_2.DECORATORS.API_CONSUMES, method); + let consumes = (0, merge_and_uniq_util_1.mergeAndUniq)(classConsumes, methodConsumes); + consumes = (0, lodash_1.isEmpty)(consumes) ? ["application/json"] : consumes; + const keysToRemove = ["schema", "in", "name", "examples", "encoding"]; + document2.root.requestBody = Object.assign(Object.assign({}, (0, lodash_1.omit)(requestBody, keysToRemove)), this.mimetypeContentWrapper.wrap(consumes, (0, lodash_1.pick)(requestBody, ["schema", "examples", "encoding"]))); + return document2; + } + registerExtraModels(extraModels) { + extraModels.forEach((item) => this.schemaObjectFactory.exploreModelSchema(item, this.schemas)); + } + getVersionMetadata(metatype, versioningOptions) { + var _a; + if ((versioningOptions === null || versioningOptions === void 0 ? void 0 : versioningOptions.type) === common_12.VersioningType.URI) { + return (_a = Reflect.getMetadata(constants_1.VERSION_METADATA, metatype)) !== null && _a !== void 0 ? _a : versioningOptions.defaultVersion; + } + } + getNonPathVersion(methodVersion, metatype, versioningOptions) { + var _a; + if (!versioningOptions || versioningOptions.type === common_12.VersioningType.URI) { + return void 0; + } + const version = (_a = methodVersion !== null && methodVersion !== void 0 ? methodVersion : Reflect.getMetadata(constants_1.VERSION_METADATA, metatype)) !== null && _a !== void 0 ? _a : versioningOptions.defaultVersion; + if (!version || version === interfaces_1.VERSION_NEUTRAL) { + return void 0; + } + if (Array.isArray(version)) { + const filtered = version.filter((v) => v !== interfaces_1.VERSION_NEUTRAL); + return filtered.length > 0 ? filtered[0] : void 0; + } + return version; + } + }; + exports2.SwaggerExplorer = SwaggerExplorer; + } +}); + +// node_modules/@nestjs/swagger/dist/utils/sort-object-lexicographically.js +var require_sort_object_lexicographically = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/sort-object-lexicographically.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sortObjectLexicographically = sortObjectLexicographically; + function sortObjectLexicographically(obj) { + const sortedKeys = Object.keys(obj).sort(); + const sortedObj = {}; + for (const key of sortedKeys) { + sortedObj[key] = obj[key]; + } + return sortedObj; + } + __name(sortObjectLexicographically, "sortObjectLexicographically"); + } +}); + +// node_modules/@nestjs/swagger/dist/swagger-transformer.js +var require_swagger_transformer = __commonJS({ + "node_modules/@nestjs/swagger/dist/swagger-transformer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SwaggerTransformer = void 0; + var lodash_1 = require_lodash(); + var sort_object_lexicographically_1 = require_sort_object_lexicographically(); + var SwaggerTransformer = class { + static { + __name(this, "SwaggerTransformer"); + } + normalizePaths(denormalizedDoc) { + const roots = denormalizedDoc.filter((doc) => Boolean(doc.root)); + const webhookRoots = roots.filter(({ root }) => Boolean(root.isWebhook)); + const pathRoots = roots.filter(({ root }) => !root.isWebhook); + const groupedByPath = (0, lodash_1.groupBy)(pathRoots, ({ root }) => root.path); + const paths = (0, lodash_1.mapValues)(groupedByPath, (routes) => { + const keyByMethod = (0, lodash_1.keyBy)(routes, ({ root }) => root.method); + return (0, lodash_1.mapValues)(keyByMethod, (route) => { + const mergedDefinition = Object.assign(Object.assign({}, (0, lodash_1.omit)(route, "root")), (0, lodash_1.omit)(route.root, ["method", "path", "isWebhook", "webhookName"])); + return (0, sort_object_lexicographically_1.sortObjectLexicographically)(mergedDefinition); + }); + }); + const groupedByWebhookName = (0, lodash_1.groupBy)(webhookRoots, ({ root }) => root.webhookName || root.path); + const webhooks = (0, lodash_1.mapValues)(groupedByWebhookName, (routes) => { + const keyByMethod = (0, lodash_1.keyBy)(routes, ({ root }) => root.method); + return (0, lodash_1.mapValues)(keyByMethod, (route) => { + const mergedDefinition = Object.assign(Object.assign({}, (0, lodash_1.omit)(route, "root")), (0, lodash_1.omit)(route.root, ["method", "path", "isWebhook", "webhookName"])); + return (0, sort_object_lexicographically_1.sortObjectLexicographically)(mergedDefinition); + }); + }); + const groupedByWebhookPath = (0, lodash_1.groupBy)(webhookRoots, ({ root }) => root.path); + const webhookPaths = (0, lodash_1.mapValues)(groupedByWebhookPath, (routes) => { + const keyByMethod = (0, lodash_1.keyBy)(routes, ({ root }) => root.method); + return (0, lodash_1.mapValues)(keyByMethod, (route) => { + const mergedDefinition = Object.assign(Object.assign({}, (0, lodash_1.omit)(route, "root")), (0, lodash_1.omit)(route.root, ["method", "path", "isWebhook", "webhookName"])); + return (0, sort_object_lexicographically_1.sortObjectLexicographically)(mergedDefinition); + }); + }); + return Object.assign(Object.assign({ paths }, Object.keys(webhooks).length > 0 ? { webhooks } : {}), Object.keys(webhookPaths).length > 0 ? { webhookPaths } : {}); + } + }; + exports2.SwaggerTransformer = SwaggerTransformer; + } +}); + +// node_modules/@nestjs/swagger/dist/utils/apply-example-max-depth.util.js +var require_apply_example_max_depth_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/apply-example-max-depth.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.applyExampleMaxDepth = applyExampleMaxDepth; + function applyExampleMaxDepth(schemas, globalMaxDepth) { + for (const schema of Object.values(schemas)) { + walkSchema(schema, globalMaxDepth); + } + } + __name(applyExampleMaxDepth, "applyExampleMaxDepth"); + function walkSchema(schema, globalMaxDepth) { + if (!schema || typeof schema !== "object") { + return; + } + const perPropOverride = typeof schema.exampleMaxDepth === "number" ? schema.exampleMaxDepth : void 0; + const effectiveMax = perPropOverride !== void 0 ? perPropOverride : globalMaxDepth; + if (effectiveMax !== void 0) { + if ("example" in schema) { + schema.example = trimExampleValue(schema.example, effectiveMax); + } + if ("examples" in schema && Array.isArray(schema.examples)) { + schema.examples = schema.examples.map((entry) => trimExampleValue(entry, effectiveMax)); + } + } + if ("exampleMaxDepth" in schema) { + delete schema.exampleMaxDepth; + } + if (schema.properties && typeof schema.properties === "object") { + for (const prop of Object.values(schema.properties)) { + walkSchema(prop, globalMaxDepth); + } + } + if (schema.items) { + walkSchema(schema.items, globalMaxDepth); + } + for (const key of ["allOf", "oneOf", "anyOf"]) { + const combinator = schema[key]; + if (Array.isArray(combinator)) { + for (const sub of combinator) { + walkSchema(sub, globalMaxDepth); + } + } + } + if (schema.additionalProperties && typeof schema.additionalProperties === "object") { + walkSchema(schema.additionalProperties, globalMaxDepth); + } + } + __name(walkSchema, "walkSchema"); + function trimExampleValue(value, remainingDepth, path = /* @__PURE__ */ new WeakSet()) { + if (value === null || typeof value !== "object") { + return value; + } + const isArray = Array.isArray(value); + if (!isArray && value.constructor !== Object) { + return value; + } + if (remainingDepth <= 0) { + return isArray ? [] : {}; + } + if (path.has(value)) { + return isArray ? [] : {}; + } + path.add(value); + try { + if (isArray) { + return value.map((entry) => trimExampleValue(entry, remainingDepth - 1, path)); + } + const trimmed = {}; + for (const [key, child] of Object.entries(value)) { + trimmed[key] = trimExampleValue(child, remainingDepth - 1, path); + } + return trimmed; + } finally { + path.delete(value); + } + } + __name(trimExampleValue, "trimExampleValue"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/get-global-prefix.js +var require_get_global_prefix = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/get-global-prefix.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getGlobalPrefix = getGlobalPrefix; + function getGlobalPrefix(app) { + const internalConfigRef = app.config; + return internalConfigRef && internalConfigRef.getGlobalPrefix() || ""; + } + __name(getGlobalPrefix, "getGlobalPrefix"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/strip-dynamic-defaults.util.js +var require_strip_dynamic_defaults_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/strip-dynamic-defaults.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.stripDynamicDefaults = stripDynamicDefaults; + function isDynamicDefault(value) { + if (value === null || value === void 0 || typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + return false; + } + if (typeof value === "function") { + return true; + } + if (Array.isArray(value)) { + return false; + } + if (typeof value === "object" && value.constructor === Object) { + return false; + } + return true; + } + __name(isDynamicDefault, "isDynamicDefault"); + function stripDynamicDefaults(schemas) { + for (const schema of Object.values(schemas)) { + stripFromSchema(schema); + } + } + __name(stripDynamicDefaults, "stripDynamicDefaults"); + function stripFromSchema(schema) { + if (!schema || typeof schema !== "object") { + return; + } + if ("default" in schema && isDynamicDefault(schema.default)) { + delete schema.default; + } + if (schema.properties) { + for (const prop of Object.values(schema.properties)) { + stripFromSchema(prop); + } + } + if (schema.items) { + stripFromSchema(schema.items); + } + for (const key of ["allOf", "oneOf", "anyOf"]) { + if (schema[key]) { + for (const sub of schema[key]) { + stripFromSchema(sub); + } + } + } + } + __name(stripFromSchema, "stripFromSchema"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/strip-last-slash.util.js +var require_strip_last_slash_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/strip-last-slash.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.stripLastSlash = stripLastSlash; + function stripLastSlash(path) { + return path && path[path.length - 1] === "/" ? path.slice(0, path.length - 1) : path; + } + __name(stripLastSlash, "stripLastSlash"); + } +}); + +// node_modules/@nestjs/swagger/dist/swagger-scanner.js +var require_swagger_scanner = __commonJS({ + "node_modules/@nestjs/swagger/dist/swagger-scanner.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SwaggerScanner = void 0; + var constants_1 = require_constants2(); + var lodash_1 = require_lodash(); + var model_properties_accessor_1 = require_model_properties_accessor(); + var schema_object_factory_1 = require_schema_object_factory(); + var swagger_types_mapper_1 = require_swagger_types_mapper(); + var swagger_explorer_1 = require_swagger_explorer(); + var swagger_transformer_1 = require_swagger_transformer(); + var apply_example_max_depth_util_1 = require_apply_example_max_depth_util(); + var get_global_prefix_1 = require_get_global_prefix(); + var strip_dynamic_defaults_util_1 = require_strip_dynamic_defaults_util(); + var strip_last_slash_util_1 = require_strip_last_slash_util(); + var SwaggerScanner = class { + static { + __name(this, "SwaggerScanner"); + } + constructor() { + this.transformer = new swagger_transformer_1.SwaggerTransformer(); + this.schemaObjectFactory = new schema_object_factory_1.SchemaObjectFactory(new model_properties_accessor_1.ModelPropertiesAccessor(), new swagger_types_mapper_1.SwaggerTypesMapper()); + } + scanApplication(app, options) { + const { deepScanRoutes, include: includedModules = [], extraModels = [], ignoreGlobalPrefix = false, operationIdFactory, linkNameFactory, autoTagControllers = true, onlyIncludeDecoratedEndpoints = false, excludeDynamicDefaults = false, exampleMaxDepth } = options; + const untypedApp = app; + const container = untypedApp.container; + const internalConfigRef = untypedApp.config; + const httpAdapterType = app.getHttpAdapter().getType(); + this.initializeSwaggerExplorer(httpAdapterType); + const modules = this.getModules(container.getModules(), includedModules); + const globalPrefix = !ignoreGlobalPrefix ? (0, strip_last_slash_util_1.stripLastSlash)((0, get_global_prefix_1.getGlobalPrefix)(app)) : ""; + const denormalizedPaths = modules.map(({ controllers, metatype, imports }) => { + let result = []; + if (deepScanRoutes) { + const isGlobal = /* @__PURE__ */ __name((module3) => !container.isGlobalModule(module3), "isGlobal"); + Array.from(imports.values()).filter(isGlobal).forEach(({ metatype: metatype2, controllers: controllers2 }) => { + const modulePath2 = this.getModulePathMetadata(container, metatype2); + result = result.concat(this.scanModuleControllers(controllers2, internalConfigRef, { + modulePath: modulePath2, + globalPrefix, + operationIdFactory, + linkNameFactory, + autoTagControllers, + onlyIncludeDecoratedEndpoints + })); + }); + } + const modulePath = this.getModulePathMetadata(container, metatype); + return result.concat(this.scanModuleControllers(controllers, internalConfigRef, { + modulePath, + globalPrefix, + operationIdFactory, + linkNameFactory, + autoTagControllers, + onlyIncludeDecoratedEndpoints + })); + }); + const schemas = this.explorer.getSchemas(); + this.addExtraModels(schemas, extraModels); + if (excludeDynamicDefaults) { + (0, strip_dynamic_defaults_util_1.stripDynamicDefaults)(schemas); + } + (0, apply_example_max_depth_util_1.applyExampleMaxDepth)(schemas, exampleMaxDepth); + return Object.assign(Object.assign({}, this.transformer.normalizePaths((0, lodash_1.flatten)(denormalizedPaths))), { components: { + schemas + } }); + } + scanModuleControllers(controller, applicationConfig, options) { + const denormalizedArray = [...controller.values()].map((ctrl) => this.explorer.exploreController(ctrl, applicationConfig, options)); + return (0, lodash_1.flatten)(denormalizedArray); + } + getModules(modulesContainer, include) { + if (!include || (0, lodash_1.isEmpty)(include)) { + return [...modulesContainer.values()]; + } + return [...modulesContainer.values()].filter(({ metatype }) => include.some((item) => item === metatype)); + } + addExtraModels(schemas, extraModels) { + extraModels.forEach((item) => { + this.schemaObjectFactory.exploreModelSchema(item, schemas); + }); + } + getModulePathMetadata(container, metatype) { + const modulesContainer = container.getModules(); + const modulePath = Reflect.getMetadata(constants_1.MODULE_PATH + modulesContainer.applicationId, metatype); + return modulePath !== null && modulePath !== void 0 ? modulePath : Reflect.getMetadata(constants_1.MODULE_PATH, metatype); + } + initializeSwaggerExplorer(httpAdapterType) { + if (this.explorer) { + return; + } + this.explorer = new swagger_explorer_1.SwaggerExplorer(this.schemaObjectFactory, { + httpAdapterType + }); + } + }; + exports2.SwaggerScanner = SwaggerScanner; + } +}); + +// node_modules/@nestjs/swagger/dist/swagger-ui/constants.js +var require_constants10 = __commonJS({ + "node_modules/@nestjs/swagger/dist/swagger-ui/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.jsTemplateString = exports2.htmlTemplateString = exports2.favIconHtml = void 0; + exports2.favIconHtml = ''; + exports2.htmlTemplateString = ` + + + + + + <% title %> + + <% favIconString %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +<% customJs %> +<% customJsStr %> +<% customCssUrl %> + + + + +`; + exports2.jsTemplateString = ` +window.onload = function() { + // Build a system + let url = window.location.search.match(/url=([^&]+)/); + if (url && url.length > 1) { + url = decodeURIComponent(url[1]); + } else { + url = window.location.origin; + } + <% swaggerOptions %> + url = options.swaggerUrl || url + let urls = options.swaggerUrls + let customOptions = options.customOptions + let spec1 = options.swaggerDoc + let swaggerOptions = { + spec: spec1, + url: url, + urls: urls, + dom_id: '#swagger-ui', + deepLinking: true, + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + } + for (let attrname in customOptions) { + swaggerOptions[attrname] = customOptions[attrname]; + } + let ui = SwaggerUIBundle(swaggerOptions) + + if (customOptions.initOAuth) { + ui.initOAuth(customOptions.initOAuth) + } + + if (customOptions.authAction) { + ui.authActions.authorize(customOptions.authAction) + } + + window.ui = ui +} +`; + } +}); + +// node_modules/@nestjs/swagger/dist/swagger-ui/helpers.js +var require_helpers3 = __commonJS({ + "node_modules/@nestjs/swagger/dist/swagger-ui/helpers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.buildJSInitOptions = buildJSInitOptions; + var crypto_1 = require("crypto"); + function buildJSInitOptions(initOptions) { + const fns = []; + const placeholders = []; + let json = JSON.stringify(initOptions, (key, value) => { + if (typeof value === "function") { + const placeholder = (0, crypto_1.randomUUID)(); + fns.push(value); + placeholders.push(placeholder); + return placeholder; + } + return value; + }, 2); + placeholders.forEach((placeholder, i) => { + json = json.replace(`"${placeholder}"`, () => fns[i].toString()); + }); + return `let options = ${json};`; + } + __name(buildJSInitOptions, "buildJSInitOptions"); + } +}); + +// node_modules/swagger-ui-dist/absolute-path.js +var require_absolute_path = __commonJS({ + "node_modules/swagger-ui-dist/absolute-path.js"(exports2, module2) { + var getAbsoluteFSPath = /* @__PURE__ */ __name(function() { + if (typeof module2 !== "undefined" && module2.exports) { + return require("path").resolve(__dirname); + } + throw new Error("getAbsoluteFSPath can only be called within a Nodejs environment"); + }, "getAbsoluteFSPath"); + module2.exports = getAbsoluteFSPath; + } +}); + +// node_modules/@nestjs/swagger/dist/swagger-ui/swagger-ui.js +var require_swagger_ui = __commonJS({ + "node_modules/@nestjs/swagger/dist/swagger-ui/swagger-ui.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.buildSwaggerInitJS = buildSwaggerInitJS; + exports2.getSwaggerAssetsAbsoluteFSPath = getSwaggerAssetsAbsoluteFSPath; + exports2.buildSwaggerHTML = buildSwaggerHTML; + var constants_1 = require_constants10(); + var helpers_1 = require_helpers3(); + function buildSwaggerInitJS(swaggerDoc, customOptions = {}) { + const { swaggerOptions = {}, swaggerUrl } = customOptions; + const swaggerInitOptions = { + swaggerDoc, + swaggerUrl, + customOptions: swaggerOptions + }; + const jsInitOptions = (0, helpers_1.buildJSInitOptions)(swaggerInitOptions); + return constants_1.jsTemplateString.replace("<% swaggerOptions %>", jsInitOptions); + } + __name(buildSwaggerInitJS, "buildSwaggerInitJS"); + var swaggerAssetsAbsoluteFSPath; + function getSwaggerAssetsAbsoluteFSPath() { + if (!swaggerAssetsAbsoluteFSPath) { + swaggerAssetsAbsoluteFSPath = require_absolute_path()(); + } + return swaggerAssetsAbsoluteFSPath; + } + __name(getSwaggerAssetsAbsoluteFSPath, "getSwaggerAssetsAbsoluteFSPath"); + function toExternalScriptTag(url) { + return ``; + } + __name(toExternalScriptTag, "toExternalScriptTag"); + function toInlineScriptTag(jsCode) { + return ``; + } + __name(toInlineScriptTag, "toInlineScriptTag"); + function toExternalStylesheetTag(url) { + return ``; + } + __name(toExternalStylesheetTag, "toExternalStylesheetTag"); + function toTags(customCode, toScript) { + if (!customCode) { + return ""; + } + if (typeof customCode === "string") { + return toScript(customCode); + } else { + return customCode.map(toScript).join("\n"); + } + } + __name(toTags, "toTags"); + function buildSwaggerHTML(baseUrl, customOptions = {}) { + const { customCss = "", customJs = "", customJsStr = "", customfavIcon = false, customSiteTitle = "Swagger UI", customCssUrl = "", explorer = false } = customOptions; + const favIconString = customfavIcon ? `` : constants_1.favIconHtml; + const explorerCss = explorer ? "" : ".swagger-ui .topbar .download-url-wrapper { display: none }"; + return constants_1.htmlTemplateString.replace("<% customCss %>", () => customCss).replace("<% explorerCss %>", () => explorerCss).replace("<% favIconString %>", () => favIconString).replace(/<% baseUrl %>/g, () => baseUrl).replace("<% customJs %>", () => toTags(customJs, toExternalScriptTag)).replace("<% customJsStr %>", () => toTags(customJsStr, toInlineScriptTag)).replace("<% customCssUrl %>", () => toTags(customCssUrl, toExternalStylesheetTag)).replace("<% title %>", () => customSiteTitle); + } + __name(buildSwaggerHTML, "buildSwaggerHTML"); + } +}); + +// node_modules/@nestjs/swagger/dist/swagger-ui/index.js +var require_swagger_ui2 = __commonJS({ + "node_modules/@nestjs/swagger/dist/swagger-ui/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_swagger_ui(), exports2); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/assign-two-levels-deep.js +var require_assign_two_levels_deep = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/assign-two-levels-deep.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.assignTwoLevelsDeep = assignTwoLevelsDeep; + function assignTwoLevelsDeep(_dest, ...args) { + const dest = _dest; + for (const arg of args) { + for (const [key, value] of Object.entries(arg !== null && arg !== void 0 ? arg : {})) { + dest[key] = Object.assign(Object.assign({}, dest[key]), value); + } + } + return dest; + } + __name(assignTwoLevelsDeep, "assignTwoLevelsDeep"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/is-oas31-or-later.util.js +var require_is_oas31_or_later_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/is-oas31-or-later.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isOas31OrLater = isOas31OrLater; + function isOas31OrLater(openApiVersion) { + const [major, minor] = openApiVersion.split(".").map((part) => Number(part)); + const safeMajor = Number.isNaN(major) ? 0 : major; + const safeMinor = Number.isNaN(minor) ? 0 : minor; + return safeMajor > 3 || safeMajor === 3 && safeMinor >= 1; + } + __name(isOas31OrLater, "isOas31OrLater"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/normalize-rel-path.js +var require_normalize_rel_path = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/normalize-rel-path.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.normalizeRelPath = normalizeRelPath; + function normalizeRelPath(input) { + const output = input.replace(/\/\/+/g, "/"); + return output; + } + __name(normalizeRelPath, "normalizeRelPath"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/resolve-path.util.js +var require_resolve_path_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/resolve-path.util.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ (function() { + var ownKeys2 = /* @__PURE__ */ __name(function(o) { + ownKeys2 = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys2(o); + }, "ownKeys"); + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys2(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding2(result, mod, k[i]); + } + __setModuleDefault2(result, mod); + return result; + }; + })(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.resolvePath = resolvePath; + var pathLib = __importStar2(require("path")); + function resolvePath(path) { + return path ? pathLib.resolve(path) : path; + } + __name(resolvePath, "resolvePath"); + } +}); + +// node_modules/@nestjs/swagger/dist/utils/validate-global-prefix.util.js +var require_validate_global_prefix_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/validate-global-prefix.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.validateGlobalPrefix = void 0; + var validateGlobalPrefix = /* @__PURE__ */ __name((globalPrefix) => globalPrefix && !globalPrefix.match(/^(\/?)$/), "validateGlobalPrefix"); + exports2.validateGlobalPrefix = validateGlobalPrefix; + } +}); + +// node_modules/@nestjs/swagger/dist/utils/validate-path.util.js +var require_validate_path_util = __commonJS({ + "node_modules/@nestjs/swagger/dist/utils/validate-path.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.validatePath = void 0; + var validatePath = /* @__PURE__ */ __name((inputPath) => inputPath.charAt(0) !== "/" ? "/" + inputPath : inputPath, "validatePath"); + exports2.validatePath = validatePath; + } +}); + +// node_modules/@nestjs/swagger/dist/swagger-module.js +var require_swagger_module = __commonJS({ + "node_modules/@nestjs/swagger/dist/swagger-module.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ (function() { + var ownKeys2 = /* @__PURE__ */ __name(function(o) { + ownKeys2 = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys2(o); + }, "ownKeys"); + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys2(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding2(result, mod, k[i]); + } + __setModuleDefault2(result, mod); + return result; + }; + })(); + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + __name(adopt, "adopt"); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + __name(fulfilled, "fulfilled"); + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + __name(rejected, "rejected"); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + __name(step, "step"); + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __rest2 = exports2 && exports2.__rest || function(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SwaggerModule = void 0; + var common_12 = require_common(); + var jsyaml = __importStar2(require_js_yaml_cjs()); + var metadata_loader_1 = require_metadata_loader(); + var swagger_scanner_1 = require_swagger_scanner(); + var swagger_ui_1 = require_swagger_ui2(); + var assign_two_levels_deep_1 = require_assign_two_levels_deep(); + var get_global_prefix_1 = require_get_global_prefix(); + var is_oas31_or_later_util_1 = require_is_oas31_or_later_util(); + var normalize_rel_path_1 = require_normalize_rel_path(); + var resolve_path_util_1 = require_resolve_path_util(); + var validate_global_prefix_util_1 = require_validate_global_prefix_util(); + var validate_path_util_1 = require_validate_path_util(); + var SwaggerModule = class _SwaggerModule { + static { + __name(this, "SwaggerModule"); + } + static mergeWebhooks(configWebhooks, scannedWebhooks) { + if (!configWebhooks && !scannedWebhooks) { + return void 0; + } + return (0, assign_two_levels_deep_1.assignTwoLevelsDeep)({}, configWebhooks || {}, scannedWebhooks || {}); + } + static createDocument(app, config, options = {}) { + var _a; + const swaggerScanner = new swagger_scanner_1.SwaggerScanner(); + const document2 = swaggerScanner.scanApplication(app, options); + const _b = config, { webhooks: configWebhooks } = _b, configWithoutWebhooks = __rest2(_b, ["webhooks"]); + document2.components = (0, assign_two_levels_deep_1.assignTwoLevelsDeep)({}, config.components, document2.components); + const _c = document2, { webhooks: scannedWebhooks, webhookPaths } = _c, documentWithoutWebhooks = __rest2(_c, ["webhooks", "webhookPaths"]); + const mergedWebhooks = _SwaggerModule.mergeWebhooks(configWebhooks, scannedWebhooks); + const shouldIncludeWebhooks = (0, is_oas31_or_later_util_1.isOas31OrLater)((_a = config.openapi) !== null && _a !== void 0 ? _a : "3.0.0"); + const baseDocument = Object.assign(Object.assign({ openapi: "3.0.0", paths: {} }, configWithoutWebhooks), documentWithoutWebhooks); + if (shouldIncludeWebhooks) { + return Object.assign(Object.assign({}, baseDocument), mergedWebhooks ? { webhooks: mergedWebhooks } : {}); + } + return Object.assign(Object.assign({}, baseDocument), { paths: webhookPaths ? (0, assign_two_levels_deep_1.assignTwoLevelsDeep)({}, baseDocument.paths || {}, webhookPaths) : baseDocument.paths }); + } + static loadPluginMetadata(metadataFn) { + return __awaiter2(this, void 0, void 0, function* () { + const metadata = yield metadataFn(); + return this.metadataLoader.load(metadata); + }); + } + static serveStatic(finalPath, app, customStaticPath) { + const httpAdapter = app.getHttpAdapter(); + const swaggerAssetsPath = customStaticPath ? (0, resolve_path_util_1.resolvePath)(customStaticPath) : (0, swagger_ui_1.getSwaggerAssetsAbsoluteFSPath)(); + if (httpAdapter && httpAdapter.getType() === "fastify") { + app.useStaticAssets({ + root: swaggerAssetsPath, + prefix: finalPath, + decorateReply: false + }); + } else { + app.useStaticAssets(swaggerAssetsPath, { + prefix: finalPath + }); + } + } + static serveDocuments(finalPath, urlLastSubdirectory, httpAdapter, documentOrFactory, options) { + let document2; + const getBuiltDocument = /* @__PURE__ */ __name(() => { + if (!document2) { + document2 = typeof documentOrFactory === "function" ? documentOrFactory() : documentOrFactory; + } + return document2; + }, "getBuiltDocument"); + if (options.ui) { + this.serveSwaggerUi(finalPath, urlLastSubdirectory, httpAdapter, getBuiltDocument, options.swaggerOptions); + } + if (options.raw === true || Array.isArray(options.raw) && options.raw.length > 0) { + const serveJson = options.raw === true || options.raw.includes("json"); + const serveYaml = options.raw === true || options.raw.includes("yaml"); + this.serveDefinitions(httpAdapter, getBuiltDocument, options, { + serveJson, + serveYaml + }); + } + } + static serveSwaggerUi(finalPath, urlLastSubdirectory, httpAdapter, getBuiltDocument, swaggerOptions) { + const baseUrlForSwaggerUI = (0, normalize_rel_path_1.normalizeRelPath)(`./${urlLastSubdirectory}/`); + let swaggerUiHtml; + let swaggerUiHtmlForTrailingSlash; + let swaggerUiInitJS; + httpAdapter.get((0, normalize_rel_path_1.normalizeRelPath)(`${finalPath}/swagger-ui-init.js`), (req, res) => __awaiter2(this, void 0, void 0, function* () { + res.type("application/javascript"); + const document2 = getBuiltDocument(); + if (swaggerOptions.patchDocumentOnRequest) { + const documentToSerialize = yield Promise.resolve(swaggerOptions.patchDocumentOnRequest(req, res, document2)); + const swaggerInitJsPerRequest = (0, swagger_ui_1.buildSwaggerInitJS)(documentToSerialize, swaggerOptions); + return res.send(swaggerInitJsPerRequest); + } + if (!swaggerUiInitJS) { + swaggerUiInitJS = (0, swagger_ui_1.buildSwaggerInitJS)(document2, swaggerOptions); + } + return res.send(swaggerUiInitJS); + })); + try { + httpAdapter.get((0, normalize_rel_path_1.normalizeRelPath)(`${finalPath}/${urlLastSubdirectory}/swagger-ui-init.js`), (req, res) => __awaiter2(this, void 0, void 0, function* () { + res.type("application/javascript"); + const document2 = getBuiltDocument(); + if (swaggerOptions.patchDocumentOnRequest) { + const documentToSerialize = yield Promise.resolve(swaggerOptions.patchDocumentOnRequest(req, res, document2)); + const swaggerInitJsPerRequest = (0, swagger_ui_1.buildSwaggerInitJS)(documentToSerialize, swaggerOptions); + return res.send(swaggerInitJsPerRequest); + } + if (!swaggerUiInitJS) { + swaggerUiInitJS = (0, swagger_ui_1.buildSwaggerInitJS)(document2, swaggerOptions); + } + return res.send(swaggerUiInitJS); + })); + } catch (_a) { + } + const getSwaggerHtml = /* @__PURE__ */ __name(() => { + if (!swaggerUiHtml) { + swaggerUiHtml = (0, swagger_ui_1.buildSwaggerHTML)(baseUrlForSwaggerUI, swaggerOptions); + } + return swaggerUiHtml; + }, "getSwaggerHtml"); + const getTrailingSlashSwaggerHtml = /* @__PURE__ */ __name(() => { + if (!swaggerUiHtmlForTrailingSlash) { + swaggerUiHtmlForTrailingSlash = (0, swagger_ui_1.buildSwaggerHTML)("./", swaggerOptions); + } + return swaggerUiHtmlForTrailingSlash; + }, "getTrailingSlashSwaggerHtml"); + function serveSwaggerHtml(req, res) { + res.type("text/html"); + const url = httpAdapter.getRequestUrl(req); + const hasTrailingSlash = url.endsWith("/"); + const swaggerUiHtml2 = hasTrailingSlash ? getTrailingSlashSwaggerHtml() : getSwaggerHtml(); + res.send(swaggerUiHtml2); + } + __name(serveSwaggerHtml, "serveSwaggerHtml"); + httpAdapter.get(finalPath, serveSwaggerHtml); + httpAdapter.get(`${finalPath}/index.html`, serveSwaggerHtml); + httpAdapter.get(`${finalPath}/LICENSE`, () => { + throw new common_12.NotFoundException(); + }); + try { + httpAdapter.get((0, normalize_rel_path_1.normalizeRelPath)(`${finalPath}/`), serveSwaggerHtml); + } catch (_b) { + } + } + static serveDefinitions(httpAdapter, getBuiltDocument, options, serveOptions) { + if (serveOptions.serveJson) { + httpAdapter.get((0, normalize_rel_path_1.normalizeRelPath)(options.jsonDocumentUrl), (req, res) => __awaiter2(this, void 0, void 0, function* () { + res.type("application/json"); + const document2 = getBuiltDocument(); + const documentToSerialize = options.swaggerOptions.patchDocumentOnRequest ? yield Promise.resolve(options.swaggerOptions.patchDocumentOnRequest(req, res, document2)) : document2; + return res.send(JSON.stringify(documentToSerialize)); + })); + } + if (serveOptions.serveYaml) { + httpAdapter.get((0, normalize_rel_path_1.normalizeRelPath)(options.yamlDocumentUrl), (req, res) => __awaiter2(this, void 0, void 0, function* () { + res.type("text/yaml"); + const document2 = getBuiltDocument(); + const documentToSerialize = options.swaggerOptions.patchDocumentOnRequest ? yield Promise.resolve(options.swaggerOptions.patchDocumentOnRequest(req, res, document2)) : document2; + const yamlDocument = jsyaml.dump(documentToSerialize, { + skipInvalid: true, + noRefs: true + }); + return res.send(yamlDocument); + })); + } + } + static setup(path, app, documentOrFactory, options) { + var _a, _b, _c; + const globalPrefix = (0, get_global_prefix_1.getGlobalPrefix)(app); + const finalPath = (0, validate_path_util_1.validatePath)((options === null || options === void 0 ? void 0 : options.useGlobalPrefix) && (0, validate_global_prefix_util_1.validateGlobalPrefix)(globalPrefix) ? `${globalPrefix}${(0, validate_path_util_1.validatePath)(path)}` : path); + const urlLastSubdirectory = finalPath.split("/").slice(-1).pop() || ""; + const validatedGlobalPrefix = (options === null || options === void 0 ? void 0 : options.useGlobalPrefix) && (0, validate_global_prefix_util_1.validateGlobalPrefix)(globalPrefix) ? (0, validate_path_util_1.validatePath)(globalPrefix) : ""; + const finalJSONDocumentPath = (options === null || options === void 0 ? void 0 : options.jsonDocumentUrl) ? `${validatedGlobalPrefix}${(0, validate_path_util_1.validatePath)(options.jsonDocumentUrl)}` : `${finalPath}-json`; + const finalYAMLDocumentPath = (options === null || options === void 0 ? void 0 : options.yamlDocumentUrl) ? `${validatedGlobalPrefix}${(0, validate_path_util_1.validatePath)(options.yamlDocumentUrl)}` : `${finalPath}-yaml`; + const ui = (_b = (_a = options === null || options === void 0 ? void 0 : options.ui) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.swaggerUiEnabled) !== null && _b !== void 0 ? _b : true; + const raw2 = (_c = options === null || options === void 0 ? void 0 : options.raw) !== null && _c !== void 0 ? _c : true; + const httpAdapter = app.getHttpAdapter(); + _SwaggerModule.serveDocuments(finalPath, urlLastSubdirectory, httpAdapter, documentOrFactory, { + ui, + raw: raw2, + jsonDocumentUrl: finalJSONDocumentPath, + yamlDocumentUrl: finalYAMLDocumentPath, + swaggerOptions: options || {} + }); + if (ui) { + _SwaggerModule.serveStatic(finalPath, app, options === null || options === void 0 ? void 0 : options.customSwaggerUiPath); + if (finalPath === `/${urlLastSubdirectory}`) { + return; + } + const serveStaticSlashEndingPath = `${finalPath}/${urlLastSubdirectory}`; + _SwaggerModule.serveStatic(serveStaticSlashEndingPath, app); + } + } + }; + exports2.SwaggerModule = SwaggerModule; + SwaggerModule.metadataLoader = new metadata_loader_1.MetadataLoader(); + } +}); + +// node_modules/@nestjs/mapped-types/dist/type-helpers.utils.js +var require_type_helpers_utils = __commonJS({ + "node_modules/@nestjs/mapped-types/dist/type-helpers.utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.applyIsOptionalDecorator = applyIsOptionalDecorator; + exports2.applyValidateIfDefinedDecorator = applyValidateIfDefinedDecorator; + exports2.inheritValidationMetadata = inheritValidationMetadata; + exports2.inheritTransformationMetadata = inheritTransformationMetadata; + exports2.inheritPropertyInitializers = inheritPropertyInitializers; + var common_12 = require_common(); + var logger = new common_12.Logger("MappedTypes"); + function applyIsOptionalDecorator(targetClass, propertyKey) { + if (!isClassValidatorAvailable()) { + return; + } + const classValidator = require_cjs(); + const decoratorFactory = classValidator.IsOptional(); + decoratorFactory(targetClass.prototype, propertyKey); + } + __name(applyIsOptionalDecorator, "applyIsOptionalDecorator"); + function applyValidateIfDefinedDecorator(targetClass, propertyKey) { + if (!isClassValidatorAvailable()) { + return; + } + const classValidator = require_cjs(); + const decoratorFactory = classValidator.ValidateIf((_, value) => value !== void 0); + decoratorFactory(targetClass.prototype, propertyKey); + } + __name(applyValidateIfDefinedDecorator, "applyValidateIfDefinedDecorator"); + function inheritValidationMetadata(parentClass, targetClass, isPropertyInherited) { + if (!isClassValidatorAvailable()) { + return; + } + try { + const classValidator = require_cjs(); + const metadataStorage = classValidator.getMetadataStorage ? classValidator.getMetadataStorage() : classValidator.getFromContainer(classValidator.MetadataStorage); + const getTargetValidationMetadatasArgs = [parentClass, null, false, false]; + const targetMetadata = metadataStorage.getTargetValidationMetadatas(...getTargetValidationMetadatasArgs); + return targetMetadata.filter(({ propertyName }) => !isPropertyInherited || isPropertyInherited(propertyName)).map((value) => { + const originalType = Reflect.getMetadata("design:type", parentClass.prototype, value.propertyName); + if (originalType) { + Reflect.defineMetadata("design:type", originalType, targetClass.prototype, value.propertyName); + } + metadataStorage.addValidationMetadata({ + ...value, + target: targetClass + }); + return value.propertyName; + }); + } catch (err) { + logger.error(`Validation ("class-validator") metadata cannot be inherited for "${parentClass.name}" class.`); + logger.error(err); + } + } + __name(inheritValidationMetadata, "inheritValidationMetadata"); + function inheritTransformationMetadata(parentClass, targetClass, isPropertyInherited, stackDecorators = true) { + if (!isClassTransformerAvailable()) { + return; + } + try { + const transformMetadataKeys = [ + "_excludeMetadatas", + "_exposeMetadatas", + "_transformMetadatas", + "_typeMetadatas" + ]; + transformMetadataKeys.forEach((key) => inheritTransformerMetadata(key, parentClass, targetClass, isPropertyInherited, stackDecorators)); + } catch (err) { + logger.error(`Transformer ("class-transformer") metadata cannot be inherited for "${parentClass.name}" class.`); + logger.error(err); + } + } + __name(inheritTransformationMetadata, "inheritTransformationMetadata"); + function inheritTransformerMetadata(key, parentClass, targetClass, isPropertyInherited, stackDecorators = true) { + let classTransformer; + try { + classTransformer = require_storage(); + } catch { + classTransformer = require_storage(); + } + const metadataStorage = classTransformer.defaultMetadataStorage; + while (parentClass && parentClass !== Object) { + if (metadataStorage[key].has(parentClass)) { + const metadataMap = metadataStorage[key]; + const parentMetadata = metadataMap.get(parentClass); + const targetMetadataEntries = Array.from(parentMetadata.entries()).filter(([key2]) => !isPropertyInherited || isPropertyInherited(key2)).map(([key2, metadata]) => { + if (Array.isArray(metadata)) { + const targetMetadata = metadata.map((item) => ({ + ...item, + target: targetClass + })); + return [key2, targetMetadata]; + } + return [key2, { ...metadata, target: targetClass }]; + }); + if (metadataMap.has(targetClass)) { + const existingRules = metadataMap.get(targetClass).entries(); + const mergeMap = /* @__PURE__ */ new Map(); + [existingRules, targetMetadataEntries].forEach((entries) => { + for (const [valueKey, value] of entries) { + if (mergeMap.has(valueKey) && stackDecorators) { + const parentValue = mergeMap.get(valueKey); + if (Array.isArray(parentValue)) { + parentValue.push(...Array.isArray(value) ? value : [value]); + } + } else { + mergeMap.set(valueKey, value); + } + } + }); + metadataMap.set(targetClass, mergeMap); + } else { + metadataMap.set(targetClass, new Map(targetMetadataEntries)); + } + } + parentClass = Object.getPrototypeOf(parentClass); + } + } + __name(inheritTransformerMetadata, "inheritTransformerMetadata"); + function isClassValidatorAvailable() { + try { + require_cjs(); + return true; + } catch { + return false; + } + } + __name(isClassValidatorAvailable, "isClassValidatorAvailable"); + function isClassTransformerAvailable() { + try { + require_cjs2(); + return true; + } catch { + return false; + } + } + __name(isClassTransformerAvailable, "isClassTransformerAvailable"); + function inheritPropertyInitializers(target, sourceClass, isPropertyInherited = (key) => true) { + try { + const tempInstance = new sourceClass(); + const propertyNames = Object.getOwnPropertyNames(tempInstance); + propertyNames.filter((propertyName) => typeof tempInstance[propertyName] !== "undefined" && typeof target[propertyName] === "undefined").filter((propertyName) => isPropertyInherited(propertyName)).forEach((propertyName) => { + target[propertyName] = tempInstance[propertyName]; + }); + } catch { + } + } + __name(inheritPropertyInitializers, "inheritPropertyInitializers"); + } +}); + +// node_modules/@nestjs/mapped-types/dist/intersection-type.helper.js +var require_intersection_type_helper = __commonJS({ + "node_modules/@nestjs/mapped-types/dist/intersection-type.helper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IntersectionType = IntersectionType; + var type_helpers_utils_1 = require_type_helpers_utils(); + function IntersectionType(...classRefs) { + class IntersectionClassType { + static { + __name(this, "IntersectionClassType"); + } + constructor() { + classRefs.forEach((classRef) => { + (0, type_helpers_utils_1.inheritPropertyInitializers)(this, classRef); + }); + } + } + classRefs.forEach((classRef) => { + (0, type_helpers_utils_1.inheritValidationMetadata)(classRef, IntersectionClassType); + (0, type_helpers_utils_1.inheritTransformationMetadata)(classRef, IntersectionClassType, void 0, false); + }); + const intersectedNames = classRefs.reduce((prev, ref) => prev + ref.name, ""); + Object.defineProperty(IntersectionClassType, "name", { + value: `Intersection${intersectedNames}` + }); + return IntersectionClassType; + } + __name(IntersectionType, "IntersectionType"); + } +}); + +// node_modules/@nestjs/mapped-types/dist/mapped-type.interface.js +var require_mapped_type_interface = __commonJS({ + "node_modules/@nestjs/mapped-types/dist/mapped-type.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/mapped-types/dist/omit-type.helper.js +var require_omit_type_helper = __commonJS({ + "node_modules/@nestjs/mapped-types/dist/omit-type.helper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.OmitType = OmitType; + var type_helpers_utils_1 = require_type_helpers_utils(); + function OmitType(classRef, keys) { + const isInheritedPredicate = /* @__PURE__ */ __name((propertyKey) => !keys.includes(propertyKey), "isInheritedPredicate"); + class OmitClassType { + static { + __name(this, "OmitClassType"); + } + constructor() { + (0, type_helpers_utils_1.inheritPropertyInitializers)(this, classRef, isInheritedPredicate); + } + } + (0, type_helpers_utils_1.inheritValidationMetadata)(classRef, OmitClassType, isInheritedPredicate); + (0, type_helpers_utils_1.inheritTransformationMetadata)(classRef, OmitClassType, isInheritedPredicate); + return OmitClassType; + } + __name(OmitType, "OmitType"); + } +}); + +// node_modules/@nestjs/mapped-types/dist/partial-type.helper.js +var require_partial_type_helper = __commonJS({ + "node_modules/@nestjs/mapped-types/dist/partial-type.helper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PartialType = PartialType; + var type_helpers_utils_1 = require_type_helpers_utils(); + function PartialType(classRef, options = {}) { + class PartialClassType { + static { + __name(this, "PartialClassType"); + } + constructor() { + (0, type_helpers_utils_1.inheritPropertyInitializers)(this, classRef); + } + } + const propertyKeys = (0, type_helpers_utils_1.inheritValidationMetadata)(classRef, PartialClassType); + (0, type_helpers_utils_1.inheritTransformationMetadata)(classRef, PartialClassType); + if (propertyKeys) { + propertyKeys.forEach((key) => { + options.skipNullProperties === false ? (0, type_helpers_utils_1.applyValidateIfDefinedDecorator)(PartialClassType, key) : (0, type_helpers_utils_1.applyIsOptionalDecorator)(PartialClassType, key); + }); + } + Object.defineProperty(PartialClassType, "name", { + value: `Partial${classRef.name}` + }); + return PartialClassType; + } + __name(PartialType, "PartialType"); + } +}); + +// node_modules/@nestjs/mapped-types/dist/pick-type.helper.js +var require_pick_type_helper = __commonJS({ + "node_modules/@nestjs/mapped-types/dist/pick-type.helper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PickType = PickType; + var type_helpers_utils_1 = require_type_helpers_utils(); + function PickType(classRef, keys) { + const isInheritedPredicate = /* @__PURE__ */ __name((propertyKey) => keys.includes(propertyKey), "isInheritedPredicate"); + class PickClassType { + static { + __name(this, "PickClassType"); + } + constructor() { + (0, type_helpers_utils_1.inheritPropertyInitializers)(this, classRef, isInheritedPredicate); + } + } + (0, type_helpers_utils_1.inheritValidationMetadata)(classRef, PickClassType, isInheritedPredicate); + (0, type_helpers_utils_1.inheritTransformationMetadata)(classRef, PickClassType, isInheritedPredicate); + return PickClassType; + } + __name(PickType, "PickType"); + } +}); + +// node_modules/@nestjs/mapped-types/dist/index.js +var require_dist5 = __commonJS({ + "node_modules/@nestjs/mapped-types/dist/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.inheritValidationMetadata = exports2.inheritTransformationMetadata = exports2.inheritPropertyInitializers = exports2.applyValidateIfDefinedDecorator = exports2.applyIsOptionalDecorator = void 0; + __exportStar2(require_intersection_type_helper(), exports2); + __exportStar2(require_mapped_type_interface(), exports2); + __exportStar2(require_omit_type_helper(), exports2); + __exportStar2(require_partial_type_helper(), exports2); + __exportStar2(require_pick_type_helper(), exports2); + var type_helpers_utils_1 = require_type_helpers_utils(); + Object.defineProperty(exports2, "applyIsOptionalDecorator", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return type_helpers_utils_1.applyIsOptionalDecorator; + }, "get") }); + Object.defineProperty(exports2, "applyValidateIfDefinedDecorator", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return type_helpers_utils_1.applyValidateIfDefinedDecorator; + }, "get") }); + Object.defineProperty(exports2, "inheritPropertyInitializers", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return type_helpers_utils_1.inheritPropertyInitializers; + }, "get") }); + Object.defineProperty(exports2, "inheritTransformationMetadata", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return type_helpers_utils_1.inheritTransformationMetadata; + }, "get") }); + Object.defineProperty(exports2, "inheritValidationMetadata", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return type_helpers_utils_1.inheritValidationMetadata; + }, "get") }); + } +}); + +// node_modules/@nestjs/mapped-types/index.js +var require_mapped_types = __commonJS({ + "node_modules/@nestjs/mapped-types/index.js"(exports2) { + "use strict"; + function __export2(m) { + for (var p in m) if (!exports2.hasOwnProperty(p)) exports2[p] = m[p]; + } + __name(__export2, "__export"); + exports2.__esModule = true; + __export2(require_dist5()); + } +}); + +// node_modules/@nestjs/swagger/dist/type-helpers/mapped-types.utils.js +var require_mapped_types_utils = __commonJS({ + "node_modules/@nestjs/swagger/dist/type-helpers/mapped-types.utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.setMappedTypeClassName = setMappedTypeClassName; + exports2.clonePluginMetadataFactory = clonePluginMetadataFactory; + var lodash_1 = require_lodash(); + var plugin_constants_1 = require_plugin_constants(); + function capitalizeFirstLetter(value) { + return value.charAt(0).toUpperCase() + value.slice(1); + } + __name(capitalizeFirstLetter, "capitalizeFirstLetter"); + function sanitizeTypeNameSegment(value) { + return String(value).replace(/[^A-Za-z0-9_$]/g, "_"); + } + __name(sanitizeTypeNameSegment, "sanitizeTypeNameSegment"); + function setMappedTypeClassName(target, prefix, classRef, keys = []) { + const parentTypeName = classRef.name || "Anonymous"; + const mappedProperties = keys.map((key) => capitalizeFirstLetter(sanitizeTypeNameSegment(key))).join(""); + Object.defineProperty(target, "name", { + value: `${prefix}${parentTypeName}${mappedProperties}` + }); + } + __name(setMappedTypeClassName, "setMappedTypeClassName"); + function clonePluginMetadataFactory(target, parent, transformFn = lodash_1.identity) { + let targetMetadata = {}; + do { + if (!parent.constructor) { + return; + } + if (!parent.constructor[plugin_constants_1.METADATA_FACTORY_NAME]) { + continue; + } + const parentMetadata = parent.constructor[plugin_constants_1.METADATA_FACTORY_NAME](); + targetMetadata = Object.assign(Object.assign({}, parentMetadata), targetMetadata); + } while ((parent = Reflect.getPrototypeOf(parent)) && parent !== Object.prototype && parent); + targetMetadata = transformFn(targetMetadata); + if (target[plugin_constants_1.METADATA_FACTORY_NAME]) { + const originalFactory = target[plugin_constants_1.METADATA_FACTORY_NAME]; + target[plugin_constants_1.METADATA_FACTORY_NAME] = () => { + const originalMetadata = originalFactory(); + return Object.assign(Object.assign({}, originalMetadata), targetMetadata); + }; + } else { + target[plugin_constants_1.METADATA_FACTORY_NAME] = () => targetMetadata; + } + } + __name(clonePluginMetadataFactory, "clonePluginMetadataFactory"); + } +}); + +// node_modules/@nestjs/swagger/dist/type-helpers/deep-partial-type.helper.js +var require_deep_partial_type_helper = __commonJS({ + "node_modules/@nestjs/swagger/dist/type-helpers/deep-partial-type.helper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DeepPartialType = DeepPartialType; + var mapped_types_1 = require_mapped_types(); + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var decorators_1 = require_decorators5(); + var metadata_loader_1 = require_metadata_loader(); + var plugin_constants_1 = require_plugin_constants(); + var model_properties_accessor_1 = require_model_properties_accessor(); + var mapped_types_utils_1 = require_mapped_types_utils(); + var modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor(); + var deepPartialCache = /* @__PURE__ */ new Map(); + function isDtoClass(typeRef) { + if (!typeRef || typeof typeRef !== "function" || typeRef === String || typeRef === Number || typeRef === Boolean || typeRef === Object || typeRef === Array || typeRef === Date) { + return false; + } + const fields = modelPropertiesAccessor.getModelProperties(typeRef.prototype); + return fields.length > 0; + } + __name(isDtoClass, "isDtoClass"); + function DeepPartialType(classRef, options = {}) { + if (deepPartialCache.has(classRef)) { + return deepPartialCache.get(classRef); + } + const applyPartialDecoratorFn = options.skipNullProperties === false ? mapped_types_1.applyValidateIfDefinedDecorator : mapped_types_1.applyIsOptionalDecorator; + const fields = modelPropertiesAccessor.getModelProperties(classRef.prototype); + class DeepPartialTypeClass { + static { + __name(this, "DeepPartialTypeClass"); + } + constructor() { + (0, mapped_types_1.inheritPropertyInitializers)(this, classRef); + } + } + deepPartialCache.set(classRef, DeepPartialTypeClass); + const keysWithValidationConstraints = (0, mapped_types_1.inheritValidationMetadata)(classRef, DeepPartialTypeClass); + if (keysWithValidationConstraints) { + keysWithValidationConstraints.filter((key) => !fields.includes(key)).forEach((key) => applyPartialDecoratorFn(DeepPartialTypeClass, key)); + } + (0, mapped_types_1.inheritTransformationMetadata)(classRef, DeepPartialTypeClass); + function applyFields(fields2) { + (0, mapped_types_utils_1.clonePluginMetadataFactory)(DeepPartialTypeClass, classRef.prototype, (metadata) => (0, lodash_1.mapValues)(metadata, (item) => Object.assign(Object.assign({}, item), { required: false }))); + if (DeepPartialTypeClass[plugin_constants_1.METADATA_FACTORY_NAME]) { + const pluginFields = Object.keys(DeepPartialTypeClass[plugin_constants_1.METADATA_FACTORY_NAME]()); + pluginFields.forEach((key) => applyPartialDecoratorFn(DeepPartialTypeClass, key)); + } + fields2.forEach((key) => { + const metadata = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, classRef.prototype, key) || {}; + let resolvedType = metadata.type; + if (typeof resolvedType === "function" && resolvedType.length === 0) { + try { + resolvedType = resolvedType(); + } catch (_a) { + resolvedType = metadata.type; + } + } + let isArray = metadata.isArray === true; + if (Array.isArray(resolvedType) && resolvedType.length === 1) { + resolvedType = resolvedType[0]; + isArray = true; + } + const isNestedDto = isDtoClass(resolvedType); + const nestedType = isNestedDto ? DeepPartialType(resolvedType, options) : metadata.type; + const decoratorFactory = (0, decorators_1.ApiProperty)(Object.assign(Object.assign(Object.assign(Object.assign({}, metadata), { type: nestedType }), isNestedDto ? { isArray } : {}), { required: false })); + decoratorFactory(DeepPartialTypeClass.prototype, key); + applyPartialDecoratorFn(DeepPartialTypeClass, key); + }); + } + __name(applyFields, "applyFields"); + applyFields(fields); + metadata_loader_1.MetadataLoader.addRefreshHook(() => { + const fields2 = modelPropertiesAccessor.getModelProperties(classRef.prototype); + applyFields(fields2); + }); + return DeepPartialTypeClass; + } + __name(DeepPartialType, "DeepPartialType"); + } +}); + +// node_modules/@nestjs/swagger/dist/type-helpers/intersection-type.helper.js +var require_intersection_type_helper2 = __commonJS({ + "node_modules/@nestjs/swagger/dist/type-helpers/intersection-type.helper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.IntersectionType = IntersectionType; + var mapped_types_1 = require_mapped_types(); + var constants_1 = require_constants8(); + var decorators_1 = require_decorators5(); + var metadata_loader_1 = require_metadata_loader(); + var model_properties_accessor_1 = require_model_properties_accessor(); + var mapped_types_utils_1 = require_mapped_types_utils(); + var modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor(); + function IntersectionType(...classRefs) { + class IntersectionClassType { + static { + __name(this, "IntersectionClassType"); + } + constructor() { + classRefs.forEach((classRef) => { + (0, mapped_types_1.inheritPropertyInitializers)(this, classRef); + }); + } + } + classRefs.forEach((classRef) => { + const fields = modelPropertiesAccessor.getModelProperties(classRef.prototype); + (0, mapped_types_1.inheritValidationMetadata)(classRef, IntersectionClassType); + (0, mapped_types_1.inheritTransformationMetadata)(classRef, IntersectionClassType); + function applyFields(fields2) { + (0, mapped_types_utils_1.clonePluginMetadataFactory)(IntersectionClassType, classRef.prototype); + fields2.forEach((propertyKey) => { + const metadata = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, classRef.prototype, propertyKey); + const decoratorFactory = (0, decorators_1.ApiProperty)(metadata); + decoratorFactory(IntersectionClassType.prototype, propertyKey); + }); + } + __name(applyFields, "applyFields"); + applyFields(fields); + metadata_loader_1.MetadataLoader.addRefreshHook(() => { + const fields2 = modelPropertiesAccessor.getModelProperties(classRef.prototype); + applyFields(fields2); + }); + }); + const intersectedNames = classRefs.reduce((prev, ref) => prev + ref.name, ""); + Object.defineProperty(IntersectionClassType, "name", { + value: `Intersection${intersectedNames}` + }); + return IntersectionClassType; + } + __name(IntersectionType, "IntersectionType"); + } +}); + +// node_modules/@nestjs/swagger/dist/type-helpers/omit-type.helper.js +var require_omit_type_helper2 = __commonJS({ + "node_modules/@nestjs/swagger/dist/type-helpers/omit-type.helper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.OmitType = OmitType; + var mapped_types_1 = require_mapped_types(); + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var decorators_1 = require_decorators5(); + var metadata_loader_1 = require_metadata_loader(); + var plugin_constants_1 = require_plugin_constants(); + var model_properties_accessor_1 = require_model_properties_accessor(); + var mapped_types_utils_1 = require_mapped_types_utils(); + var modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor(); + function OmitType(classRef, keys) { + const fields = modelPropertiesAccessor.getModelProperties(classRef.prototype).filter((item) => !keys.includes(item)); + const isInheritedPredicate = /* @__PURE__ */ __name((propertyKey) => !keys.includes(propertyKey), "isInheritedPredicate"); + class OmitTypeClass { + static { + __name(this, "OmitTypeClass"); + } + constructor() { + (0, mapped_types_1.inheritPropertyInitializers)(this, classRef, isInheritedPredicate); + } + } + (0, mapped_types_utils_1.setMappedTypeClassName)(OmitTypeClass, "Omit", classRef, keys); + (0, mapped_types_1.inheritValidationMetadata)(classRef, OmitTypeClass, isInheritedPredicate); + (0, mapped_types_1.inheritTransformationMetadata)(classRef, OmitTypeClass, isInheritedPredicate); + function applyFields(fields2) { + (0, mapped_types_utils_1.clonePluginMetadataFactory)(OmitTypeClass, classRef.prototype, (metadata) => (0, lodash_1.omit)(metadata, keys)); + fields2.forEach((propertyKey) => { + const metadata = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, classRef.prototype, propertyKey); + const decoratorFactory = (0, decorators_1.ApiProperty)(metadata); + decoratorFactory(OmitTypeClass.prototype, propertyKey); + }); + if (OmitTypeClass[plugin_constants_1.METADATA_FACTORY_NAME]) { + const pluginMetadata = OmitTypeClass[plugin_constants_1.METADATA_FACTORY_NAME](); + Object.keys(pluginMetadata).forEach((key) => { + if (!fields2.includes(key)) { + const decoratorFactory = (0, decorators_1.ApiProperty)(pluginMetadata[key]); + decoratorFactory(OmitTypeClass.prototype, key); + } + }); + } + } + __name(applyFields, "applyFields"); + applyFields(fields); + metadata_loader_1.MetadataLoader.addRefreshHook(() => { + const fields2 = modelPropertiesAccessor.getModelProperties(classRef.prototype).filter((item) => !keys.includes(item)); + applyFields(fields2); + }); + return OmitTypeClass; + } + __name(OmitType, "OmitType"); + } +}); + +// node_modules/@nestjs/swagger/dist/type-helpers/partial-type.helper.js +var require_partial_type_helper2 = __commonJS({ + "node_modules/@nestjs/swagger/dist/type-helpers/partial-type.helper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PartialType = PartialType; + var mapped_types_1 = require_mapped_types(); + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var decorators_1 = require_decorators5(); + var metadata_loader_1 = require_metadata_loader(); + var plugin_constants_1 = require_plugin_constants(); + var model_properties_accessor_1 = require_model_properties_accessor(); + var mapped_types_utils_1 = require_mapped_types_utils(); + var modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor(); + function PartialType(classRef, options = {}) { + const applyPartialDecoratorFn = options.skipNullProperties === false ? mapped_types_1.applyValidateIfDefinedDecorator : mapped_types_1.applyIsOptionalDecorator; + const fields = modelPropertiesAccessor.getModelProperties(classRef.prototype); + class PartialTypeClass { + static { + __name(this, "PartialTypeClass"); + } + constructor() { + (0, mapped_types_1.inheritPropertyInitializers)(this, classRef); + } + } + (0, mapped_types_utils_1.setMappedTypeClassName)(PartialTypeClass, "Partial", classRef); + const keysWithValidationConstraints = (0, mapped_types_1.inheritValidationMetadata)(classRef, PartialTypeClass); + if (keysWithValidationConstraints) { + keysWithValidationConstraints.filter((key) => !fields.includes(key)).forEach((key) => applyPartialDecoratorFn(PartialTypeClass, key)); + } + (0, mapped_types_1.inheritTransformationMetadata)(classRef, PartialTypeClass); + function applyFields(fields2) { + (0, mapped_types_utils_1.clonePluginMetadataFactory)(PartialTypeClass, classRef.prototype, (metadata) => (0, lodash_1.mapValues)(metadata, (item) => Object.assign(Object.assign({}, item), { required: false }))); + fields2.forEach((key) => { + const metadata = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, classRef.prototype, key) || {}; + const decoratorFactory = (0, decorators_1.ApiProperty)(Object.assign(Object.assign({}, metadata), { required: false })); + decoratorFactory(PartialTypeClass.prototype, key); + applyPartialDecoratorFn(PartialTypeClass, key); + }); + if (PartialTypeClass[plugin_constants_1.METADATA_FACTORY_NAME]) { + const pluginMetadata = PartialTypeClass[plugin_constants_1.METADATA_FACTORY_NAME](); + const pluginFields = Object.keys(pluginMetadata); + pluginFields.forEach((key) => { + if (!fields2.includes(key)) { + const decoratorFactory = (0, decorators_1.ApiProperty)(Object.assign(Object.assign({}, pluginMetadata[key]), { required: false })); + decoratorFactory(PartialTypeClass.prototype, key); + } + applyPartialDecoratorFn(PartialTypeClass, key); + }); + } + } + __name(applyFields, "applyFields"); + applyFields(fields); + metadata_loader_1.MetadataLoader.addRefreshHook(() => { + const fields2 = modelPropertiesAccessor.getModelProperties(classRef.prototype); + applyFields(fields2); + }); + return PartialTypeClass; + } + __name(PartialType, "PartialType"); + } +}); + +// node_modules/@nestjs/swagger/dist/type-helpers/pick-type.helper.js +var require_pick_type_helper2 = __commonJS({ + "node_modules/@nestjs/swagger/dist/type-helpers/pick-type.helper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PickType = PickType; + var mapped_types_1 = require_mapped_types(); + var lodash_1 = require_lodash(); + var constants_1 = require_constants8(); + var decorators_1 = require_decorators5(); + var metadata_loader_1 = require_metadata_loader(); + var plugin_constants_1 = require_plugin_constants(); + var model_properties_accessor_1 = require_model_properties_accessor(); + var mapped_types_utils_1 = require_mapped_types_utils(); + var modelPropertiesAccessor = new model_properties_accessor_1.ModelPropertiesAccessor(); + function PickType(classRef, keys) { + const fields = modelPropertiesAccessor.getModelProperties(classRef.prototype).filter((item) => keys.includes(item)); + const isInheritedPredicate = /* @__PURE__ */ __name((propertyKey) => keys.includes(propertyKey), "isInheritedPredicate"); + class PickTypeClass { + static { + __name(this, "PickTypeClass"); + } + constructor() { + (0, mapped_types_1.inheritPropertyInitializers)(this, classRef, isInheritedPredicate); + } + } + (0, mapped_types_utils_1.setMappedTypeClassName)(PickTypeClass, "Pick", classRef, keys); + (0, mapped_types_1.inheritValidationMetadata)(classRef, PickTypeClass, isInheritedPredicate); + (0, mapped_types_1.inheritTransformationMetadata)(classRef, PickTypeClass, isInheritedPredicate); + function applyFields(fields2) { + (0, mapped_types_utils_1.clonePluginMetadataFactory)(PickTypeClass, classRef.prototype, (metadata) => (0, lodash_1.pick)(metadata, keys)); + fields2.forEach((propertyKey) => { + const metadata = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, classRef.prototype, propertyKey); + const decoratorFactory = (0, decorators_1.ApiProperty)(metadata); + decoratorFactory(PickTypeClass.prototype, propertyKey); + }); + if (PickTypeClass[plugin_constants_1.METADATA_FACTORY_NAME]) { + const pluginMetadata = PickTypeClass[plugin_constants_1.METADATA_FACTORY_NAME](); + Object.keys(pluginMetadata).forEach((key) => { + if (!fields2.includes(key)) { + const decoratorFactory = (0, decorators_1.ApiProperty)(pluginMetadata[key]); + decoratorFactory(PickTypeClass.prototype, key); + } + }); + } + } + __name(applyFields, "applyFields"); + applyFields(fields); + metadata_loader_1.MetadataLoader.addRefreshHook(() => { + const fields2 = modelPropertiesAccessor.getModelProperties(classRef.prototype).filter((item) => keys.includes(item)); + applyFields(fields2); + }); + return PickTypeClass; + } + __name(PickType, "PickType"); + } +}); + +// node_modules/@nestjs/swagger/dist/type-helpers/index.js +var require_type_helpers = __commonJS({ + "node_modules/@nestjs/swagger/dist/type-helpers/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_deep_partial_type_helper(), exports2); + __exportStar2(require_intersection_type_helper2(), exports2); + __exportStar2(require_omit_type_helper2(), exports2); + __exportStar2(require_partial_type_helper2(), exports2); + __exportStar2(require_pick_type_helper2(), exports2); + } +}); + +// node_modules/@nestjs/swagger/dist/index.js +var require_dist6 = __commonJS({ + "node_modules/@nestjs/swagger/dist/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + require_Reflect(); + __exportStar2(require_decorators5(), exports2); + __exportStar2(require_document_builder(), exports2); + __exportStar2(require_interfaces7(), exports2); + __exportStar2(require_swagger_module(), exports2); + __exportStar2(require_type_helpers(), exports2); + __exportStar2(require_utils13(), exports2); + __exportStar2(require_constants8(), exports2); + } +}); + +// node_modules/@nestjs/config/node_modules/dotenv/lib/main.js +var require_main = __commonJS({ + "node_modules/@nestjs/config/node_modules/dotenv/lib/main.js"(exports2, module2) { + var fs = require("fs"); + var path = require("path"); + var os = require("os"); + var crypto2 = require("crypto"); + var TIPS = [ + "\u25C8 encrypted .env [www.dotenvx.com]", + "\u25C8 secrets for agents [www.dotenvx.com]", + "\u2301 auth for agents [www.vestauth.com]", + "\u2318 custom filepath { path: '/custom/path/.env' }", + "\u2318 enable debugging { debug: true }", + "\u2318 override existing { override: true }", + "\u2318 suppress logs { quiet: true }", + "\u2318 multiple files { path: ['.env.local', '.env'] }" + ]; + function _getRandomTip() { + return TIPS[Math.floor(Math.random() * TIPS.length)]; + } + __name(_getRandomTip, "_getRandomTip"); + function parseBoolean(value) { + if (typeof value === "string") { + return !["false", "0", "no", "off", ""].includes(value.toLowerCase()); + } + return Boolean(value); + } + __name(parseBoolean, "parseBoolean"); + function supportsAnsi() { + return process.stdout.isTTY; + } + __name(supportsAnsi, "supportsAnsi"); + function dim(text) { + return supportsAnsi() ? `\x1B[2m${text}\x1B[0m` : text; + } + __name(dim, "dim"); + var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg; + function parse(src) { + const obj = {}; + let lines = src.toString(); + lines = lines.replace(/\r\n?/mg, "\n"); + let match; + while ((match = LINE.exec(lines)) != null) { + const key = match[1]; + let value = match[2] || ""; + value = value.trim(); + const maybeQuote = value[0]; + value = value.replace(/^(['"`])([\s\S]*)\1$/mg, "$2"); + if (maybeQuote === '"') { + value = value.replace(/\\n/g, "\n"); + value = value.replace(/\\r/g, "\r"); + } + obj[key] = value; + } + return obj; + } + __name(parse, "parse"); + function _parseVault(options) { + options = options || {}; + const vaultPath = _vaultPath(options); + options.path = vaultPath; + const result = DotenvModule.configDotenv(options); + if (!result.parsed) { + const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`); + err.code = "MISSING_DATA"; + throw err; + } + const keys = _dotenvKey(options).split(","); + const length = keys.length; + let decrypted; + for (let i = 0; i < length; i++) { + try { + const key = keys[i].trim(); + const attrs = _instructions(result, key); + decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key); + break; + } catch (error) { + if (i + 1 >= length) { + throw error; + } + } + } + return DotenvModule.parse(decrypted); + } + __name(_parseVault, "_parseVault"); + function _warn(message) { + console.error(`\u26A0 ${message}`); + } + __name(_warn, "_warn"); + function _debug(message) { + console.log(`\u2506 ${message}`); + } + __name(_debug, "_debug"); + function _log(message) { + console.log(`\u25C7 ${message}`); + } + __name(_log, "_log"); + function _dotenvKey(options) { + if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) { + return options.DOTENV_KEY; + } + if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) { + return process.env.DOTENV_KEY; + } + return ""; + } + __name(_dotenvKey, "_dotenvKey"); + function _instructions(result, dotenvKey) { + let uri; + try { + uri = new URL(dotenvKey); + } catch (error) { + if (error.code === "ERR_INVALID_URL") { + const err = new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development"); + err.code = "INVALID_DOTENV_KEY"; + throw err; + } + throw error; + } + const key = uri.password; + if (!key) { + const err = new Error("INVALID_DOTENV_KEY: Missing key part"); + err.code = "INVALID_DOTENV_KEY"; + throw err; + } + const environment = uri.searchParams.get("environment"); + if (!environment) { + const err = new Error("INVALID_DOTENV_KEY: Missing environment part"); + err.code = "INVALID_DOTENV_KEY"; + throw err; + } + const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`; + const ciphertext = result.parsed[environmentKey]; + if (!ciphertext) { + const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`); + err.code = "NOT_FOUND_DOTENV_ENVIRONMENT"; + throw err; + } + return { ciphertext, key }; + } + __name(_instructions, "_instructions"); + function _vaultPath(options) { + let possibleVaultPath = null; + if (options && options.path && options.path.length > 0) { + if (Array.isArray(options.path)) { + for (const filepath of options.path) { + if (fs.existsSync(filepath)) { + possibleVaultPath = filepath.endsWith(".vault") ? filepath : `${filepath}.vault`; + } + } + } else { + possibleVaultPath = options.path.endsWith(".vault") ? options.path : `${options.path}.vault`; + } + } else { + possibleVaultPath = path.resolve(process.cwd(), ".env.vault"); + } + if (fs.existsSync(possibleVaultPath)) { + return possibleVaultPath; + } + return null; + } + __name(_vaultPath, "_vaultPath"); + function _resolveHome(envPath) { + return envPath[0] === "~" ? path.join(os.homedir(), envPath.slice(1)) : envPath; + } + __name(_resolveHome, "_resolveHome"); + function _configVault(options) { + const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || options && options.debug); + const quiet = parseBoolean(process.env.DOTENV_CONFIG_QUIET || options && options.quiet); + if (debug || !quiet) { + _log("loading env from encrypted .env.vault"); + } + const parsed = DotenvModule._parseVault(options); + let processEnv = process.env; + if (options && options.processEnv != null) { + processEnv = options.processEnv; + } + DotenvModule.populate(processEnv, parsed, options); + return { parsed }; + } + __name(_configVault, "_configVault"); + function configDotenv(options) { + const dotenvPath = path.resolve(process.cwd(), ".env"); + let encoding = "utf8"; + let processEnv = process.env; + if (options && options.processEnv != null) { + processEnv = options.processEnv; + } + let debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || options && options.debug); + let quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || options && options.quiet); + if (options && options.encoding) { + encoding = options.encoding; + } else { + if (debug) { + _debug("no encoding is specified (UTF-8 is used by default)"); + } + } + let optionPaths = [dotenvPath]; + if (options && options.path) { + if (!Array.isArray(options.path)) { + optionPaths = [_resolveHome(options.path)]; + } else { + optionPaths = []; + for (const filepath of options.path) { + optionPaths.push(_resolveHome(filepath)); + } + } + } + let lastError; + const parsedAll = {}; + for (const path2 of optionPaths) { + try { + const parsed = DotenvModule.parse(fs.readFileSync(path2, { encoding })); + DotenvModule.populate(parsedAll, parsed, options); + } catch (e) { + if (debug) { + _debug(`failed to load ${path2} ${e.message}`); + } + lastError = e; + } + } + const populated = DotenvModule.populate(processEnv, parsedAll, options); + debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || debug); + quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || quiet); + if (debug || !quiet) { + const keysCount = Object.keys(populated).length; + const shortPaths = []; + for (const filePath of optionPaths) { + try { + const relative = path.relative(process.cwd(), filePath); + shortPaths.push(relative); + } catch (e) { + if (debug) { + _debug(`failed to load ${filePath} ${e.message}`); + } + lastError = e; + } + } + _log(`injected env (${keysCount}) from ${shortPaths.join(",")} ${dim(`// tip: ${_getRandomTip()}`)}`); + } + if (lastError) { + return { parsed: parsedAll, error: lastError }; + } else { + return { parsed: parsedAll }; + } + } + __name(configDotenv, "configDotenv"); + function config(options) { + if (_dotenvKey(options).length === 0) { + return DotenvModule.configDotenv(options); + } + const vaultPath = _vaultPath(options); + if (!vaultPath) { + _warn(`you set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}`); + return DotenvModule.configDotenv(options); + } + return DotenvModule._configVault(options); + } + __name(config, "config"); + function decrypt(encrypted, keyStr) { + const key = Buffer.from(keyStr.slice(-64), "hex"); + let ciphertext = Buffer.from(encrypted, "base64"); + const nonce = ciphertext.subarray(0, 12); + const authTag = ciphertext.subarray(-16); + ciphertext = ciphertext.subarray(12, -16); + try { + const aesgcm = crypto2.createDecipheriv("aes-256-gcm", key, nonce); + aesgcm.setAuthTag(authTag); + return `${aesgcm.update(ciphertext)}${aesgcm.final()}`; + } catch (error) { + const isRange = error instanceof RangeError; + const invalidKeyLength = error.message === "Invalid key length"; + const decryptionFailed = error.message === "Unsupported state or unable to authenticate data"; + if (isRange || invalidKeyLength) { + const err = new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)"); + err.code = "INVALID_DOTENV_KEY"; + throw err; + } else if (decryptionFailed) { + const err = new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY"); + err.code = "DECRYPTION_FAILED"; + throw err; + } else { + throw error; + } + } + } + __name(decrypt, "decrypt"); + function populate(processEnv, parsed, options = {}) { + const debug = Boolean(options && options.debug); + const override = Boolean(options && options.override); + const populated = {}; + if (typeof parsed !== "object") { + const err = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate"); + err.code = "OBJECT_REQUIRED"; + throw err; + } + for (const key of Object.keys(parsed)) { + if (Object.prototype.hasOwnProperty.call(processEnv, key)) { + if (override === true) { + processEnv[key] = parsed[key]; + populated[key] = parsed[key]; + } + if (debug) { + if (override === true) { + _debug(`"${key}" is already defined and WAS overwritten`); + } else { + _debug(`"${key}" is already defined and was NOT overwritten`); + } + } + } else { + processEnv[key] = parsed[key]; + populated[key] = parsed[key]; + } + } + return populated; + } + __name(populate, "populate"); + var DotenvModule = { + configDotenv, + _configVault, + _parseVault, + config, + decrypt, + parse, + populate + }; + module2.exports.configDotenv = DotenvModule.configDotenv; + module2.exports._configVault = DotenvModule._configVault; + module2.exports._parseVault = DotenvModule._parseVault; + module2.exports.config = DotenvModule.config; + module2.exports.decrypt = DotenvModule.decrypt; + module2.exports.parse = DotenvModule.parse; + module2.exports.populate = DotenvModule.populate; + module2.exports = DotenvModule; + } +}); + +// node_modules/dotenv-expand/lib/main.js +var require_main2 = __commonJS({ + "node_modules/dotenv-expand/lib/main.js"(exports2, module2) { + "use strict"; + function _resolveEscapeSequences(value) { + return value.replace(/\\\$/g, "$"); + } + __name(_resolveEscapeSequences, "_resolveEscapeSequences"); + function expandValue(value, processEnv, runningParsed) { + const env = { ...runningParsed, ...processEnv }; + const regex = /(? -1; + } + __name(listCacheHas, "listCacheHas"); + module2.exports = listCacheHas; + } +}); + +// node_modules/lodash/_listCacheSet.js +var require_listCacheSet = __commonJS({ + "node_modules/lodash/_listCacheSet.js"(exports2, module2) { + var assocIndexOf = require_assocIndexOf(); + function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + __name(listCacheSet, "listCacheSet"); + module2.exports = listCacheSet; + } +}); + +// node_modules/lodash/_ListCache.js +var require_ListCache = __commonJS({ + "node_modules/lodash/_ListCache.js"(exports2, module2) { + var listCacheClear = require_listCacheClear(); + var listCacheDelete = require_listCacheDelete(); + var listCacheGet = require_listCacheGet(); + var listCacheHas = require_listCacheHas(); + var listCacheSet = require_listCacheSet(); + function ListCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + __name(ListCache, "ListCache"); + ListCache.prototype.clear = listCacheClear; + ListCache.prototype["delete"] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + module2.exports = ListCache; + } +}); + +// node_modules/lodash/_Map.js +var require_Map = __commonJS({ + "node_modules/lodash/_Map.js"(exports2, module2) { + var getNative = require_getNative(); + var root = require_root(); + var Map2 = getNative(root, "Map"); + module2.exports = Map2; + } +}); + +// node_modules/lodash/_mapCacheClear.js +var require_mapCacheClear = __commonJS({ + "node_modules/lodash/_mapCacheClear.js"(exports2, module2) { + var Hash = require_Hash(); + var ListCache = require_ListCache(); + var Map2 = require_Map(); + function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new Hash(), + "map": new (Map2 || ListCache)(), + "string": new Hash() + }; + } + __name(mapCacheClear, "mapCacheClear"); + module2.exports = mapCacheClear; + } +}); + +// node_modules/lodash/_isKeyable.js +var require_isKeyable = __commonJS({ + "node_modules/lodash/_isKeyable.js"(exports2, module2) { + function isKeyable(value) { + var type = typeof value; + return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; + } + __name(isKeyable, "isKeyable"); + module2.exports = isKeyable; + } +}); + +// node_modules/lodash/_getMapData.js +var require_getMapData = __commonJS({ + "node_modules/lodash/_getMapData.js"(exports2, module2) { + var isKeyable = require_isKeyable(); + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; + } + __name(getMapData, "getMapData"); + module2.exports = getMapData; + } +}); + +// node_modules/lodash/_mapCacheDelete.js +var require_mapCacheDelete = __commonJS({ + "node_modules/lodash/_mapCacheDelete.js"(exports2, module2) { + var getMapData = require_getMapData(); + function mapCacheDelete(key) { + var result = getMapData(this, key)["delete"](key); + this.size -= result ? 1 : 0; + return result; + } + __name(mapCacheDelete, "mapCacheDelete"); + module2.exports = mapCacheDelete; + } +}); + +// node_modules/lodash/_mapCacheGet.js +var require_mapCacheGet = __commonJS({ + "node_modules/lodash/_mapCacheGet.js"(exports2, module2) { + var getMapData = require_getMapData(); + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + __name(mapCacheGet, "mapCacheGet"); + module2.exports = mapCacheGet; + } +}); + +// node_modules/lodash/_mapCacheHas.js +var require_mapCacheHas = __commonJS({ + "node_modules/lodash/_mapCacheHas.js"(exports2, module2) { + var getMapData = require_getMapData(); + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + __name(mapCacheHas, "mapCacheHas"); + module2.exports = mapCacheHas; + } +}); + +// node_modules/lodash/_mapCacheSet.js +var require_mapCacheSet = __commonJS({ + "node_modules/lodash/_mapCacheSet.js"(exports2, module2) { + var getMapData = require_getMapData(); + function mapCacheSet(key, value) { + var data = getMapData(this, key), size = data.size; + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + __name(mapCacheSet, "mapCacheSet"); + module2.exports = mapCacheSet; + } +}); + +// node_modules/lodash/_MapCache.js +var require_MapCache = __commonJS({ + "node_modules/lodash/_MapCache.js"(exports2, module2) { + var mapCacheClear = require_mapCacheClear(); + var mapCacheDelete = require_mapCacheDelete(); + var mapCacheGet = require_mapCacheGet(); + var mapCacheHas = require_mapCacheHas(); + var mapCacheSet = require_mapCacheSet(); + function MapCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + __name(MapCache, "MapCache"); + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype["delete"] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + module2.exports = MapCache; + } +}); + +// node_modules/lodash/memoize.js +var require_memoize = __commonJS({ + "node_modules/lodash/memoize.js"(exports2, module2) { + var MapCache = require_MapCache(); + var FUNC_ERROR_TEXT = "Expected a function"; + function memoize(func, resolver) { + if (typeof func != "function" || resolver != null && typeof resolver != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = /* @__PURE__ */ __name(function() { + var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }, "memoized"); + memoized.cache = new (memoize.Cache || MapCache)(); + return memoized; + } + __name(memoize, "memoize"); + memoize.Cache = MapCache; + module2.exports = memoize; + } +}); + +// node_modules/lodash/_memoizeCapped.js +var require_memoizeCapped = __commonJS({ + "node_modules/lodash/_memoizeCapped.js"(exports2, module2) { + var memoize = require_memoize(); + var MAX_MEMOIZE_SIZE = 500; + function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + var cache = result.cache; + return result; + } + __name(memoizeCapped, "memoizeCapped"); + module2.exports = memoizeCapped; + } +}); + +// node_modules/lodash/_stringToPath.js +var require_stringToPath = __commonJS({ + "node_modules/lodash/_stringToPath.js"(exports2, module2) { + var memoizeCapped = require_memoizeCapped(); + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var reEscapeChar = /\\(\\)?/g; + var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46) { + result.push(""); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); + }); + return result; + }); + module2.exports = stringToPath; + } +}); + +// node_modules/lodash/_arrayMap.js +var require_arrayMap = __commonJS({ + "node_modules/lodash/_arrayMap.js"(exports2, module2) { + function arrayMap(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length, result = Array(length); + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + __name(arrayMap, "arrayMap"); + module2.exports = arrayMap; + } +}); + +// node_modules/lodash/_baseToString.js +var require_baseToString = __commonJS({ + "node_modules/lodash/_baseToString.js"(exports2, module2) { + var Symbol2 = require_Symbol(); + var arrayMap = require_arrayMap(); + var isArray = require_isArray(); + var isSymbol = require_isSymbol(); + var INFINITY = 1 / 0; + var symbolProto = Symbol2 ? Symbol2.prototype : void 0; + var symbolToString = symbolProto ? symbolProto.toString : void 0; + function baseToString(value) { + if (typeof value == "string") { + return value; + } + if (isArray(value)) { + return arrayMap(value, baseToString) + ""; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ""; + } + var result = value + ""; + return result == "0" && 1 / value == -INFINITY ? "-0" : result; + } + __name(baseToString, "baseToString"); + module2.exports = baseToString; + } +}); + +// node_modules/lodash/toString.js +var require_toString2 = __commonJS({ + "node_modules/lodash/toString.js"(exports2, module2) { + var baseToString = require_baseToString(); + function toString2(value) { + return value == null ? "" : baseToString(value); + } + __name(toString2, "toString"); + module2.exports = toString2; + } +}); + +// node_modules/lodash/_castPath.js +var require_castPath = __commonJS({ + "node_modules/lodash/_castPath.js"(exports2, module2) { + var isArray = require_isArray(); + var isKey = require_isKey(); + var stringToPath = require_stringToPath(); + var toString2 = require_toString2(); + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString2(value)); + } + __name(castPath, "castPath"); + module2.exports = castPath; + } +}); + +// node_modules/lodash/_toKey.js +var require_toKey = __commonJS({ + "node_modules/lodash/_toKey.js"(exports2, module2) { + var isSymbol = require_isSymbol(); + var INFINITY = 1 / 0; + function toKey(value) { + if (typeof value == "string" || isSymbol(value)) { + return value; + } + var result = value + ""; + return result == "0" && 1 / value == -INFINITY ? "-0" : result; + } + __name(toKey, "toKey"); + module2.exports = toKey; + } +}); + +// node_modules/lodash/_baseGet.js +var require_baseGet = __commonJS({ + "node_modules/lodash/_baseGet.js"(exports2, module2) { + var castPath = require_castPath(); + var toKey = require_toKey(); + function baseGet(object, path) { + path = castPath(path, object); + var index = 0, length = path.length; + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return index && index == length ? object : void 0; + } + __name(baseGet, "baseGet"); + module2.exports = baseGet; + } +}); + +// node_modules/lodash/get.js +var require_get2 = __commonJS({ + "node_modules/lodash/get.js"(exports2, module2) { + var baseGet = require_baseGet(); + function get(object, path, defaultValue) { + var result = object == null ? void 0 : baseGet(object, path); + return result === void 0 ? defaultValue : result; + } + __name(get, "get"); + module2.exports = get; + } +}); + +// node_modules/lodash/_baseHas.js +var require_baseHas = __commonJS({ + "node_modules/lodash/_baseHas.js"(exports2, module2) { + var objectProto = Object.prototype; + var hasOwnProperty = objectProto.hasOwnProperty; + function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); + } + __name(baseHas, "baseHas"); + module2.exports = baseHas; + } +}); + +// node_modules/lodash/_baseIsArguments.js +var require_baseIsArguments = __commonJS({ + "node_modules/lodash/_baseIsArguments.js"(exports2, module2) { + var baseGetTag = require_baseGetTag(); + var isObjectLike = require_isObjectLike(); + var argsTag = "[object Arguments]"; + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + __name(baseIsArguments, "baseIsArguments"); + module2.exports = baseIsArguments; + } +}); + +// node_modules/lodash/isArguments.js +var require_isArguments = __commonJS({ + "node_modules/lodash/isArguments.js"(exports2, module2) { + var baseIsArguments = require_baseIsArguments(); + var isObjectLike = require_isObjectLike(); + var objectProto = Object.prototype; + var hasOwnProperty = objectProto.hasOwnProperty; + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + var isArguments = baseIsArguments(/* @__PURE__ */ (function() { + return arguments; + })()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); + }; + module2.exports = isArguments; + } +}); + +// node_modules/lodash/_isIndex.js +var require_isIndex = __commonJS({ + "node_modules/lodash/_isIndex.js"(exports2, module2) { + var MAX_SAFE_INTEGER = 9007199254740991; + var reIsUint = /^(?:0|[1-9]\d*)$/; + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); + } + __name(isIndex, "isIndex"); + module2.exports = isIndex; + } +}); + +// node_modules/lodash/isLength.js +var require_isLength2 = __commonJS({ + "node_modules/lodash/isLength.js"(exports2, module2) { + var MAX_SAFE_INTEGER = 9007199254740991; + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + __name(isLength, "isLength"); + module2.exports = isLength; + } +}); + +// node_modules/lodash/_hasPath.js +var require_hasPath = __commonJS({ + "node_modules/lodash/_hasPath.js"(exports2, module2) { + var castPath = require_castPath(); + var isArguments = require_isArguments(); + var isArray = require_isArray(); + var isIndex = require_isIndex(); + var isLength = require_isLength2(); + var toKey = require_toKey(); + function hasPath(object, path, hasFunc) { + path = castPath(path, object); + var index = -1, length = path.length, result = false; + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); + } + __name(hasPath, "hasPath"); + module2.exports = hasPath; + } +}); + +// node_modules/lodash/has.js +var require_has = __commonJS({ + "node_modules/lodash/has.js"(exports2, module2) { + var baseHas = require_baseHas(); + var hasPath = require_hasPath(); + function has(object, path) { + return object != null && hasPath(object, path, baseHas); + } + __name(has, "has"); + module2.exports = has; + } +}); + +// node_modules/lodash/_defineProperty.js +var require_defineProperty = __commonJS({ + "node_modules/lodash/_defineProperty.js"(exports2, module2) { + var getNative = require_getNative(); + var defineProperty = (function() { + try { + var func = getNative(Object, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) { + } + })(); + module2.exports = defineProperty; + } +}); + +// node_modules/lodash/_baseAssignValue.js +var require_baseAssignValue = __commonJS({ + "node_modules/lodash/_baseAssignValue.js"(exports2, module2) { + var defineProperty = require_defineProperty(); + function baseAssignValue(object, key, value) { + if (key == "__proto__" && defineProperty) { + defineProperty(object, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + } else { + object[key] = value; + } + } + __name(baseAssignValue, "baseAssignValue"); + module2.exports = baseAssignValue; + } +}); + +// node_modules/lodash/_assignValue.js +var require_assignValue = __commonJS({ + "node_modules/lodash/_assignValue.js"(exports2, module2) { + var baseAssignValue = require_baseAssignValue(); + var eq = require_eq(); + var objectProto = Object.prototype; + var hasOwnProperty = objectProto.hasOwnProperty; + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) { + baseAssignValue(object, key, value); + } + } + __name(assignValue, "assignValue"); + module2.exports = assignValue; + } +}); + +// node_modules/lodash/_baseSet.js +var require_baseSet = __commonJS({ + "node_modules/lodash/_baseSet.js"(exports2, module2) { + var assignValue = require_assignValue(); + var castPath = require_castPath(); + var isIndex = require_isIndex(); + var isObject = require_isObject2(); + var toKey = require_toKey(); + function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + var index = -1, length = path.length, lastIndex = length - 1, nested = object; + while (nested != null && ++index < length) { + var key = toKey(path[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") { + return object; + } + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : void 0; + if (newValue === void 0) { + newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + __name(baseSet, "baseSet"); + module2.exports = baseSet; + } +}); + +// node_modules/lodash/set.js +var require_set = __commonJS({ + "node_modules/lodash/set.js"(exports2, module2) { + var baseSet = require_baseSet(); + function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); + } + __name(set, "set"); + module2.exports = set; + } +}); + +// node_modules/@nestjs/config/dist/config.service.js +var require_config_service = __commonJS({ + "node_modules/@nestjs/config/dist/config.service.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ (function() { + var ownKeys2 = /* @__PURE__ */ __name(function(o) { + ownKeys2 = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys2(o); + }, "ownKeys"); + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys2(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding2(result, mod, k[i]); + } + __setModuleDefault2(result, mod); + return result; + }; + })(); + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConfigService = void 0; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var dotenv = __importStar2(require_main()); + var fs_1 = __importDefault2(require("fs")); + var get_1 = __importDefault2(require_get2()); + var has_1 = __importDefault2(require_has()); + var set_1 = __importDefault2(require_set()); + var rxjs_1 = require_cjs3(); + var config_constants_1 = require_config_constants(); + var ConfigService = class ConfigService { + static { + __name(this, "ConfigService"); + } + set isCacheEnabled(value) { + this._isCacheEnabled = value; + } + get isCacheEnabled() { + return this._isCacheEnabled; + } + set skipProcessEnv(value) { + this._skipProcessEnv = value; + } + get skipProcessEnv() { + return this._skipProcessEnv; + } + constructor(internalConfig = {}) { + this.internalConfig = internalConfig; + this.cache = {}; + this._changes$ = new rxjs_1.Subject(); + this._skipProcessEnv = false; + this._isCacheEnabled = false; + this.envFilePaths = []; + } + /** + * Returns a stream of configuration changes. + * Each event contains the attribute path, the old value and the new value. + */ + get changes$() { + return this._changes$.asObservable(); + } + /** + * Get a configuration value (either custom configuration or process environment variable) + * based on property path (you can use dot notation to traverse nested object, e.g. "database.host"). + * It returns a default value if the key does not exist. + * @param propertyPath + * @param defaultValueOrOptions + */ + get(propertyPath, defaultValueOrOptions, options) { + const internalValue = this.getFromInternalConfig(propertyPath); + if (!(0, shared_utils_1.isUndefined)(internalValue)) { + return internalValue; + } + const validatedEnvValue = this.getFromValidatedEnv(propertyPath); + if (!(0, shared_utils_1.isUndefined)(validatedEnvValue)) { + return validatedEnvValue; + } + const defaultValue = this.isGetOptionsObject(defaultValueOrOptions) && !options ? void 0 : defaultValueOrOptions; + if (!this._skipProcessEnv) { + const processEnvValue = this.getFromProcessEnv(propertyPath, defaultValue); + if (!(0, shared_utils_1.isUndefined)(processEnvValue)) { + return processEnvValue; + } + } + return defaultValue; + } + /** + * Get a configuration value (either custom configuration or process environment variable) + * based on property path (you can use dot notation to traverse nested object, e.g. "database.host"). + * It returns a default value if the key does not exist. + * If the default value is undefined an exception will be thrown. + * @param propertyPath + * @param defaultValueOrOptions + */ + getOrThrow(propertyPath, defaultValueOrOptions, options) { + const value = this.get(propertyPath, defaultValueOrOptions, options); + if ((0, shared_utils_1.isUndefined)(value)) { + throw new TypeError(`Configuration key "${propertyPath.toString()}" does not exist`); + } + return value; + } + /** + * Sets a configuration value based on property path. + * @param propertyPath + * @param value + */ + set(propertyPath, value) { + const oldValue = this.get(propertyPath); + (0, set_1.default)(this.internalConfig, propertyPath, value); + if (typeof propertyPath === "string") { + process.env[propertyPath] = String(value); + this.updateInterpolatedEnv(propertyPath, String(value)); + } + if (this.isCacheEnabled) { + this.setInCacheIfDefined(propertyPath, value); + } + this._changes$.next({ + path: propertyPath, + oldValue, + newValue: value + }); + } + /** + * Sets env file paths from `config.module.ts` to parse. + * @param paths + */ + setEnvFilePaths(paths) { + this.envFilePaths = paths; + } + getFromCache(propertyPath, defaultValue) { + const cachedValue = (0, get_1.default)(this.cache, propertyPath); + return (0, shared_utils_1.isUndefined)(cachedValue) ? defaultValue : cachedValue; + } + getFromValidatedEnv(propertyPath) { + const validatedEnvValue = (0, get_1.default)(this.internalConfig[config_constants_1.VALIDATED_ENV_PROPNAME], propertyPath); + return validatedEnvValue; + } + getFromProcessEnv(propertyPath, defaultValue) { + if (this.isCacheEnabled && (0, has_1.default)(this.cache, propertyPath)) { + const cachedValue = this.getFromCache(propertyPath, defaultValue); + return !(0, shared_utils_1.isUndefined)(cachedValue) ? cachedValue : defaultValue; + } + const processValue = (0, get_1.default)(process.env, propertyPath); + this.setInCacheIfDefined(propertyPath, processValue); + return processValue; + } + getFromInternalConfig(propertyPath) { + const internalValue = (0, get_1.default)(this.internalConfig, propertyPath); + return internalValue; + } + setInCacheIfDefined(propertyPath, value) { + if (typeof value === "undefined") { + return; + } + (0, set_1.default)(this.cache, propertyPath, value); + } + isGetOptionsObject(options) { + return options && options?.infer && Object.keys(options).length === 1; + } + updateInterpolatedEnv(propertyPath, value) { + let config = {}; + for (const envFilePath of this.envFilePaths) { + if (fs_1.default.existsSync(envFilePath)) { + config = Object.assign(dotenv.parse(fs_1.default.readFileSync(envFilePath)), config); + } + } + const regex = new RegExp(`\\$\\{?${propertyPath}\\}?`, "g"); + for (const [k, v] of Object.entries(config)) { + if (regex.test(v)) { + process.env[k] = v.replace(regex, value); + } + } + } + }; + exports2.ConfigService = ConfigService; + exports2.ConfigService = ConfigService = __decorate2([ + (0, common_12.Injectable)(), + __param2(0, (0, common_12.Optional)()), + __param2(0, (0, common_12.Inject)(config_constants_1.CONFIGURATION_TOKEN)), + __metadata2("design:paramtypes", [Object]) + ], ConfigService); + } +}); + +// node_modules/@nestjs/config/dist/config-host.module.js +var require_config_host_module = __commonJS({ + "node_modules/@nestjs/config/dist/config-host.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConfigHostModule = void 0; + var common_12 = require_common(); + var config_constants_1 = require_config_constants(); + var config_service_1 = require_config_service(); + var ConfigHostModule = class ConfigHostModule { + static { + __name(this, "ConfigHostModule"); + } + }; + exports2.ConfigHostModule = ConfigHostModule; + exports2.ConfigHostModule = ConfigHostModule = __decorate2([ + (0, common_12.Global)(), + (0, common_12.Module)({ + providers: [ + { + provide: config_constants_1.CONFIGURATION_TOKEN, + useFactory: /* @__PURE__ */ __name(() => ({}), "useFactory") + }, + { + provide: config_constants_1.CONFIGURATION_SERVICE_TOKEN, + useClass: config_service_1.ConfigService + } + ], + exports: [config_constants_1.CONFIGURATION_TOKEN, config_constants_1.CONFIGURATION_SERVICE_TOKEN] + }) + ], ConfigHostModule); + } +}); + +// node_modules/@nestjs/config/dist/utils/get-config-token.util.js +var require_get_config_token_util = __commonJS({ + "node_modules/@nestjs/config/dist/utils/get-config-token.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getConfigToken = getConfigToken; + function getConfigToken(token) { + return `CONFIGURATION(${token.toString()})`; + } + __name(getConfigToken, "getConfigToken"); + } +}); + +// node_modules/@nestjs/config/dist/utils/create-config-factory.util.js +var require_create_config_factory_util = __commonJS({ + "node_modules/@nestjs/config/dist/utils/create-config-factory.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createConfigProvider = createConfigProvider; + var get_config_token_util_1 = require_get_config_token_util(); + var crypto_1 = require("crypto"); + function createConfigProvider(factory) { + return { + provide: factory.KEY || (0, get_config_token_util_1.getConfigToken)((0, crypto_1.randomUUID)()), + useFactory: factory, + inject: [] + }; + } + __name(createConfigProvider, "createConfigProvider"); + } +}); + +// node_modules/@nestjs/config/dist/utils/get-registration-token.util.js +var require_get_registration_token_util = __commonJS({ + "node_modules/@nestjs/config/dist/utils/get-registration-token.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getRegistrationToken = getRegistrationToken; + var config_constants_1 = require_config_constants(); + function getRegistrationToken(config) { + return config[config_constants_1.PARTIAL_CONFIGURATION_KEY]; + } + __name(getRegistrationToken, "getRegistrationToken"); + } +}); + +// node_modules/@nestjs/config/dist/utils/merge-configs.util.js +var require_merge_configs_util = __commonJS({ + "node_modules/@nestjs/config/dist/utils/merge-configs.util.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.mergeConfigObject = mergeConfigObject; + var set_1 = __importDefault2(require_set()); + function mergeConfigObject(host, partial, token) { + if (token) { + (0, set_1.default)(host, token, partial); + return partial; + } + Object.assign(host, partial); + } + __name(mergeConfigObject, "mergeConfigObject"); + } +}); + +// node_modules/@nestjs/config/dist/config.module.js +var require_config_module = __commonJS({ + "node_modules/@nestjs/config/dist/config.module.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ (function() { + var ownKeys2 = /* @__PURE__ */ __name(function(o) { + ownKeys2 = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys2(o); + }, "ownKeys"); + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys2(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding2(result, mod, k[i]); + } + __setModuleDefault2(result, mod); + return result; + }; + })(); + var ConfigModule_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConfigModule = void 0; + var common_12 = require_common(); + var shared_utils_1 = require_shared_utils(); + var dotenv = __importStar2(require_main()); + var dotenv_expand_1 = require_main2(); + var fs = __importStar2(require("fs")); + var path_1 = require("path"); + var config_host_module_1 = require_config_host_module(); + var config_constants_1 = require_config_constants(); + var config_service_1 = require_config_service(); + var create_config_factory_util_1 = require_create_config_factory_util(); + var get_registration_token_util_1 = require_get_registration_token_util(); + var merge_configs_util_1 = require_merge_configs_util(); + var ConfigModule = ConfigModule_1 = class ConfigModule { + static { + __name(this, "ConfigModule"); + } + /** + * This promise resolves when "dotenv" completes loading environment variables. + * When "ignoreEnvFile" is set to true, then it will resolve immediately after the + * "ConfigModule#forRoot" method is called. + */ + static get envVariablesLoaded() { + return this._envVariablesLoaded; + } + /** + * Loads environment variables based on the "ignoreEnvFile" flag and "envFilePath" value. + * Additionally, registers custom configurations globally. + * @param options + */ + static async forRoot(options = {}) { + const envFilePaths = Array.isArray(options.envFilePath) ? options.envFilePath : [options.envFilePath || (0, path_1.resolve)(process.cwd(), ".env")]; + let validatedEnvConfig = void 0; + let config = options.ignoreEnvFile ? {} : this.loadEnvFile(envFilePaths, options); + if (!options.ignoreEnvVars && options.validatePredefined !== false) { + config = { + ...config, + ...process.env + }; + } + if (options.validate) { + const validatedConfig = options.validate(config); + validatedEnvConfig = validatedConfig; + this.assignVariablesToProcess(validatedConfig); + } else if (options.validationSchema) { + const validationOptions = this.getSchemaValidationOptions(options); + const { error, value: validatedConfig } = options.validationSchema.validate(config, validationOptions); + if (error) { + throw new Error(`Config validation error: ${error.message}`); + } + validatedEnvConfig = validatedConfig; + this.assignVariablesToProcess(validatedConfig); + } else { + this.assignVariablesToProcess(config); + } + const isConfigToLoad = options.load && options.load.length; + const configFactory = await Promise.all(options.load || []); + const providers = configFactory.map((factory) => (0, create_config_factory_util_1.createConfigProvider)(factory)).filter((item) => item); + const configProviderTokens = providers.map((item) => item.provide); + const configServiceProvider = { + provide: config_service_1.ConfigService, + useFactory: /* @__PURE__ */ __name((configService) => { + const untypedConfigService = configService; + if (options.cache) { + untypedConfigService.isCacheEnabled = true; + } + if (options.skipProcessEnv) { + untypedConfigService.skipProcessEnv = true; + } + configService.setEnvFilePaths(envFilePaths); + return configService; + }, "useFactory"), + inject: [config_constants_1.CONFIGURATION_SERVICE_TOKEN, ...configProviderTokens] + }; + providers.push(configServiceProvider); + if (validatedEnvConfig) { + const validatedEnvConfigLoader = { + provide: config_constants_1.VALIDATED_ENV_LOADER, + useFactory: /* @__PURE__ */ __name((host) => { + host[config_constants_1.VALIDATED_ENV_PROPNAME] = validatedEnvConfig; + }, "useFactory"), + inject: [config_constants_1.CONFIGURATION_TOKEN] + }; + providers.push(validatedEnvConfigLoader); + } + this.environmentVariablesLoadedSignal(); + return { + module: ConfigModule_1, + global: options.isGlobal, + providers: isConfigToLoad ? [ + ...providers, + { + provide: config_constants_1.CONFIGURATION_LOADER, + useFactory: /* @__PURE__ */ __name((host, ...configurations) => { + configurations.forEach((item, index) => this.mergePartial(host, item, providers[index])); + }, "useFactory"), + inject: [config_constants_1.CONFIGURATION_TOKEN, ...configProviderTokens] + } + ] : providers, + exports: [config_service_1.ConfigService, ...configProviderTokens] + }; + } + /** + * Registers configuration object (partial registration). + * @param config + */ + static forFeature(config) { + const configProvider = (0, create_config_factory_util_1.createConfigProvider)(config); + const serviceProvider = { + provide: config_service_1.ConfigService, + useFactory: /* @__PURE__ */ __name((configService) => configService, "useFactory"), + inject: [config_constants_1.CONFIGURATION_SERVICE_TOKEN, configProvider.provide] + }; + return { + module: ConfigModule_1, + providers: [ + configProvider, + serviceProvider, + { + provide: config_constants_1.CONFIGURATION_LOADER, + useFactory: /* @__PURE__ */ __name((host, partialConfig) => { + this.mergePartial(host, partialConfig, configProvider); + }, "useFactory"), + inject: [config_constants_1.CONFIGURATION_TOKEN, configProvider.provide] + } + ], + exports: [config_service_1.ConfigService, configProvider.provide] + }; + } + static loadEnvFile(envFilePaths, options) { + let config = {}; + for (const envFilePath of envFilePaths) { + if (fs.existsSync(envFilePath)) { + config = Object.assign(dotenv.parse(fs.readFileSync(envFilePath)), config); + if (options.expandVariables) { + const expandOptions = typeof options.expandVariables === "object" ? options.expandVariables : {}; + config = (0, dotenv_expand_1.expand)({ ...expandOptions, parsed: config }).parsed || config; + } + } + } + return config; + } + static assignVariablesToProcess(config) { + if (!(0, shared_utils_1.isObject)(config)) { + return; + } + const keys = Object.keys(config).filter((key) => !(key in process.env)); + keys.forEach((key) => { + const value = config[key]; + if (typeof value === "string") { + process.env[key] = value; + } else if (typeof value === "boolean" || typeof value === "number") { + process.env[key] = `${value}`; + } + }); + } + static mergePartial(host, item, provider) { + const factoryRef = provider.useFactory; + const token = (0, get_registration_token_util_1.getRegistrationToken)(factoryRef); + (0, merge_configs_util_1.mergeConfigObject)(host, item, token); + } + static getSchemaValidationOptions(options) { + if (options.validationOptions) { + if (typeof options.validationOptions.allowUnknown === "undefined") { + options.validationOptions.allowUnknown = true; + } + return options.validationOptions; + } + return { + abortEarly: false, + allowUnknown: true + }; + } + }; + exports2.ConfigModule = ConfigModule; + ConfigModule._envVariablesLoaded = new Promise((resolve) => ConfigModule_1.environmentVariablesLoadedSignal = resolve); + exports2.ConfigModule = ConfigModule = ConfigModule_1 = __decorate2([ + (0, common_12.Module)({ + imports: [config_host_module_1.ConfigHostModule], + providers: [ + { + provide: config_service_1.ConfigService, + useExisting: config_constants_1.CONFIGURATION_SERVICE_TOKEN + } + ], + exports: [config_host_module_1.ConfigHostModule, config_service_1.ConfigService] + }) + ], ConfigModule); + } +}); + +// node_modules/@nestjs/config/dist/conditional.module.js +var require_conditional_module = __commonJS({ + "node_modules/@nestjs/config/dist/conditional.module.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConditionalModule = void 0; + var common_12 = require_common(); + var config_module_1 = require_config_module(); + var getInstanceName = /* @__PURE__ */ __name((instance) => { + if (instance?.forwardRef) { + return instance.forwardRef()?.name; + } + if (instance.module) { + return instance.module?.name; + } + return instance.name; + }, "getInstanceName"); + var ConditionalModule = class _ConditionalModule { + static { + __name(this, "ConditionalModule"); + } + /** + * @publicApi + */ + static async registerWhen(module3, condition, options) { + const { timeout = 5e3, debug = true } = options ?? {}; + const moduleName = getInstanceName(module3) || module3.toString(); + const timer = setTimeout(() => { + throw new Error(`Nest was not able to resolve the config variables within ${timeout} milliseconds. Bause of this, the ConditionalModule was not able to determine if ${moduleName} should be registered or not`); + }, timeout); + timer.unref(); + const returnModule = { module: _ConditionalModule, imports: [], exports: [] }; + if (typeof condition === "string") { + const key = condition; + condition = /* @__PURE__ */ __name((env) => { + return env[key]?.toLowerCase() !== "false"; + }, "condition"); + } + await config_module_1.ConfigModule.envVariablesLoaded; + clearTimeout(timer); + const evaluation = condition(process.env); + if (evaluation) { + returnModule.imports.push(module3); + returnModule.exports.push(module3); + } else { + if (debug) { + common_12.Logger.debug(`${condition.toString()} evaluated to false. Skipping the registration of ${moduleName}`, _ConditionalModule.name); + } + } + return returnModule; + } + }; + exports2.ConditionalModule = ConditionalModule; + } +}); + +// node_modules/@nestjs/config/dist/types/config-object.type.js +var require_config_object_type = __commonJS({ + "node_modules/@nestjs/config/dist/types/config-object.type.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/config/dist/types/config.type.js +var require_config_type = __commonJS({ + "node_modules/@nestjs/config/dist/types/config.type.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/config/dist/types/no-infer.type.js +var require_no_infer_type = __commonJS({ + "node_modules/@nestjs/config/dist/types/no-infer.type.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/config/dist/types/path-value.type.js +var require_path_value_type = __commonJS({ + "node_modules/@nestjs/config/dist/types/path-value.type.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/config/dist/types/index.js +var require_types2 = __commonJS({ + "node_modules/@nestjs/config/dist/types/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_config_object_type(), exports2); + __exportStar2(require_config_type(), exports2); + __exportStar2(require_no_infer_type(), exports2); + __exportStar2(require_path_value_type(), exports2); + } +}); + +// node_modules/@nestjs/config/dist/utils/register-as.util.js +var require_register_as_util = __commonJS({ + "node_modules/@nestjs/config/dist/utils/register-as.util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.registerAs = registerAs; + var __1 = require_dist7(); + var config_constants_1 = require_config_constants(); + var get_config_token_util_1 = require_get_config_token_util(); + function registerAs(token, configFactory) { + const defineProperty = /* @__PURE__ */ __name((key, value) => { + Object.defineProperty(configFactory, key, { + configurable: false, + enumerable: false, + value, + writable: false + }); + }, "defineProperty"); + defineProperty(config_constants_1.PARTIAL_CONFIGURATION_KEY, token); + defineProperty(config_constants_1.PARTIAL_CONFIGURATION_PROPNAME, (0, get_config_token_util_1.getConfigToken)(token)); + defineProperty(config_constants_1.AS_PROVIDER_METHOD_KEY, () => ({ + imports: [__1.ConfigModule.forFeature(configFactory)], + useFactory: /* @__PURE__ */ __name((config) => config, "useFactory"), + inject: [(0, get_config_token_util_1.getConfigToken)(token)] + })); + return configFactory; + } + __name(registerAs, "registerAs"); + } +}); + +// node_modules/@nestjs/config/dist/utils/index.js +var require_utils14 = __commonJS({ + "node_modules/@nestjs/config/dist/utils/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_register_as_util(), exports2); + __exportStar2(require_get_config_token_util(), exports2); + } +}); + +// node_modules/@nestjs/config/dist/interfaces/config-change-event.interface.js +var require_config_change_event_interface = __commonJS({ + "node_modules/@nestjs/config/dist/interfaces/config-change-event.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/config/dist/interfaces/config-factory.interface.js +var require_config_factory_interface = __commonJS({ + "node_modules/@nestjs/config/dist/interfaces/config-factory.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/config/dist/interfaces/config-module-options.interface.js +var require_config_module_options_interface = __commonJS({ + "node_modules/@nestjs/config/dist/interfaces/config-module-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/config/dist/interfaces/index.js +var require_interfaces8 = __commonJS({ + "node_modules/@nestjs/config/dist/interfaces/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_config_change_event_interface(), exports2); + __exportStar2(require_config_factory_interface(), exports2); + __exportStar2(require_config_module_options_interface(), exports2); + } +}); + +// node_modules/@nestjs/config/dist/index.js +var require_dist7 = __commonJS({ + "node_modules/@nestjs/config/dist/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_conditional_module(), exports2); + __exportStar2(require_config_module(), exports2); + __exportStar2(require_config_service(), exports2); + __exportStar2(require_types2(), exports2); + __exportStar2(require_utils14(), exports2); + __exportStar2(require_interfaces8(), exports2); + } +}); + +// node_modules/@nestjs/config/index.js +var require_config2 = __commonJS({ + "node_modules/@nestjs/config/index.js"(exports2) { + "use strict"; + function __export2(m) { + for (var p in m) if (!exports2.hasOwnProperty(p)) exports2[p] = m[p]; + } + __name(__export2, "__export"); + exports2.__esModule = true; + __export2(require_dist7()); + } +}); + +// node_modules/@nestjs/schedule/dist/enums/cron-expression.enum.js +var require_cron_expression_enum = __commonJS({ + "node_modules/@nestjs/schedule/dist/enums/cron-expression.enum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CronExpression = void 0; + var CronExpression; + (function(CronExpression2) { + CronExpression2["EVERY_SECOND"] = "* * * * * *"; + CronExpression2["EVERY_5_SECONDS"] = "*/5 * * * * *"; + CronExpression2["EVERY_10_SECONDS"] = "*/10 * * * * *"; + CronExpression2["EVERY_30_SECONDS"] = "*/30 * * * * *"; + CronExpression2["EVERY_MINUTE"] = "*/1 * * * *"; + CronExpression2["EVERY_5_MINUTES"] = "0 */5 * * * *"; + CronExpression2["EVERY_10_MINUTES"] = "0 */10 * * * *"; + CronExpression2["EVERY_30_MINUTES"] = "0 */30 * * * *"; + CronExpression2["EVERY_HOUR"] = "0 0-23/1 * * *"; + CronExpression2["EVERY_2_HOURS"] = "0 0-23/2 * * *"; + CronExpression2["EVERY_3_HOURS"] = "0 0-23/3 * * *"; + CronExpression2["EVERY_4_HOURS"] = "0 0-23/4 * * *"; + CronExpression2["EVERY_5_HOURS"] = "0 0-23/5 * * *"; + CronExpression2["EVERY_6_HOURS"] = "0 0-23/6 * * *"; + CronExpression2["EVERY_7_HOURS"] = "0 0-23/7 * * *"; + CronExpression2["EVERY_8_HOURS"] = "0 0-23/8 * * *"; + CronExpression2["EVERY_9_HOURS"] = "0 0-23/9 * * *"; + CronExpression2["EVERY_10_HOURS"] = "0 0-23/10 * * *"; + CronExpression2["EVERY_11_HOURS"] = "0 0-23/11 * * *"; + CronExpression2["EVERY_12_HOURS"] = "0 0-23/12 * * *"; + CronExpression2["EVERY_DAY_AT_1AM"] = "0 01 * * *"; + CronExpression2["EVERY_DAY_AT_2AM"] = "0 02 * * *"; + CronExpression2["EVERY_DAY_AT_3AM"] = "0 03 * * *"; + CronExpression2["EVERY_DAY_AT_4AM"] = "0 04 * * *"; + CronExpression2["EVERY_DAY_AT_5AM"] = "0 05 * * *"; + CronExpression2["EVERY_DAY_AT_6AM"] = "0 06 * * *"; + CronExpression2["EVERY_DAY_AT_7AM"] = "0 07 * * *"; + CronExpression2["EVERY_DAY_AT_8AM"] = "0 08 * * *"; + CronExpression2["EVERY_DAY_AT_9AM"] = "0 09 * * *"; + CronExpression2["EVERY_DAY_AT_10AM"] = "0 10 * * *"; + CronExpression2["EVERY_DAY_AT_11AM"] = "0 11 * * *"; + CronExpression2["EVERY_DAY_AT_NOON"] = "0 12 * * *"; + CronExpression2["EVERY_DAY_AT_1PM"] = "0 13 * * *"; + CronExpression2["EVERY_DAY_AT_2PM"] = "0 14 * * *"; + CronExpression2["EVERY_DAY_AT_3PM"] = "0 15 * * *"; + CronExpression2["EVERY_DAY_AT_4PM"] = "0 16 * * *"; + CronExpression2["EVERY_DAY_AT_5PM"] = "0 17 * * *"; + CronExpression2["EVERY_DAY_AT_6PM"] = "0 18 * * *"; + CronExpression2["EVERY_DAY_AT_7PM"] = "0 19 * * *"; + CronExpression2["EVERY_DAY_AT_8PM"] = "0 20 * * *"; + CronExpression2["EVERY_DAY_AT_9PM"] = "0 21 * * *"; + CronExpression2["EVERY_DAY_AT_10PM"] = "0 22 * * *"; + CronExpression2["EVERY_DAY_AT_11PM"] = "0 23 * * *"; + CronExpression2["EVERY_DAY_AT_MIDNIGHT"] = "0 0 * * *"; + CronExpression2["EVERY_WEEK"] = "0 0 * * 0"; + CronExpression2["EVERY_WEEKDAY"] = "0 0 * * 1-5"; + CronExpression2["EVERY_WEEKEND"] = "0 0 * * 6,0"; + CronExpression2["EVERY_1ST_DAY_OF_MONTH_AT_MIDNIGHT"] = "0 0 1 * *"; + CronExpression2["EVERY_1ST_DAY_OF_MONTH_AT_NOON"] = "0 12 1 * *"; + CronExpression2["EVERY_2ND_HOUR"] = "0 */2 * * *"; + CronExpression2["EVERY_2ND_HOUR_FROM_1AM_THROUGH_11PM"] = "0 1-23/2 * * *"; + CronExpression2["EVERY_2ND_MONTH"] = "0 0 1 */2 *"; + CronExpression2["EVERY_QUARTER"] = "0 0 1 */3 *"; + CronExpression2["EVERY_6_MONTHS"] = "0 0 1 */6 *"; + CronExpression2["EVERY_YEAR"] = "0 0 1 1 *"; + CronExpression2["EVERY_30_MINUTES_BETWEEN_9AM_AND_5PM"] = "0 */30 9-17 * * *"; + CronExpression2["EVERY_30_MINUTES_BETWEEN_9AM_AND_6PM"] = "0 */30 9-18 * * *"; + CronExpression2["EVERY_30_MINUTES_BETWEEN_10AM_AND_7PM"] = "0 */30 10-19 * * *"; + CronExpression2["MONDAY_TO_FRIDAY_AT_1AM"] = "0 0 01 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_2AM"] = "0 0 02 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_3AM"] = "0 0 03 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_4AM"] = "0 0 04 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_5AM"] = "0 0 05 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_6AM"] = "0 0 06 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_7AM"] = "0 0 07 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_8AM"] = "0 0 08 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_9AM"] = "0 0 09 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_09_30AM"] = "0 30 09 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_10AM"] = "0 0 10 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_11AM"] = "0 0 11 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_11_30AM"] = "0 30 11 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_12PM"] = "0 0 12 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_1PM"] = "0 0 13 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_2PM"] = "0 0 14 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_3PM"] = "0 0 15 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_4PM"] = "0 0 16 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_5PM"] = "0 0 17 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_6PM"] = "0 0 18 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_7PM"] = "0 0 19 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_8PM"] = "0 0 20 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_9PM"] = "0 0 21 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_10PM"] = "0 0 22 * * 1-5"; + CronExpression2["MONDAY_TO_FRIDAY_AT_11PM"] = "0 0 23 * * 1-5"; + })(CronExpression || (exports2.CronExpression = CronExpression = {})); + } +}); + +// node_modules/@nestjs/schedule/dist/enums/index.js +var require_enums3 = __commonJS({ + "node_modules/@nestjs/schedule/dist/enums/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CronExpression = void 0; + var cron_expression_enum_1 = require_cron_expression_enum(); + Object.defineProperty(exports2, "CronExpression", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return cron_expression_enum_1.CronExpression; + }, "get") }); + } +}); + +// node_modules/@nestjs/schedule/dist/enums/scheduler-type.enum.js +var require_scheduler_type_enum = __commonJS({ + "node_modules/@nestjs/schedule/dist/enums/scheduler-type.enum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SchedulerType = void 0; + var SchedulerType; + (function(SchedulerType2) { + SchedulerType2[SchedulerType2["CRON"] = 1] = "CRON"; + SchedulerType2[SchedulerType2["TIMEOUT"] = 2] = "TIMEOUT"; + SchedulerType2[SchedulerType2["INTERVAL"] = 3] = "INTERVAL"; + })(SchedulerType || (exports2.SchedulerType = SchedulerType = {})); + } +}); + +// node_modules/@nestjs/schedule/dist/schedule.constants.js +var require_schedule_constants = __commonJS({ + "node_modules/@nestjs/schedule/dist/schedule.constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SCHEDULE_MODULE_OPTIONS = exports2.SCHEDULE_TIMEOUT_OPTIONS = exports2.SCHEDULE_INTERVAL_OPTIONS = exports2.SCHEDULE_CRON_OPTIONS = exports2.SCHEDULER_TYPE = exports2.SCHEDULER_NAME = void 0; + exports2.SCHEDULER_NAME = "SCHEDULER_NAME"; + exports2.SCHEDULER_TYPE = "SCHEDULER_TYPE"; + exports2.SCHEDULE_CRON_OPTIONS = "SCHEDULE_CRON_OPTIONS"; + exports2.SCHEDULE_INTERVAL_OPTIONS = "SCHEDULE_INTERVAL_OPTIONS"; + exports2.SCHEDULE_TIMEOUT_OPTIONS = "SCHEDULE_TIMEOUT_OPTIONS"; + exports2.SCHEDULE_MODULE_OPTIONS = "SCHEDULE_MODULE_OPTIONS"; + } +}); + +// node_modules/@nestjs/schedule/dist/decorators/cron.decorator.js +var require_cron_decorator = __commonJS({ + "node_modules/@nestjs/schedule/dist/decorators/cron.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Cron = Cron; + var common_12 = require_common(); + var scheduler_type_enum_1 = require_scheduler_type_enum(); + var schedule_constants_1 = require_schedule_constants(); + function Cron(cronTime, options = {}) { + const name = options?.name; + return (0, common_12.applyDecorators)((0, common_12.SetMetadata)(schedule_constants_1.SCHEDULE_CRON_OPTIONS, { + ...options, + cronTime + }), (0, common_12.SetMetadata)(schedule_constants_1.SCHEDULER_NAME, name), (0, common_12.SetMetadata)(schedule_constants_1.SCHEDULER_TYPE, scheduler_type_enum_1.SchedulerType.CRON)); + } + __name(Cron, "Cron"); + } +}); + +// node_modules/@nestjs/schedule/dist/decorators/interval.decorator.js +var require_interval_decorator = __commonJS({ + "node_modules/@nestjs/schedule/dist/decorators/interval.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Interval = Interval; + var common_12 = require_common(); + var scheduler_type_enum_1 = require_scheduler_type_enum(); + var schedule_constants_1 = require_schedule_constants(); + function Interval(nameOrTimeout, timeout) { + const [name, intervalTimeout] = typeof nameOrTimeout === "string" ? [nameOrTimeout, timeout] : [void 0, nameOrTimeout]; + return (0, common_12.applyDecorators)((0, common_12.SetMetadata)(schedule_constants_1.SCHEDULE_INTERVAL_OPTIONS, { timeout: intervalTimeout }), (0, common_12.SetMetadata)(schedule_constants_1.SCHEDULER_NAME, name), (0, common_12.SetMetadata)(schedule_constants_1.SCHEDULER_TYPE, scheduler_type_enum_1.SchedulerType.INTERVAL)); + } + __name(Interval, "Interval"); + } +}); + +// node_modules/@nestjs/schedule/dist/decorators/timeout.decorator.js +var require_timeout_decorator = __commonJS({ + "node_modules/@nestjs/schedule/dist/decorators/timeout.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Timeout = Timeout; + var common_12 = require_common(); + var scheduler_type_enum_1 = require_scheduler_type_enum(); + var schedule_constants_1 = require_schedule_constants(); + function Timeout(nameOrTimeout, timeout) { + const [name, timeoutValue] = typeof nameOrTimeout === "string" ? [nameOrTimeout, timeout] : [void 0, nameOrTimeout]; + return (0, common_12.applyDecorators)((0, common_12.SetMetadata)(schedule_constants_1.SCHEDULE_TIMEOUT_OPTIONS, { timeout: timeoutValue }), (0, common_12.SetMetadata)(schedule_constants_1.SCHEDULER_NAME, name), (0, common_12.SetMetadata)(schedule_constants_1.SCHEDULER_TYPE, scheduler_type_enum_1.SchedulerType.TIMEOUT)); + } + __name(Timeout, "Timeout"); + } +}); + +// node_modules/@nestjs/schedule/dist/decorators/index.js +var require_decorators6 = __commonJS({ + "node_modules/@nestjs/schedule/dist/decorators/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_cron_decorator(), exports2); + __exportStar2(require_interval_decorator(), exports2); + __exportStar2(require_timeout_decorator(), exports2); + } +}); + +// node_modules/@nestjs/schedule/dist/interfaces/schedule-module-options.interface.js +var require_schedule_module_options_interface = __commonJS({ + "node_modules/@nestjs/schedule/dist/interfaces/schedule-module-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// node_modules/@nestjs/schedule/dist/schedule-metadata.accessor.js +var require_schedule_metadata_accessor = __commonJS({ + "node_modules/@nestjs/schedule/dist/schedule-metadata.accessor.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SchedulerMetadataAccessor = void 0; + var common_12 = require_common(); + var core_12 = require_core3(); + var schedule_constants_1 = require_schedule_constants(); + var SchedulerMetadataAccessor = class SchedulerMetadataAccessor { + static { + __name(this, "SchedulerMetadataAccessor"); + } + reflector; + constructor(reflector) { + this.reflector = reflector; + } + getSchedulerType(target) { + return this.getMetadata(schedule_constants_1.SCHEDULER_TYPE, target); + } + getSchedulerName(target) { + return this.getMetadata(schedule_constants_1.SCHEDULER_NAME, target); + } + getTimeoutMetadata(target) { + return this.getMetadata(schedule_constants_1.SCHEDULE_TIMEOUT_OPTIONS, target); + } + getIntervalMetadata(target) { + return this.getMetadata(schedule_constants_1.SCHEDULE_INTERVAL_OPTIONS, target); + } + getCronMetadata(target) { + return this.getMetadata(schedule_constants_1.SCHEDULE_CRON_OPTIONS, target); + } + getMetadata(key, target) { + const isObject = typeof target === "object" ? target !== null : typeof target === "function"; + return isObject ? this.reflector.get(key, target) : void 0; + } + }; + exports2.SchedulerMetadataAccessor = SchedulerMetadataAccessor; + exports2.SchedulerMetadataAccessor = SchedulerMetadataAccessor = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [core_12.Reflector]) + ], SchedulerMetadataAccessor); + } +}); + +// node_modules/luxon/build/node/luxon.js +var require_luxon = __commonJS({ + "node_modules/luxon/build/node/luxon.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var LuxonError = class extends Error { + static { + __name(this, "LuxonError"); + } + }; + var InvalidDateTimeError = class extends LuxonError { + static { + __name(this, "InvalidDateTimeError"); + } + constructor(reason) { + super(`Invalid DateTime: ${reason.toMessage()}`); + } + }; + var InvalidIntervalError = class extends LuxonError { + static { + __name(this, "InvalidIntervalError"); + } + constructor(reason) { + super(`Invalid Interval: ${reason.toMessage()}`); + } + }; + var InvalidDurationError = class extends LuxonError { + static { + __name(this, "InvalidDurationError"); + } + constructor(reason) { + super(`Invalid Duration: ${reason.toMessage()}`); + } + }; + var ConflictingSpecificationError = class extends LuxonError { + static { + __name(this, "ConflictingSpecificationError"); + } + }; + var InvalidUnitError = class extends LuxonError { + static { + __name(this, "InvalidUnitError"); + } + constructor(unit) { + super(`Invalid unit ${unit}`); + } + }; + var InvalidArgumentError = class extends LuxonError { + static { + __name(this, "InvalidArgumentError"); + } + }; + var ZoneIsAbstractError = class extends LuxonError { + static { + __name(this, "ZoneIsAbstractError"); + } + constructor() { + super("Zone is an abstract class"); + } + }; + var n = "numeric"; + var s = "short"; + var l = "long"; + var DATE_SHORT = { + year: n, + month: n, + day: n + }; + var DATE_MED = { + year: n, + month: s, + day: n + }; + var DATE_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s + }; + var DATE_FULL = { + year: n, + month: l, + day: n + }; + var DATE_HUGE = { + year: n, + month: l, + day: n, + weekday: l + }; + var TIME_SIMPLE = { + hour: n, + minute: n + }; + var TIME_WITH_SECONDS = { + hour: n, + minute: n, + second: n + }; + var TIME_WITH_SHORT_OFFSET = { + hour: n, + minute: n, + second: n, + timeZoneName: s + }; + var TIME_WITH_LONG_OFFSET = { + hour: n, + minute: n, + second: n, + timeZoneName: l + }; + var TIME_24_SIMPLE = { + hour: n, + minute: n, + hourCycle: "h23" + }; + var TIME_24_WITH_SECONDS = { + hour: n, + minute: n, + second: n, + hourCycle: "h23" + }; + var TIME_24_WITH_SHORT_OFFSET = { + hour: n, + minute: n, + second: n, + hourCycle: "h23", + timeZoneName: s + }; + var TIME_24_WITH_LONG_OFFSET = { + hour: n, + minute: n, + second: n, + hourCycle: "h23", + timeZoneName: l + }; + var DATETIME_SHORT = { + year: n, + month: n, + day: n, + hour: n, + minute: n + }; + var DATETIME_SHORT_WITH_SECONDS = { + year: n, + month: n, + day: n, + hour: n, + minute: n, + second: n + }; + var DATETIME_MED = { + year: n, + month: s, + day: n, + hour: n, + minute: n + }; + var DATETIME_MED_WITH_SECONDS = { + year: n, + month: s, + day: n, + hour: n, + minute: n, + second: n + }; + var DATETIME_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s, + hour: n, + minute: n + }; + var DATETIME_FULL = { + year: n, + month: l, + day: n, + hour: n, + minute: n, + timeZoneName: s + }; + var DATETIME_FULL_WITH_SECONDS = { + year: n, + month: l, + day: n, + hour: n, + minute: n, + second: n, + timeZoneName: s + }; + var DATETIME_HUGE = { + year: n, + month: l, + day: n, + weekday: l, + hour: n, + minute: n, + timeZoneName: l + }; + var DATETIME_HUGE_WITH_SECONDS = { + year: n, + month: l, + day: n, + weekday: l, + hour: n, + minute: n, + second: n, + timeZoneName: l + }; + var Zone = class { + static { + __name(this, "Zone"); + } + /** + * The type of zone + * @abstract + * @type {string} + */ + get type() { + throw new ZoneIsAbstractError(); + } + /** + * The name of this zone. + * @abstract + * @type {string} + */ + get name() { + throw new ZoneIsAbstractError(); + } + /** + * The IANA name of this zone. + * Defaults to `name` if not overwritten by a subclass. + * @abstract + * @type {string} + */ + get ianaName() { + return this.name; + } + /** + * Returns whether the offset is known to be fixed for the whole year. + * @abstract + * @type {boolean} + */ + get isUniversal() { + throw new ZoneIsAbstractError(); + } + /** + * Returns the offset's common name (such as EST) at the specified timestamp + * @abstract + * @param {number} ts - Epoch milliseconds for which to get the name + * @param {Object} opts - Options to affect the format + * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'. + * @param {string} opts.locale - What locale to return the offset name in. + * @return {string} + */ + offsetName(ts, opts) { + throw new ZoneIsAbstractError(); + } + /** + * Returns the offset's value as a string + * @abstract + * @param {number} ts - Epoch milliseconds for which to get the offset + * @param {string} format - What style of offset to return. + * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively + * @return {string} + */ + formatOffset(ts, format) { + throw new ZoneIsAbstractError(); + } + /** + * Return the offset in minutes for this zone at the specified timestamp. + * @abstract + * @param {number} ts - Epoch milliseconds for which to compute the offset + * @return {number} + */ + offset(ts) { + throw new ZoneIsAbstractError(); + } + /** + * Return whether this Zone is equal to another zone + * @abstract + * @param {Zone} otherZone - the zone to compare + * @return {boolean} + */ + equals(otherZone) { + throw new ZoneIsAbstractError(); + } + /** + * Return whether this Zone is valid. + * @abstract + * @type {boolean} + */ + get isValid() { + throw new ZoneIsAbstractError(); + } + }; + var singleton$1 = null; + var SystemZone = class _SystemZone extends Zone { + static { + __name(this, "SystemZone"); + } + /** + * Get a singleton instance of the local zone + * @return {SystemZone} + */ + static get instance() { + if (singleton$1 === null) { + singleton$1 = new _SystemZone(); + } + return singleton$1; + } + /** @override **/ + get type() { + return "system"; + } + /** @override **/ + get name() { + return new Intl.DateTimeFormat().resolvedOptions().timeZone; + } + /** @override **/ + get isUniversal() { + return false; + } + /** @override **/ + offsetName(ts, { + format, + locale + }) { + return parseZoneInfo(ts, format, locale); + } + /** @override **/ + formatOffset(ts, format) { + return formatOffset(this.offset(ts), format); + } + /** @override **/ + offset(ts) { + return -new Date(ts).getTimezoneOffset(); + } + /** @override **/ + equals(otherZone) { + return otherZone.type === "system"; + } + /** @override **/ + get isValid() { + return true; + } + }; + var dtfCache = /* @__PURE__ */ new Map(); + function makeDTF(zoneName) { + let dtf = dtfCache.get(zoneName); + if (dtf === void 0) { + dtf = new Intl.DateTimeFormat("en-US", { + hour12: false, + timeZone: zoneName, + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + era: "short" + }); + dtfCache.set(zoneName, dtf); + } + return dtf; + } + __name(makeDTF, "makeDTF"); + var typeToPos = { + year: 0, + month: 1, + day: 2, + era: 3, + hour: 4, + minute: 5, + second: 6 + }; + function hackyOffset(dtf, date) { + const formatted = dtf.format(date).replace(/\u200E/g, ""), parsed = /(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(formatted), [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed; + return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond]; + } + __name(hackyOffset, "hackyOffset"); + function partsOffset(dtf, date) { + const formatted = dtf.formatToParts(date); + const filled = []; + for (let i = 0; i < formatted.length; i++) { + const { + type, + value + } = formatted[i]; + const pos = typeToPos[type]; + if (type === "era") { + filled[pos] = value; + } else if (!isUndefined(pos)) { + filled[pos] = parseInt(value, 10); + } + } + return filled; + } + __name(partsOffset, "partsOffset"); + var ianaZoneCache = /* @__PURE__ */ new Map(); + var IANAZone = class _IANAZone extends Zone { + static { + __name(this, "IANAZone"); + } + /** + * @param {string} name - Zone name + * @return {IANAZone} + */ + static create(name) { + let zone = ianaZoneCache.get(name); + if (zone === void 0) { + ianaZoneCache.set(name, zone = new _IANAZone(name)); + } + return zone; + } + /** + * Reset local caches. Should only be necessary in testing scenarios. + * @return {void} + */ + static resetCache() { + ianaZoneCache.clear(); + dtfCache.clear(); + } + /** + * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that. + * @param {string} s - The string to check validity on + * @example IANAZone.isValidSpecifier("America/New_York") //=> true + * @example IANAZone.isValidSpecifier("Sport~~blorp") //=> false + * @deprecated For backward compatibility, this forwards to isValidZone, better use `isValidZone()` directly instead. + * @return {boolean} + */ + static isValidSpecifier(s2) { + return this.isValidZone(s2); + } + /** + * Returns whether the provided string identifies a real zone + * @param {string} zone - The string to check + * @example IANAZone.isValidZone("America/New_York") //=> true + * @example IANAZone.isValidZone("Fantasia/Castle") //=> false + * @example IANAZone.isValidZone("Sport~~blorp") //=> false + * @return {boolean} + */ + static isValidZone(zone) { + if (!zone) { + return false; + } + try { + new Intl.DateTimeFormat("en-US", { + timeZone: zone + }).format(); + return true; + } catch (e) { + return false; + } + } + constructor(name) { + super(); + this.zoneName = name; + this.valid = _IANAZone.isValidZone(name); + } + /** + * The type of zone. `iana` for all instances of `IANAZone`. + * @override + * @type {string} + */ + get type() { + return "iana"; + } + /** + * The name of this zone (i.e. the IANA zone name). + * @override + * @type {string} + */ + get name() { + return this.zoneName; + } + /** + * Returns whether the offset is known to be fixed for the whole year: + * Always returns false for all IANA zones. + * @override + * @type {boolean} + */ + get isUniversal() { + return false; + } + /** + * Returns the offset's common name (such as EST) at the specified timestamp + * @override + * @param {number} ts - Epoch milliseconds for which to get the name + * @param {Object} opts - Options to affect the format + * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'. + * @param {string} opts.locale - What locale to return the offset name in. + * @return {string} + */ + offsetName(ts, { + format, + locale + }) { + return parseZoneInfo(ts, format, locale, this.name); + } + /** + * Returns the offset's value as a string + * @override + * @param {number} ts - Epoch milliseconds for which to get the offset + * @param {string} format - What style of offset to return. + * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively + * @return {string} + */ + formatOffset(ts, format) { + return formatOffset(this.offset(ts), format); + } + /** + * Return the offset in minutes for this zone at the specified timestamp. + * @override + * @param {number} ts - Epoch milliseconds for which to compute the offset + * @return {number} + */ + offset(ts) { + if (!this.valid) return NaN; + const date = new Date(ts); + if (isNaN(date)) return NaN; + const dtf = makeDTF(this.name); + let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date); + if (adOrBc === "BC") { + year = -Math.abs(year) + 1; + } + const adjustedHour = hour === 24 ? 0 : hour; + const asUTC = objToLocalTS({ + year, + month, + day, + hour: adjustedHour, + minute, + second, + millisecond: 0 + }); + let asTS = +date; + const over = asTS % 1e3; + asTS -= over >= 0 ? over : 1e3 + over; + return (asUTC - asTS) / (60 * 1e3); + } + /** + * Return whether this Zone is equal to another zone + * @override + * @param {Zone} otherZone - the zone to compare + * @return {boolean} + */ + equals(otherZone) { + return otherZone.type === "iana" && otherZone.name === this.name; + } + /** + * Return whether this Zone is valid. + * @override + * @type {boolean} + */ + get isValid() { + return this.valid; + } + }; + var intlLFCache = {}; + function getCachedLF(locString, opts = {}) { + const key = JSON.stringify([locString, opts]); + let dtf = intlLFCache[key]; + if (!dtf) { + dtf = new Intl.ListFormat(locString, opts); + intlLFCache[key] = dtf; + } + return dtf; + } + __name(getCachedLF, "getCachedLF"); + var intlDTCache = /* @__PURE__ */ new Map(); + function getCachedDTF(locString, opts = {}) { + const key = JSON.stringify([locString, opts]); + let dtf = intlDTCache.get(key); + if (dtf === void 0) { + dtf = new Intl.DateTimeFormat(locString, opts); + intlDTCache.set(key, dtf); + } + return dtf; + } + __name(getCachedDTF, "getCachedDTF"); + var intlNumCache = /* @__PURE__ */ new Map(); + function getCachedINF(locString, opts = {}) { + const key = JSON.stringify([locString, opts]); + let inf = intlNumCache.get(key); + if (inf === void 0) { + inf = new Intl.NumberFormat(locString, opts); + intlNumCache.set(key, inf); + } + return inf; + } + __name(getCachedINF, "getCachedINF"); + var intlRelCache = /* @__PURE__ */ new Map(); + function getCachedRTF(locString, opts = {}) { + const { + base, + ...cacheKeyOpts + } = opts; + const key = JSON.stringify([locString, cacheKeyOpts]); + let inf = intlRelCache.get(key); + if (inf === void 0) { + inf = new Intl.RelativeTimeFormat(locString, opts); + intlRelCache.set(key, inf); + } + return inf; + } + __name(getCachedRTF, "getCachedRTF"); + var sysLocaleCache = null; + function systemLocale() { + if (sysLocaleCache) { + return sysLocaleCache; + } else { + sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale; + return sysLocaleCache; + } + } + __name(systemLocale, "systemLocale"); + var intlResolvedOptionsCache = /* @__PURE__ */ new Map(); + function getCachedIntResolvedOptions(locString) { + let opts = intlResolvedOptionsCache.get(locString); + if (opts === void 0) { + opts = new Intl.DateTimeFormat(locString).resolvedOptions(); + intlResolvedOptionsCache.set(locString, opts); + } + return opts; + } + __name(getCachedIntResolvedOptions, "getCachedIntResolvedOptions"); + var weekInfoCache = /* @__PURE__ */ new Map(); + function getCachedWeekInfo(locString) { + let data = weekInfoCache.get(locString); + if (!data) { + const locale = new Intl.Locale(locString); + data = "getWeekInfo" in locale ? locale.getWeekInfo() : locale.weekInfo; + if (!("minimalDays" in data)) { + data = { + ...fallbackWeekSettings, + ...data + }; + } + weekInfoCache.set(locString, data); + } + return data; + } + __name(getCachedWeekInfo, "getCachedWeekInfo"); + function parseLocaleString(localeStr) { + const xIndex = localeStr.indexOf("-x-"); + if (xIndex !== -1) { + localeStr = localeStr.substring(0, xIndex); + } + const uIndex = localeStr.indexOf("-u-"); + if (uIndex === -1) { + return [localeStr]; + } else { + let options; + let selectedStr; + try { + options = getCachedDTF(localeStr).resolvedOptions(); + selectedStr = localeStr; + } catch (e) { + const smaller = localeStr.substring(0, uIndex); + options = getCachedDTF(smaller).resolvedOptions(); + selectedStr = smaller; + } + const { + numberingSystem, + calendar + } = options; + return [selectedStr, numberingSystem, calendar]; + } + } + __name(parseLocaleString, "parseLocaleString"); + function intlConfigString(localeStr, numberingSystem, outputCalendar) { + if (outputCalendar || numberingSystem) { + if (!localeStr.includes("-u-")) { + localeStr += "-u"; + } + if (outputCalendar) { + localeStr += `-ca-${outputCalendar}`; + } + if (numberingSystem) { + localeStr += `-nu-${numberingSystem}`; + } + return localeStr; + } else { + return localeStr; + } + } + __name(intlConfigString, "intlConfigString"); + function mapMonths(f) { + const ms = []; + for (let i = 1; i <= 12; i++) { + const dt = DateTime.utc(2009, i, 1); + ms.push(f(dt)); + } + return ms; + } + __name(mapMonths, "mapMonths"); + function mapWeekdays(f) { + const ms = []; + for (let i = 1; i <= 7; i++) { + const dt = DateTime.utc(2016, 11, 13 + i); + ms.push(f(dt)); + } + return ms; + } + __name(mapWeekdays, "mapWeekdays"); + function listStuff(loc, length, englishFn, intlFn) { + const mode = loc.listingMode(); + if (mode === "error") { + return null; + } else if (mode === "en") { + return englishFn(length); + } else { + return intlFn(length); + } + } + __name(listStuff, "listStuff"); + function supportsFastNumbers(loc) { + if (loc.numberingSystem && loc.numberingSystem !== "latn") { + return false; + } else { + return loc.numberingSystem === "latn" || !loc.locale || loc.locale.startsWith("en") || getCachedIntResolvedOptions(loc.locale).numberingSystem === "latn"; + } + } + __name(supportsFastNumbers, "supportsFastNumbers"); + var PolyNumberFormatter = class { + static { + __name(this, "PolyNumberFormatter"); + } + constructor(intl, forceSimple, opts) { + this.padTo = opts.padTo || 0; + this.floor = opts.floor || false; + const { + padTo, + floor, + ...otherOpts + } = opts; + if (!forceSimple || Object.keys(otherOpts).length > 0) { + const intlOpts = { + useGrouping: false, + ...opts + }; + if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo; + this.inf = getCachedINF(intl, intlOpts); + } + } + format(i) { + if (this.inf) { + const fixed = this.floor ? Math.floor(i) : i; + return this.inf.format(fixed); + } else { + const fixed = this.floor ? Math.floor(i) : roundTo(i, 3); + return padStart(fixed, this.padTo); + } + } + }; + var PolyDateFormatter = class { + static { + __name(this, "PolyDateFormatter"); + } + constructor(dt, intl, opts) { + this.opts = opts; + this.originalZone = void 0; + let z = void 0; + if (this.opts.timeZone) { + this.dt = dt; + } else if (dt.zone.type === "fixed") { + const gmtOffset = -1 * (dt.offset / 60); + const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`; + if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) { + z = offsetZ; + this.dt = dt; + } else { + z = "UTC"; + this.dt = dt.offset === 0 ? dt : dt.setZone("UTC").plus({ + minutes: dt.offset + }); + this.originalZone = dt.zone; + } + } else if (dt.zone.type === "system") { + this.dt = dt; + } else if (dt.zone.type === "iana") { + this.dt = dt; + z = dt.zone.name; + } else { + z = "UTC"; + this.dt = dt.setZone("UTC").plus({ + minutes: dt.offset + }); + this.originalZone = dt.zone; + } + const intlOpts = { + ...this.opts + }; + intlOpts.timeZone = intlOpts.timeZone || z; + this.dtf = getCachedDTF(intl, intlOpts); + } + format() { + if (this.originalZone) { + return this.formatToParts().map(({ + value + }) => value).join(""); + } + return this.dtf.format(this.dt.toJSDate()); + } + formatToParts() { + const parts = this.dtf.formatToParts(this.dt.toJSDate()); + if (this.originalZone) { + return parts.map((part) => { + if (part.type === "timeZoneName") { + const offsetName = this.originalZone.offsetName(this.dt.ts, { + locale: this.dt.locale, + format: this.opts.timeZoneName + }); + return { + ...part, + value: offsetName + }; + } else { + return part; + } + }); + } + return parts; + } + resolvedOptions() { + return this.dtf.resolvedOptions(); + } + }; + var PolyRelFormatter = class { + static { + __name(this, "PolyRelFormatter"); + } + constructor(intl, isEnglish, opts) { + this.opts = { + style: "long", + ...opts + }; + if (!isEnglish && hasRelative()) { + this.rtf = getCachedRTF(intl, opts); + } + } + format(count, unit) { + if (this.rtf) { + return this.rtf.format(count, unit); + } else { + return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== "long"); + } + } + formatToParts(count, unit) { + if (this.rtf) { + return this.rtf.formatToParts(count, unit); + } else { + return []; + } + } + }; + var fallbackWeekSettings = { + firstDay: 1, + minimalDays: 4, + weekend: [6, 7] + }; + var Locale = class _Locale { + static { + __name(this, "Locale"); + } + static fromOpts(opts) { + return _Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.weekSettings, opts.defaultToEN); + } + static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) { + const specifiedLocale = locale || Settings.defaultLocale; + const localeR = specifiedLocale || (defaultToEN ? "en-US" : systemLocale()); + const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem; + const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar; + const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings; + return new _Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale); + } + static resetCache() { + sysLocaleCache = null; + intlDTCache.clear(); + intlNumCache.clear(); + intlRelCache.clear(); + intlResolvedOptionsCache.clear(); + weekInfoCache.clear(); + } + static fromObject({ + locale, + numberingSystem, + outputCalendar, + weekSettings + } = {}) { + return _Locale.create(locale, numberingSystem, outputCalendar, weekSettings); + } + constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) { + const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale); + this.locale = parsedLocale; + this.numberingSystem = numbering || parsedNumberingSystem || null; + this.outputCalendar = outputCalendar || parsedOutputCalendar || null; + this.weekSettings = weekSettings; + this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar); + this.weekdaysCache = { + format: {}, + standalone: {} + }; + this.monthsCache = { + format: {}, + standalone: {} + }; + this.meridiemCache = null; + this.eraCache = {}; + this.specifiedLocale = specifiedLocale; + this.fastNumbersCached = null; + } + get fastNumbers() { + if (this.fastNumbersCached == null) { + this.fastNumbersCached = supportsFastNumbers(this); + } + return this.fastNumbersCached; + } + listingMode() { + const isActuallyEn = this.isEnglish(); + const hasNoWeirdness = (this.numberingSystem === null || this.numberingSystem === "latn") && (this.outputCalendar === null || this.outputCalendar === "gregory"); + return isActuallyEn && hasNoWeirdness ? "en" : "intl"; + } + clone(alts) { + if (!alts || Object.getOwnPropertyNames(alts).length === 0) { + return this; + } else { + return _Locale.create(alts.locale || this.specifiedLocale, alts.numberingSystem || this.numberingSystem, alts.outputCalendar || this.outputCalendar, validateWeekSettings(alts.weekSettings) || this.weekSettings, alts.defaultToEN || false); + } + } + redefaultToEN(alts = {}) { + return this.clone({ + ...alts, + defaultToEN: true + }); + } + redefaultToSystem(alts = {}) { + return this.clone({ + ...alts, + defaultToEN: false + }); + } + months(length, format = false) { + return listStuff(this, length, months, () => { + const monthSpecialCase = this.intl === "ja" || this.intl.startsWith("ja-"); + format &= !monthSpecialCase; + const intl = format ? { + month: length, + day: "numeric" + } : { + month: length + }, formatStr = format ? "format" : "standalone"; + if (!this.monthsCache[formatStr][length]) { + const mapper = !monthSpecialCase ? (dt) => this.extract(dt, intl, "month") : (dt) => this.dtFormatter(dt, intl).format(); + this.monthsCache[formatStr][length] = mapMonths(mapper); + } + return this.monthsCache[formatStr][length]; + }); + } + weekdays(length, format = false) { + return listStuff(this, length, weekdays, () => { + const intl = format ? { + weekday: length, + year: "numeric", + month: "long", + day: "numeric" + } : { + weekday: length + }, formatStr = format ? "format" : "standalone"; + if (!this.weekdaysCache[formatStr][length]) { + this.weekdaysCache[formatStr][length] = mapWeekdays((dt) => this.extract(dt, intl, "weekday")); + } + return this.weekdaysCache[formatStr][length]; + }); + } + meridiems() { + return listStuff(this, void 0, () => meridiems, () => { + if (!this.meridiemCache) { + const intl = { + hour: "numeric", + hourCycle: "h12" + }; + this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map((dt) => this.extract(dt, intl, "dayperiod")); + } + return this.meridiemCache; + }); + } + eras(length) { + return listStuff(this, length, eras, () => { + const intl = { + era: length + }; + if (!this.eraCache[length]) { + this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) => this.extract(dt, intl, "era")); + } + return this.eraCache[length]; + }); + } + extract(dt, intlOpts, field) { + const df = this.dtFormatter(dt, intlOpts), results = df.formatToParts(), matching = results.find((m) => m.type.toLowerCase() === field); + return matching ? matching.value : null; + } + numberFormatter(opts = {}) { + return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts); + } + dtFormatter(dt, intlOpts = {}) { + return new PolyDateFormatter(dt, this.intl, intlOpts); + } + relFormatter(opts = {}) { + return new PolyRelFormatter(this.intl, this.isEnglish(), opts); + } + listFormatter(opts = {}) { + return getCachedLF(this.intl, opts); + } + isEnglish() { + return this.locale === "en" || this.locale.toLowerCase() === "en-us" || getCachedIntResolvedOptions(this.intl).locale.startsWith("en-us"); + } + getWeekSettings() { + if (this.weekSettings) { + return this.weekSettings; + } else if (!hasLocaleWeekInfo()) { + return fallbackWeekSettings; + } else { + return getCachedWeekInfo(this.locale); + } + } + getStartOfWeek() { + return this.getWeekSettings().firstDay; + } + getMinDaysInFirstWeek() { + return this.getWeekSettings().minimalDays; + } + getWeekendDays() { + return this.getWeekSettings().weekend; + } + equals(other) { + return this.locale === other.locale && this.numberingSystem === other.numberingSystem && this.outputCalendar === other.outputCalendar; + } + toString() { + return `Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`; + } + }; + var singleton = null; + var FixedOffsetZone = class _FixedOffsetZone extends Zone { + static { + __name(this, "FixedOffsetZone"); + } + /** + * Get a singleton instance of UTC + * @return {FixedOffsetZone} + */ + static get utcInstance() { + if (singleton === null) { + singleton = new _FixedOffsetZone(0); + } + return singleton; + } + /** + * Get an instance with a specified offset + * @param {number} offset - The offset in minutes + * @return {FixedOffsetZone} + */ + static instance(offset2) { + return offset2 === 0 ? _FixedOffsetZone.utcInstance : new _FixedOffsetZone(offset2); + } + /** + * Get an instance of FixedOffsetZone from a UTC offset string, like "UTC+6" + * @param {string} s - The offset string to parse + * @example FixedOffsetZone.parseSpecifier("UTC+6") + * @example FixedOffsetZone.parseSpecifier("UTC+06") + * @example FixedOffsetZone.parseSpecifier("UTC-6:00") + * @return {FixedOffsetZone} + */ + static parseSpecifier(s2) { + if (s2) { + const r = s2.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i); + if (r) { + return new _FixedOffsetZone(signedOffset(r[1], r[2])); + } + } + return null; + } + constructor(offset2) { + super(); + this.fixed = offset2; + } + /** + * The type of zone. `fixed` for all instances of `FixedOffsetZone`. + * @override + * @type {string} + */ + get type() { + return "fixed"; + } + /** + * The name of this zone. + * All fixed zones' names always start with "UTC" (plus optional offset) + * @override + * @type {string} + */ + get name() { + return this.fixed === 0 ? "UTC" : `UTC${formatOffset(this.fixed, "narrow")}`; + } + /** + * The IANA name of this zone, i.e. `Etc/UTC` or `Etc/GMT+/-nn` + * + * @override + * @type {string} + */ + get ianaName() { + if (this.fixed === 0) { + return "Etc/UTC"; + } else { + return `Etc/GMT${formatOffset(-this.fixed, "narrow")}`; + } + } + /** + * Returns the offset's common name at the specified timestamp. + * + * For fixed offset zones this equals to the zone name. + * @override + */ + offsetName() { + return this.name; + } + /** + * Returns the offset's value as a string + * @override + * @param {number} ts - Epoch milliseconds for which to get the offset + * @param {string} format - What style of offset to return. + * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively + * @return {string} + */ + formatOffset(ts, format) { + return formatOffset(this.fixed, format); + } + /** + * Returns whether the offset is known to be fixed for the whole year: + * Always returns true for all fixed offset zones. + * @override + * @type {boolean} + */ + get isUniversal() { + return true; + } + /** + * Return the offset in minutes for this zone at the specified timestamp. + * + * For fixed offset zones, this is constant and does not depend on a timestamp. + * @override + * @return {number} + */ + offset() { + return this.fixed; + } + /** + * Return whether this Zone is equal to another zone (i.e. also fixed and same offset) + * @override + * @param {Zone} otherZone - the zone to compare + * @return {boolean} + */ + equals(otherZone) { + return otherZone.type === "fixed" && otherZone.fixed === this.fixed; + } + /** + * Return whether this Zone is valid: + * All fixed offset zones are valid. + * @override + * @type {boolean} + */ + get isValid() { + return true; + } + }; + var InvalidZone = class extends Zone { + static { + __name(this, "InvalidZone"); + } + constructor(zoneName) { + super(); + this.zoneName = zoneName; + } + /** @override **/ + get type() { + return "invalid"; + } + /** @override **/ + get name() { + return this.zoneName; + } + /** @override **/ + get isUniversal() { + return false; + } + /** @override **/ + offsetName() { + return null; + } + /** @override **/ + formatOffset() { + return ""; + } + /** @override **/ + offset() { + return NaN; + } + /** @override **/ + equals() { + return false; + } + /** @override **/ + get isValid() { + return false; + } + }; + function normalizeZone(input, defaultZone2) { + if (isUndefined(input) || input === null) { + return defaultZone2; + } else if (input instanceof Zone) { + return input; + } else if (isString(input)) { + const lowered = input.toLowerCase(); + if (lowered === "default") return defaultZone2; + else if (lowered === "local" || lowered === "system") return SystemZone.instance; + else if (lowered === "utc" || lowered === "gmt") return FixedOffsetZone.utcInstance; + else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input); + } else if (isNumber(input)) { + return FixedOffsetZone.instance(input); + } else if (typeof input === "object" && "offset" in input && typeof input.offset === "function") { + return input; + } else { + return new InvalidZone(input); + } + } + __name(normalizeZone, "normalizeZone"); + var numberingSystems = { + arab: "[\u0660-\u0669]", + arabext: "[\u06F0-\u06F9]", + bali: "[\u1B50-\u1B59]", + beng: "[\u09E6-\u09EF]", + deva: "[\u0966-\u096F]", + fullwide: "[\uFF10-\uFF19]", + gujr: "[\u0AE6-\u0AEF]", + hanidec: "[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]", + khmr: "[\u17E0-\u17E9]", + knda: "[\u0CE6-\u0CEF]", + laoo: "[\u0ED0-\u0ED9]", + limb: "[\u1946-\u194F]", + mlym: "[\u0D66-\u0D6F]", + mong: "[\u1810-\u1819]", + mymr: "[\u1040-\u1049]", + orya: "[\u0B66-\u0B6F]", + tamldec: "[\u0BE6-\u0BEF]", + telu: "[\u0C66-\u0C6F]", + thai: "[\u0E50-\u0E59]", + tibt: "[\u0F20-\u0F29]", + latn: "\\d" + }; + var numberingSystemsUTF16 = { + arab: [1632, 1641], + arabext: [1776, 1785], + bali: [6992, 7001], + beng: [2534, 2543], + deva: [2406, 2415], + fullwide: [65296, 65303], + gujr: [2790, 2799], + khmr: [6112, 6121], + knda: [3302, 3311], + laoo: [3792, 3801], + limb: [6470, 6479], + mlym: [3430, 3439], + mong: [6160, 6169], + mymr: [4160, 4169], + orya: [2918, 2927], + tamldec: [3046, 3055], + telu: [3174, 3183], + thai: [3664, 3673], + tibt: [3872, 3881] + }; + var hanidecChars = numberingSystems.hanidec.replace(/[\[|\]]/g, "").split(""); + function parseDigits(str) { + let value = parseInt(str, 10); + if (isNaN(value)) { + value = ""; + for (let i = 0; i < str.length; i++) { + const code = str.charCodeAt(i); + if (str[i].search(numberingSystems.hanidec) !== -1) { + value += hanidecChars.indexOf(str[i]); + } else { + for (const key in numberingSystemsUTF16) { + const [min, max] = numberingSystemsUTF16[key]; + if (code >= min && code <= max) { + value += code - min; + } + } + } + } + return parseInt(value, 10); + } else { + return value; + } + } + __name(parseDigits, "parseDigits"); + var digitRegexCache = /* @__PURE__ */ new Map(); + function resetDigitRegexCache() { + digitRegexCache.clear(); + } + __name(resetDigitRegexCache, "resetDigitRegexCache"); + function digitRegex({ + numberingSystem + }, append = "") { + const ns = numberingSystem || "latn"; + let appendCache = digitRegexCache.get(ns); + if (appendCache === void 0) { + appendCache = /* @__PURE__ */ new Map(); + digitRegexCache.set(ns, appendCache); + } + let regex = appendCache.get(append); + if (regex === void 0) { + regex = new RegExp(`${numberingSystems[ns]}${append}`); + appendCache.set(append, regex); + } + return regex; + } + __name(digitRegex, "digitRegex"); + var now = /* @__PURE__ */ __name(() => Date.now(), "now"); + var defaultZone = "system"; + var defaultLocale = null; + var defaultNumberingSystem = null; + var defaultOutputCalendar = null; + var twoDigitCutoffYear = 60; + var throwOnInvalid; + var defaultWeekSettings = null; + var Settings = class { + static { + __name(this, "Settings"); + } + /** + * Get the callback for returning the current timestamp. + * @type {function} + */ + static get now() { + return now; + } + /** + * Set the callback for returning the current timestamp. + * The function should return a number, which will be interpreted as an Epoch millisecond count + * @type {function} + * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future + * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time + */ + static set now(n2) { + now = n2; + } + /** + * Set the default time zone to create DateTimes in. Does not affect existing instances. + * Use the value "system" to reset this value to the system's time zone. + * @type {string} + */ + static set defaultZone(zone) { + defaultZone = zone; + } + /** + * Get the default time zone object currently used to create DateTimes. Does not affect existing instances. + * The default value is the system's time zone (the one set on the machine that runs this code). + * @type {Zone} + */ + static get defaultZone() { + return normalizeZone(defaultZone, SystemZone.instance); + } + /** + * Get the default locale to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static get defaultLocale() { + return defaultLocale; + } + /** + * Set the default locale to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static set defaultLocale(locale) { + defaultLocale = locale; + } + /** + * Get the default numbering system to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static get defaultNumberingSystem() { + return defaultNumberingSystem; + } + /** + * Set the default numbering system to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static set defaultNumberingSystem(numberingSystem) { + defaultNumberingSystem = numberingSystem; + } + /** + * Get the default output calendar to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static get defaultOutputCalendar() { + return defaultOutputCalendar; + } + /** + * Set the default output calendar to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static set defaultOutputCalendar(outputCalendar) { + defaultOutputCalendar = outputCalendar; + } + /** + * @typedef {Object} WeekSettings + * @property {number} firstDay + * @property {number} minimalDays + * @property {number[]} weekend + */ + /** + * @return {WeekSettings|null} + */ + static get defaultWeekSettings() { + return defaultWeekSettings; + } + /** + * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and + * how many days are required in the first week of a year. + * Does not affect existing instances. + * + * @param {WeekSettings|null} weekSettings + */ + static set defaultWeekSettings(weekSettings) { + defaultWeekSettings = validateWeekSettings(weekSettings); + } + /** + * Get the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx. + * @type {number} + */ + static get twoDigitCutoffYear() { + return twoDigitCutoffYear; + } + /** + * Set the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx. + * @type {number} + * @example Settings.twoDigitCutoffYear = 0 // all 'yy' are interpreted as 20th century + * @example Settings.twoDigitCutoffYear = 99 // all 'yy' are interpreted as 21st century + * @example Settings.twoDigitCutoffYear = 50 // '49' -> 2049; '50' -> 1950 + * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50 + * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50 + */ + static set twoDigitCutoffYear(cutoffYear) { + twoDigitCutoffYear = cutoffYear % 100; + } + /** + * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals + * @type {boolean} + */ + static get throwOnInvalid() { + return throwOnInvalid; + } + /** + * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals + * @type {boolean} + */ + static set throwOnInvalid(t) { + throwOnInvalid = t; + } + /** + * Reset Luxon's global caches. Should only be necessary in testing scenarios. + * @return {void} + */ + static resetCaches() { + Locale.resetCache(); + IANAZone.resetCache(); + DateTime.resetCache(); + resetDigitRegexCache(); + } + }; + var Invalid = class { + static { + __name(this, "Invalid"); + } + constructor(reason, explanation) { + this.reason = reason; + this.explanation = explanation; + } + toMessage() { + if (this.explanation) { + return `${this.reason}: ${this.explanation}`; + } else { + return this.reason; + } + } + }; + var nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + var leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335]; + function unitOutOfRange(unit, value) { + return new Invalid("unit out of range", `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`); + } + __name(unitOutOfRange, "unitOutOfRange"); + function dayOfWeek(year, month, day) { + const d = new Date(Date.UTC(year, month - 1, day)); + if (year < 100 && year >= 0) { + d.setUTCFullYear(d.getUTCFullYear() - 1900); + } + const js = d.getUTCDay(); + return js === 0 ? 7 : js; + } + __name(dayOfWeek, "dayOfWeek"); + function computeOrdinal(year, month, day) { + return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1]; + } + __name(computeOrdinal, "computeOrdinal"); + function uncomputeOrdinal(year, ordinal) { + const table = isLeapYear(year) ? leapLadder : nonLeapLadder, month0 = table.findIndex((i) => i < ordinal), day = ordinal - table[month0]; + return { + month: month0 + 1, + day + }; + } + __name(uncomputeOrdinal, "uncomputeOrdinal"); + function isoWeekdayToLocal(isoWeekday, startOfWeek) { + return (isoWeekday - startOfWeek + 7) % 7 + 1; + } + __name(isoWeekdayToLocal, "isoWeekdayToLocal"); + function gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) { + const { + year, + month, + day + } = gregObj, ordinal = computeOrdinal(year, month, day), weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek); + let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7), weekYear; + if (weekNumber < 1) { + weekYear = year - 1; + weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek); + } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) { + weekYear = year + 1; + weekNumber = 1; + } else { + weekYear = year; + } + return { + weekYear, + weekNumber, + weekday, + ...timeObject(gregObj) + }; + } + __name(gregorianToWeek, "gregorianToWeek"); + function weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) { + const { + weekYear, + weekNumber, + weekday + } = weekData, weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek), yearInDays = daysInYear(weekYear); + let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek, year; + if (ordinal < 1) { + year = weekYear - 1; + ordinal += daysInYear(year); + } else if (ordinal > yearInDays) { + year = weekYear + 1; + ordinal -= daysInYear(weekYear); + } else { + year = weekYear; + } + const { + month, + day + } = uncomputeOrdinal(year, ordinal); + return { + year, + month, + day, + ...timeObject(weekData) + }; + } + __name(weekToGregorian, "weekToGregorian"); + function gregorianToOrdinal(gregData) { + const { + year, + month, + day + } = gregData; + const ordinal = computeOrdinal(year, month, day); + return { + year, + ordinal, + ...timeObject(gregData) + }; + } + __name(gregorianToOrdinal, "gregorianToOrdinal"); + function ordinalToGregorian(ordinalData) { + const { + year, + ordinal + } = ordinalData; + const { + month, + day + } = uncomputeOrdinal(year, ordinal); + return { + year, + month, + day, + ...timeObject(ordinalData) + }; + } + __name(ordinalToGregorian, "ordinalToGregorian"); + function usesLocalWeekValues(obj, loc) { + const hasLocaleWeekData = !isUndefined(obj.localWeekday) || !isUndefined(obj.localWeekNumber) || !isUndefined(obj.localWeekYear); + if (hasLocaleWeekData) { + const hasIsoWeekData = !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear); + if (hasIsoWeekData) { + throw new ConflictingSpecificationError("Cannot mix locale-based week fields with ISO-based week fields"); + } + if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday; + if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber; + if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear; + delete obj.localWeekday; + delete obj.localWeekNumber; + delete obj.localWeekYear; + return { + minDaysInFirstWeek: loc.getMinDaysInFirstWeek(), + startOfWeek: loc.getStartOfWeek() + }; + } else { + return { + minDaysInFirstWeek: 4, + startOfWeek: 1 + }; + } + } + __name(usesLocalWeekValues, "usesLocalWeekValues"); + function hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) { + const validYear = isInteger(obj.weekYear), validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)), validWeekday = integerBetween(obj.weekday, 1, 7); + if (!validYear) { + return unitOutOfRange("weekYear", obj.weekYear); + } else if (!validWeek) { + return unitOutOfRange("week", obj.weekNumber); + } else if (!validWeekday) { + return unitOutOfRange("weekday", obj.weekday); + } else return false; + } + __name(hasInvalidWeekData, "hasInvalidWeekData"); + function hasInvalidOrdinalData(obj) { + const validYear = isInteger(obj.year), validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year)); + if (!validYear) { + return unitOutOfRange("year", obj.year); + } else if (!validOrdinal) { + return unitOutOfRange("ordinal", obj.ordinal); + } else return false; + } + __name(hasInvalidOrdinalData, "hasInvalidOrdinalData"); + function hasInvalidGregorianData(obj) { + const validYear = isInteger(obj.year), validMonth = integerBetween(obj.month, 1, 12), validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month)); + if (!validYear) { + return unitOutOfRange("year", obj.year); + } else if (!validMonth) { + return unitOutOfRange("month", obj.month); + } else if (!validDay) { + return unitOutOfRange("day", obj.day); + } else return false; + } + __name(hasInvalidGregorianData, "hasInvalidGregorianData"); + function hasInvalidTimeData(obj) { + const { + hour, + minute, + second, + millisecond + } = obj; + const validHour = integerBetween(hour, 0, 23) || hour === 24 && minute === 0 && second === 0 && millisecond === 0, validMinute = integerBetween(minute, 0, 59), validSecond = integerBetween(second, 0, 59), validMillisecond = integerBetween(millisecond, 0, 999); + if (!validHour) { + return unitOutOfRange("hour", hour); + } else if (!validMinute) { + return unitOutOfRange("minute", minute); + } else if (!validSecond) { + return unitOutOfRange("second", second); + } else if (!validMillisecond) { + return unitOutOfRange("millisecond", millisecond); + } else return false; + } + __name(hasInvalidTimeData, "hasInvalidTimeData"); + function isUndefined(o) { + return typeof o === "undefined"; + } + __name(isUndefined, "isUndefined"); + function isNumber(o) { + return typeof o === "number"; + } + __name(isNumber, "isNumber"); + function isInteger(o) { + return typeof o === "number" && o % 1 === 0; + } + __name(isInteger, "isInteger"); + function isString(o) { + return typeof o === "string"; + } + __name(isString, "isString"); + function isDate(o) { + return Object.prototype.toString.call(o) === "[object Date]"; + } + __name(isDate, "isDate"); + function hasRelative() { + try { + return typeof Intl !== "undefined" && !!Intl.RelativeTimeFormat; + } catch (e) { + return false; + } + } + __name(hasRelative, "hasRelative"); + function hasLocaleWeekInfo() { + try { + return typeof Intl !== "undefined" && !!Intl.Locale && ("weekInfo" in Intl.Locale.prototype || "getWeekInfo" in Intl.Locale.prototype); + } catch (e) { + return false; + } + } + __name(hasLocaleWeekInfo, "hasLocaleWeekInfo"); + function maybeArray(thing) { + return Array.isArray(thing) ? thing : [thing]; + } + __name(maybeArray, "maybeArray"); + function bestBy(arr, by, compare) { + if (arr.length === 0) { + return void 0; + } + return arr.reduce((best, next) => { + const pair = [by(next), next]; + if (!best) { + return pair; + } else if (compare(best[0], pair[0]) === best[0]) { + return best; + } else { + return pair; + } + }, null)[1]; + } + __name(bestBy, "bestBy"); + function pick(obj, keys) { + return keys.reduce((a, k) => { + a[k] = obj[k]; + return a; + }, {}); + } + __name(pick, "pick"); + function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); + } + __name(hasOwnProperty, "hasOwnProperty"); + function validateWeekSettings(settings) { + if (settings == null) { + return null; + } else if (typeof settings !== "object") { + throw new InvalidArgumentError("Week settings must be an object"); + } else { + if (!integerBetween(settings.firstDay, 1, 7) || !integerBetween(settings.minimalDays, 1, 7) || !Array.isArray(settings.weekend) || settings.weekend.some((v) => !integerBetween(v, 1, 7))) { + throw new InvalidArgumentError("Invalid week settings"); + } + return { + firstDay: settings.firstDay, + minimalDays: settings.minimalDays, + weekend: Array.from(settings.weekend) + }; + } + } + __name(validateWeekSettings, "validateWeekSettings"); + function integerBetween(thing, bottom, top) { + return isInteger(thing) && thing >= bottom && thing <= top; + } + __name(integerBetween, "integerBetween"); + function floorMod(x, n2) { + return x - n2 * Math.floor(x / n2); + } + __name(floorMod, "floorMod"); + function padStart(input, n2 = 2) { + const isNeg = input < 0; + let padded; + if (isNeg) { + padded = "-" + ("" + -input).padStart(n2, "0"); + } else { + padded = ("" + input).padStart(n2, "0"); + } + return padded; + } + __name(padStart, "padStart"); + function parseInteger(string) { + if (isUndefined(string) || string === null || string === "") { + return void 0; + } else { + return parseInt(string, 10); + } + } + __name(parseInteger, "parseInteger"); + function parseFloating(string) { + if (isUndefined(string) || string === null || string === "") { + return void 0; + } else { + return parseFloat(string); + } + } + __name(parseFloating, "parseFloating"); + function parseMillis(fraction) { + if (isUndefined(fraction) || fraction === null || fraction === "") { + return void 0; + } else { + const f = parseFloat("0." + fraction) * 1e3; + return Math.floor(f); + } + } + __name(parseMillis, "parseMillis"); + function roundTo(number, digits, rounding = "round") { + const factor = 10 ** digits; + switch (rounding) { + case "expand": + return number > 0 ? Math.ceil(number * factor) / factor : Math.floor(number * factor) / factor; + case "trunc": + return Math.trunc(number * factor) / factor; + case "round": + return Math.round(number * factor) / factor; + case "floor": + return Math.floor(number * factor) / factor; + case "ceil": + return Math.ceil(number * factor) / factor; + default: + throw new RangeError(`Value rounding ${rounding} is out of range`); + } + } + __name(roundTo, "roundTo"); + function isLeapYear(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + } + __name(isLeapYear, "isLeapYear"); + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + __name(daysInYear, "daysInYear"); + function daysInMonth(year, month) { + const modMonth = floorMod(month - 1, 12) + 1, modYear = year + (month - modMonth) / 12; + if (modMonth === 2) { + return isLeapYear(modYear) ? 29 : 28; + } else { + return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1]; + } + } + __name(daysInMonth, "daysInMonth"); + function objToLocalTS(obj) { + let d = Date.UTC(obj.year, obj.month - 1, obj.day, obj.hour, obj.minute, obj.second, obj.millisecond); + if (obj.year < 100 && obj.year >= 0) { + d = new Date(d); + d.setUTCFullYear(obj.year, obj.month - 1, obj.day); + } + return +d; + } + __name(objToLocalTS, "objToLocalTS"); + function firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) { + const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek); + return -fwdlw + minDaysInFirstWeek - 1; + } + __name(firstWeekOffset, "firstWeekOffset"); + function weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) { + const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek); + const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek); + return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7; + } + __name(weeksInWeekYear, "weeksInWeekYear"); + function untruncateYear(year) { + if (year > 99) { + return year; + } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2e3 + year; + } + __name(untruncateYear, "untruncateYear"); + function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) { + const date = new Date(ts), intlOpts = { + hourCycle: "h23", + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit" + }; + if (timeZone) { + intlOpts.timeZone = timeZone; + } + const modified = { + timeZoneName: offsetFormat, + ...intlOpts + }; + const parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find((m) => m.type.toLowerCase() === "timezonename"); + return parsed ? parsed.value : null; + } + __name(parseZoneInfo, "parseZoneInfo"); + function signedOffset(offHourStr, offMinuteStr) { + let offHour = parseInt(offHourStr, 10); + if (Number.isNaN(offHour)) { + offHour = 0; + } + const offMin = parseInt(offMinuteStr, 10) || 0, offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin; + return offHour * 60 + offMinSigned; + } + __name(signedOffset, "signedOffset"); + function asNumber(value) { + const numericValue = Number(value); + if (typeof value === "boolean" || value === "" || !Number.isFinite(numericValue)) throw new InvalidArgumentError(`Invalid unit value ${value}`); + return numericValue; + } + __name(asNumber, "asNumber"); + function normalizeObject(obj, normalizer) { + const normalized = {}; + for (const u in obj) { + if (hasOwnProperty(obj, u)) { + const v = obj[u]; + if (v === void 0 || v === null) continue; + normalized[normalizer(u)] = asNumber(v); + } + } + return normalized; + } + __name(normalizeObject, "normalizeObject"); + function formatOffset(offset2, format) { + const hours = Math.trunc(Math.abs(offset2 / 60)), minutes = Math.trunc(Math.abs(offset2 % 60)), sign = offset2 >= 0 ? "+" : "-"; + switch (format) { + case "short": + return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`; + case "narrow": + return `${sign}${hours}${minutes > 0 ? `:${minutes}` : ""}`; + case "techie": + return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`; + default: + throw new RangeError(`Value format ${format} is out of range for property format`); + } + } + __name(formatOffset, "formatOffset"); + function timeObject(obj) { + return pick(obj, ["hour", "minute", "second", "millisecond"]); + } + __name(timeObject, "timeObject"); + var monthsLong = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + var monthsShort = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + var monthsNarrow = ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"]; + function months(length) { + switch (length) { + case "narrow": + return [...monthsNarrow]; + case "short": + return [...monthsShort]; + case "long": + return [...monthsLong]; + case "numeric": + return ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; + case "2-digit": + return ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]; + default: + return null; + } + } + __name(months, "months"); + var weekdaysLong = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; + var weekdaysShort = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]; + var weekdaysNarrow = ["M", "T", "W", "T", "F", "S", "S"]; + function weekdays(length) { + switch (length) { + case "narrow": + return [...weekdaysNarrow]; + case "short": + return [...weekdaysShort]; + case "long": + return [...weekdaysLong]; + case "numeric": + return ["1", "2", "3", "4", "5", "6", "7"]; + default: + return null; + } + } + __name(weekdays, "weekdays"); + var meridiems = ["AM", "PM"]; + var erasLong = ["Before Christ", "Anno Domini"]; + var erasShort = ["BC", "AD"]; + var erasNarrow = ["B", "A"]; + function eras(length) { + switch (length) { + case "narrow": + return [...erasNarrow]; + case "short": + return [...erasShort]; + case "long": + return [...erasLong]; + default: + return null; + } + } + __name(eras, "eras"); + function meridiemForDateTime(dt) { + return meridiems[dt.hour < 12 ? 0 : 1]; + } + __name(meridiemForDateTime, "meridiemForDateTime"); + function weekdayForDateTime(dt, length) { + return weekdays(length)[dt.weekday - 1]; + } + __name(weekdayForDateTime, "weekdayForDateTime"); + function monthForDateTime(dt, length) { + return months(length)[dt.month - 1]; + } + __name(monthForDateTime, "monthForDateTime"); + function eraForDateTime(dt, length) { + return eras(length)[dt.year < 0 ? 0 : 1]; + } + __name(eraForDateTime, "eraForDateTime"); + function formatRelativeTime(unit, count, numeric = "always", narrow = false) { + const units = { + years: ["year", "yr."], + quarters: ["quarter", "qtr."], + months: ["month", "mo."], + weeks: ["week", "wk."], + days: ["day", "day", "days"], + hours: ["hour", "hr."], + minutes: ["minute", "min."], + seconds: ["second", "sec."] + }; + const lastable = ["hours", "minutes", "seconds"].indexOf(unit) === -1; + if (numeric === "auto" && lastable) { + const isDay = unit === "days"; + switch (count) { + case 1: + return isDay ? "tomorrow" : `next ${units[unit][0]}`; + case -1: + return isDay ? "yesterday" : `last ${units[unit][0]}`; + case 0: + return isDay ? "today" : `this ${units[unit][0]}`; + } + } + const isInPast = Object.is(count, -0) || count < 0, fmtValue = Math.abs(count), singular = fmtValue === 1, lilUnits = units[unit], fmtUnit = narrow ? singular ? lilUnits[1] : lilUnits[2] || lilUnits[1] : singular ? units[unit][0] : unit; + return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`; + } + __name(formatRelativeTime, "formatRelativeTime"); + function stringifyTokens(splits, tokenToString) { + let s2 = ""; + for (const token of splits) { + if (token.literal) { + s2 += token.val; + } else { + s2 += tokenToString(token.val); + } + } + return s2; + } + __name(stringifyTokens, "stringifyTokens"); + var macroTokenToFormatOpts = { + D: DATE_SHORT, + DD: DATE_MED, + DDD: DATE_FULL, + DDDD: DATE_HUGE, + t: TIME_SIMPLE, + tt: TIME_WITH_SECONDS, + ttt: TIME_WITH_SHORT_OFFSET, + tttt: TIME_WITH_LONG_OFFSET, + T: TIME_24_SIMPLE, + TT: TIME_24_WITH_SECONDS, + TTT: TIME_24_WITH_SHORT_OFFSET, + TTTT: TIME_24_WITH_LONG_OFFSET, + f: DATETIME_SHORT, + ff: DATETIME_MED, + fff: DATETIME_FULL, + ffff: DATETIME_HUGE, + F: DATETIME_SHORT_WITH_SECONDS, + FF: DATETIME_MED_WITH_SECONDS, + FFF: DATETIME_FULL_WITH_SECONDS, + FFFF: DATETIME_HUGE_WITH_SECONDS + }; + var Formatter = class _Formatter { + static { + __name(this, "Formatter"); + } + static create(locale, opts = {}) { + return new _Formatter(locale, opts); + } + static parseFormat(fmt) { + let current = null, currentFull = "", bracketed = false; + const splits = []; + for (let i = 0; i < fmt.length; i++) { + const c = fmt.charAt(i); + if (c === "'") { + if (currentFull.length > 0 || bracketed) { + splits.push({ + literal: bracketed || /^\s+$/.test(currentFull), + val: currentFull === "" ? "'" : currentFull + }); + } + current = null; + currentFull = ""; + bracketed = !bracketed; + } else if (bracketed) { + currentFull += c; + } else if (c === current) { + currentFull += c; + } else { + if (currentFull.length > 0) { + splits.push({ + literal: /^\s+$/.test(currentFull), + val: currentFull + }); + } + currentFull = c; + current = c; + } + } + if (currentFull.length > 0) { + splits.push({ + literal: bracketed || /^\s+$/.test(currentFull), + val: currentFull + }); + } + return splits; + } + static macroTokenToFormatOpts(token) { + return macroTokenToFormatOpts[token]; + } + constructor(locale, formatOpts) { + this.opts = formatOpts; + this.loc = locale; + this.systemLoc = null; + } + formatWithSystemDefault(dt, opts) { + if (this.systemLoc === null) { + this.systemLoc = this.loc.redefaultToSystem(); + } + const df = this.systemLoc.dtFormatter(dt, { + ...this.opts, + ...opts + }); + return df.format(); + } + dtFormatter(dt, opts = {}) { + return this.loc.dtFormatter(dt, { + ...this.opts, + ...opts + }); + } + formatDateTime(dt, opts) { + return this.dtFormatter(dt, opts).format(); + } + formatDateTimeParts(dt, opts) { + return this.dtFormatter(dt, opts).formatToParts(); + } + formatInterval(interval, opts) { + const df = this.dtFormatter(interval.start, opts); + return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate()); + } + resolvedOptions(dt, opts) { + return this.dtFormatter(dt, opts).resolvedOptions(); + } + num(n2, p = 0, signDisplay = void 0) { + if (this.opts.forceSimple) { + return padStart(n2, p); + } + const opts = { + ...this.opts + }; + if (p > 0) { + opts.padTo = p; + } + if (signDisplay) { + opts.signDisplay = signDisplay; + } + return this.loc.numberFormatter(opts).format(n2); + } + formatDateTimeFromString(dt, fmt) { + const knownEnglish = this.loc.listingMode() === "en", useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== "gregory", string = /* @__PURE__ */ __name((opts, extract) => this.loc.extract(dt, opts, extract), "string"), formatOffset2 = /* @__PURE__ */ __name((opts) => { + if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) { + return "Z"; + } + return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : ""; + }, "formatOffset"), meridiem = /* @__PURE__ */ __name(() => knownEnglish ? meridiemForDateTime(dt) : string({ + hour: "numeric", + hourCycle: "h12" + }, "dayperiod"), "meridiem"), month = /* @__PURE__ */ __name((length, standalone) => knownEnglish ? monthForDateTime(dt, length) : string(standalone ? { + month: length + } : { + month: length, + day: "numeric" + }, "month"), "month"), weekday = /* @__PURE__ */ __name((length, standalone) => knownEnglish ? weekdayForDateTime(dt, length) : string(standalone ? { + weekday: length + } : { + weekday: length, + month: "long", + day: "numeric" + }, "weekday"), "weekday"), maybeMacro = /* @__PURE__ */ __name((token) => { + const formatOpts = _Formatter.macroTokenToFormatOpts(token); + if (formatOpts) { + return this.formatWithSystemDefault(dt, formatOpts); + } else { + return token; + } + }, "maybeMacro"), era = /* @__PURE__ */ __name((length) => knownEnglish ? eraForDateTime(dt, length) : string({ + era: length + }, "era"), "era"), tokenToString = /* @__PURE__ */ __name((token) => { + switch (token) { + // ms + case "S": + return this.num(dt.millisecond); + case "u": + // falls through + case "SSS": + return this.num(dt.millisecond, 3); + // seconds + case "s": + return this.num(dt.second); + case "ss": + return this.num(dt.second, 2); + // fractional seconds + case "uu": + return this.num(Math.floor(dt.millisecond / 10), 2); + case "uuu": + return this.num(Math.floor(dt.millisecond / 100)); + // minutes + case "m": + return this.num(dt.minute); + case "mm": + return this.num(dt.minute, 2); + // hours + case "h": + return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12); + case "hh": + return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2); + case "H": + return this.num(dt.hour); + case "HH": + return this.num(dt.hour, 2); + // offset + case "Z": + return formatOffset2({ + format: "narrow", + allowZ: this.opts.allowZ + }); + case "ZZ": + return formatOffset2({ + format: "short", + allowZ: this.opts.allowZ + }); + case "ZZZ": + return formatOffset2({ + format: "techie", + allowZ: this.opts.allowZ + }); + case "ZZZZ": + return dt.zone.offsetName(dt.ts, { + format: "short", + locale: this.loc.locale + }); + case "ZZZZZ": + return dt.zone.offsetName(dt.ts, { + format: "long", + locale: this.loc.locale + }); + // zone + case "z": + return dt.zoneName; + // meridiems + case "a": + return meridiem(); + // dates + case "d": + return useDateTimeFormatter ? string({ + day: "numeric" + }, "day") : this.num(dt.day); + case "dd": + return useDateTimeFormatter ? string({ + day: "2-digit" + }, "day") : this.num(dt.day, 2); + // weekdays - standalone + case "c": + return this.num(dt.weekday); + case "ccc": + return weekday("short", true); + case "cccc": + return weekday("long", true); + case "ccccc": + return weekday("narrow", true); + // weekdays - format + case "E": + return this.num(dt.weekday); + case "EEE": + return weekday("short", false); + case "EEEE": + return weekday("long", false); + case "EEEEE": + return weekday("narrow", false); + // months - standalone + case "L": + return useDateTimeFormatter ? string({ + month: "numeric", + day: "numeric" + }, "month") : this.num(dt.month); + case "LL": + return useDateTimeFormatter ? string({ + month: "2-digit", + day: "numeric" + }, "month") : this.num(dt.month, 2); + case "LLL": + return month("short", true); + case "LLLL": + return month("long", true); + case "LLLLL": + return month("narrow", true); + // months - format + case "M": + return useDateTimeFormatter ? string({ + month: "numeric" + }, "month") : this.num(dt.month); + case "MM": + return useDateTimeFormatter ? string({ + month: "2-digit" + }, "month") : this.num(dt.month, 2); + case "MMM": + return month("short", false); + case "MMMM": + return month("long", false); + case "MMMMM": + return month("narrow", false); + // years + case "y": + return useDateTimeFormatter ? string({ + year: "numeric" + }, "year") : this.num(dt.year); + case "yy": + return useDateTimeFormatter ? string({ + year: "2-digit" + }, "year") : this.num(dt.year.toString().slice(-2), 2); + case "yyyy": + return useDateTimeFormatter ? string({ + year: "numeric" + }, "year") : this.num(dt.year, 4); + case "yyyyyy": + return useDateTimeFormatter ? string({ + year: "numeric" + }, "year") : this.num(dt.year, 6); + // eras + case "G": + return era("short"); + case "GG": + return era("long"); + case "GGGGG": + return era("narrow"); + case "kk": + return this.num(dt.weekYear.toString().slice(-2), 2); + case "kkkk": + return this.num(dt.weekYear, 4); + case "W": + return this.num(dt.weekNumber); + case "WW": + return this.num(dt.weekNumber, 2); + case "n": + return this.num(dt.localWeekNumber); + case "nn": + return this.num(dt.localWeekNumber, 2); + case "ii": + return this.num(dt.localWeekYear.toString().slice(-2), 2); + case "iiii": + return this.num(dt.localWeekYear, 4); + case "o": + return this.num(dt.ordinal); + case "ooo": + return this.num(dt.ordinal, 3); + case "q": + return this.num(dt.quarter); + case "qq": + return this.num(dt.quarter, 2); + case "X": + return this.num(Math.floor(dt.ts / 1e3)); + case "x": + return this.num(dt.ts); + default: + return maybeMacro(token); + } + }, "tokenToString"); + return stringifyTokens(_Formatter.parseFormat(fmt), tokenToString); + } + formatDurationFromString(dur, fmt) { + const invertLargest = this.opts.signMode === "negativeLargestOnly" ? -1 : 1; + const tokenToField = /* @__PURE__ */ __name((token) => { + switch (token[0]) { + case "S": + return "milliseconds"; + case "s": + return "seconds"; + case "m": + return "minutes"; + case "h": + return "hours"; + case "d": + return "days"; + case "w": + return "weeks"; + case "M": + return "months"; + case "y": + return "years"; + default: + return null; + } + }, "tokenToField"), tokenToString = /* @__PURE__ */ __name((lildur, info) => (token) => { + const mapped = tokenToField(token); + if (mapped) { + const inversionFactor = info.isNegativeDuration && mapped !== info.largestUnit ? invertLargest : 1; + let signDisplay; + if (this.opts.signMode === "negativeLargestOnly" && mapped !== info.largestUnit) { + signDisplay = "never"; + } else if (this.opts.signMode === "all") { + signDisplay = "always"; + } else { + signDisplay = "auto"; + } + return this.num(lildur.get(mapped) * inversionFactor, token.length, signDisplay); + } else { + return token; + } + }, "tokenToString"), tokens = _Formatter.parseFormat(fmt), realTokens = tokens.reduce((found, { + literal, + val + }) => literal ? found : found.concat(val), []), collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t)), durationInfo = { + isNegativeDuration: collapsed < 0, + // this relies on "collapsed" being based on "shiftTo", which builds up the object + // in order + largestUnit: Object.keys(collapsed.values)[0] + }; + return stringifyTokens(tokens, tokenToString(collapsed, durationInfo)); + } + }; + var ianaRegex = /[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/; + function combineRegexes(...regexes) { + const full = regexes.reduce((f, r) => f + r.source, ""); + return RegExp(`^${full}$`); + } + __name(combineRegexes, "combineRegexes"); + function combineExtractors(...extractors) { + return (m) => extractors.reduce(([mergedVals, mergedZone, cursor], ex) => { + const [val, zone, next] = ex(m, cursor); + return [{ + ...mergedVals, + ...val + }, zone || mergedZone, next]; + }, [{}, null, 1]).slice(0, 2); + } + __name(combineExtractors, "combineExtractors"); + function parse(s2, ...patterns) { + if (s2 == null) { + return [null, null]; + } + for (const [regex, extractor] of patterns) { + const m = regex.exec(s2); + if (m) { + return extractor(m); + } + } + return [null, null]; + } + __name(parse, "parse"); + function simpleParse(...keys) { + return (match2, cursor) => { + const ret = {}; + let i; + for (i = 0; i < keys.length; i++) { + ret[keys[i]] = parseInteger(match2[cursor + i]); + } + return [ret, null, cursor + i]; + }; + } + __name(simpleParse, "simpleParse"); + var offsetRegex = /(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/; + var isoExtendedZone = `(?:${offsetRegex.source}?(?:\\[(${ianaRegex.source})\\])?)?`; + var isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/; + var isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`); + var isoTimeExtensionRegex = RegExp(`(?:[Tt]${isoTimeRegex.source})?`); + var isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/; + var isoWeekRegex = /(\d{4})-?W(\d\d)(?:-?(\d))?/; + var isoOrdinalRegex = /(\d{4})-?(\d{3})/; + var extractISOWeekData = simpleParse("weekYear", "weekNumber", "weekDay"); + var extractISOOrdinalData = simpleParse("year", "ordinal"); + var sqlYmdRegex = /(\d{4})-(\d\d)-(\d\d)/; + var sqlTimeRegex = RegExp(`${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`); + var sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`); + function int(match2, pos, fallback) { + const m = match2[pos]; + return isUndefined(m) ? fallback : parseInteger(m); + } + __name(int, "int"); + function extractISOYmd(match2, cursor) { + const item = { + year: int(match2, cursor), + month: int(match2, cursor + 1, 1), + day: int(match2, cursor + 2, 1) + }; + return [item, null, cursor + 3]; + } + __name(extractISOYmd, "extractISOYmd"); + function extractISOTime(match2, cursor) { + const item = { + hours: int(match2, cursor, 0), + minutes: int(match2, cursor + 1, 0), + seconds: int(match2, cursor + 2, 0), + milliseconds: parseMillis(match2[cursor + 3]) + }; + return [item, null, cursor + 4]; + } + __name(extractISOTime, "extractISOTime"); + function extractISOOffset(match2, cursor) { + const local = !match2[cursor] && !match2[cursor + 1], fullOffset = signedOffset(match2[cursor + 1], match2[cursor + 2]), zone = local ? null : FixedOffsetZone.instance(fullOffset); + return [{}, zone, cursor + 3]; + } + __name(extractISOOffset, "extractISOOffset"); + function extractIANAZone(match2, cursor) { + const zone = match2[cursor] ? IANAZone.create(match2[cursor]) : null; + return [{}, zone, cursor + 1]; + } + __name(extractIANAZone, "extractIANAZone"); + var isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`); + var isoDuration = /^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/; + function extractISODuration(match2) { + const [s2, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] = match2; + const hasNegativePrefix = s2[0] === "-"; + const negativeSeconds = secondStr && secondStr[0] === "-"; + const maybeNegate = /* @__PURE__ */ __name((num, force = false) => num !== void 0 && (force || num && hasNegativePrefix) ? -num : num, "maybeNegate"); + return [{ + years: maybeNegate(parseFloating(yearStr)), + months: maybeNegate(parseFloating(monthStr)), + weeks: maybeNegate(parseFloating(weekStr)), + days: maybeNegate(parseFloating(dayStr)), + hours: maybeNegate(parseFloating(hourStr)), + minutes: maybeNegate(parseFloating(minuteStr)), + seconds: maybeNegate(parseFloating(secondStr), secondStr === "-0"), + milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds) + }]; + } + __name(extractISODuration, "extractISODuration"); + var obsOffsets = { + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60 + }; + function fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { + const result = { + year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr), + month: monthsShort.indexOf(monthStr) + 1, + day: parseInteger(dayStr), + hour: parseInteger(hourStr), + minute: parseInteger(minuteStr) + }; + if (secondStr) result.second = parseInteger(secondStr); + if (weekdayStr) { + result.weekday = weekdayStr.length > 3 ? weekdaysLong.indexOf(weekdayStr) + 1 : weekdaysShort.indexOf(weekdayStr) + 1; + } + return result; + } + __name(fromStrings, "fromStrings"); + var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/; + function extractRFC2822(match2) { + const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr, obsOffset, milOffset, offHourStr, offMinuteStr] = match2, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + let offset2; + if (obsOffset) { + offset2 = obsOffsets[obsOffset]; + } else if (milOffset) { + offset2 = 0; + } else { + offset2 = signedOffset(offHourStr, offMinuteStr); + } + return [result, new FixedOffsetZone(offset2)]; + } + __name(extractRFC2822, "extractRFC2822"); + function preprocessRFC2822(s2) { + return s2.replace(/\([^()]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").trim(); + } + __name(preprocessRFC2822, "preprocessRFC2822"); + var rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/; + var rfc850 = /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/; + var ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/; + function extractRFC1123Or850(match2) { + const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match2, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + return [result, FixedOffsetZone.utcInstance]; + } + __name(extractRFC1123Or850, "extractRFC1123Or850"); + function extractASCII(match2) { + const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match2, result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + return [result, FixedOffsetZone.utcInstance]; + } + __name(extractASCII, "extractASCII"); + var isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex); + var isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex); + var isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex); + var isoTimeCombinedRegex = combineRegexes(isoTimeRegex); + var extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone); + var extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset, extractIANAZone); + var extractISOOrdinalDateAndTime = combineExtractors(extractISOOrdinalData, extractISOTime, extractISOOffset, extractIANAZone); + var extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone); + function parseISODate(s2) { + return parse(s2, [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime], [isoTimeCombinedRegex, extractISOTimeAndOffset]); + } + __name(parseISODate, "parseISODate"); + function parseRFC2822Date(s2) { + return parse(preprocessRFC2822(s2), [rfc2822, extractRFC2822]); + } + __name(parseRFC2822Date, "parseRFC2822Date"); + function parseHTTPDate(s2) { + return parse(s2, [rfc1123, extractRFC1123Or850], [rfc850, extractRFC1123Or850], [ascii, extractASCII]); + } + __name(parseHTTPDate, "parseHTTPDate"); + function parseISODuration(s2) { + return parse(s2, [isoDuration, extractISODuration]); + } + __name(parseISODuration, "parseISODuration"); + var extractISOTimeOnly = combineExtractors(extractISOTime); + function parseISOTimeOnly(s2) { + return parse(s2, [isoTimeOnly, extractISOTimeOnly]); + } + __name(parseISOTimeOnly, "parseISOTimeOnly"); + var sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex); + var sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex); + var extractISOTimeOffsetAndIANAZone = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone); + function parseSQL(s2) { + return parse(s2, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]); + } + __name(parseSQL, "parseSQL"); + var INVALID$2 = "Invalid Duration"; + var lowOrderMatrix = { + weeks: { + days: 7, + hours: 7 * 24, + minutes: 7 * 24 * 60, + seconds: 7 * 24 * 60 * 60, + milliseconds: 7 * 24 * 60 * 60 * 1e3 + }, + days: { + hours: 24, + minutes: 24 * 60, + seconds: 24 * 60 * 60, + milliseconds: 24 * 60 * 60 * 1e3 + }, + hours: { + minutes: 60, + seconds: 60 * 60, + milliseconds: 60 * 60 * 1e3 + }, + minutes: { + seconds: 60, + milliseconds: 60 * 1e3 + }, + seconds: { + milliseconds: 1e3 + } + }; + var casualMatrix = { + years: { + quarters: 4, + months: 12, + weeks: 52, + days: 365, + hours: 365 * 24, + minutes: 365 * 24 * 60, + seconds: 365 * 24 * 60 * 60, + milliseconds: 365 * 24 * 60 * 60 * 1e3 + }, + quarters: { + months: 3, + weeks: 13, + days: 91, + hours: 91 * 24, + minutes: 91 * 24 * 60, + seconds: 91 * 24 * 60 * 60, + milliseconds: 91 * 24 * 60 * 60 * 1e3 + }, + months: { + weeks: 4, + days: 30, + hours: 30 * 24, + minutes: 30 * 24 * 60, + seconds: 30 * 24 * 60 * 60, + milliseconds: 30 * 24 * 60 * 60 * 1e3 + }, + ...lowOrderMatrix + }; + var daysInYearAccurate = 146097 / 400; + var daysInMonthAccurate = 146097 / 4800; + var accurateMatrix = { + years: { + quarters: 4, + months: 12, + weeks: daysInYearAccurate / 7, + days: daysInYearAccurate, + hours: daysInYearAccurate * 24, + minutes: daysInYearAccurate * 24 * 60, + seconds: daysInYearAccurate * 24 * 60 * 60, + milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1e3 + }, + quarters: { + months: 3, + weeks: daysInYearAccurate / 28, + days: daysInYearAccurate / 4, + hours: daysInYearAccurate * 24 / 4, + minutes: daysInYearAccurate * 24 * 60 / 4, + seconds: daysInYearAccurate * 24 * 60 * 60 / 4, + milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1e3 / 4 + }, + months: { + weeks: daysInMonthAccurate / 7, + days: daysInMonthAccurate, + hours: daysInMonthAccurate * 24, + minutes: daysInMonthAccurate * 24 * 60, + seconds: daysInMonthAccurate * 24 * 60 * 60, + milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1e3 + }, + ...lowOrderMatrix + }; + var orderedUnits$1 = ["years", "quarters", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds"]; + var reverseUnits = orderedUnits$1.slice(0).reverse(); + function clone$1(dur, alts, clear = false) { + const conf = { + values: clear ? alts.values : { + ...dur.values, + ...alts.values || {} + }, + loc: dur.loc.clone(alts.loc), + conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy, + matrix: alts.matrix || dur.matrix + }; + return new Duration(conf); + } + __name(clone$1, "clone$1"); + function durationToMillis(matrix, vals) { + var _vals$milliseconds; + let sum = (_vals$milliseconds = vals.milliseconds) != null ? _vals$milliseconds : 0; + for (const unit of reverseUnits.slice(1)) { + if (vals[unit]) { + sum += vals[unit] * matrix[unit]["milliseconds"]; + } + } + return sum; + } + __name(durationToMillis, "durationToMillis"); + function normalizeValues(matrix, vals) { + const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1; + orderedUnits$1.reduceRight((previous, current) => { + if (!isUndefined(vals[current])) { + if (previous) { + const previousVal = vals[previous] * factor; + const conv = matrix[current][previous]; + const rollUp = Math.floor(previousVal / conv); + vals[current] += rollUp * factor; + vals[previous] -= rollUp * conv * factor; + } + return current; + } else { + return previous; + } + }, null); + orderedUnits$1.reduce((previous, current) => { + if (!isUndefined(vals[current])) { + if (previous) { + const fraction = vals[previous] % 1; + vals[previous] -= fraction; + vals[current] += fraction * matrix[previous][current]; + } + return current; + } else { + return previous; + } + }, null); + } + __name(normalizeValues, "normalizeValues"); + function removeZeroes(vals) { + const newVals = {}; + for (const [key, value] of Object.entries(vals)) { + if (value !== 0) { + newVals[key] = value; + } + } + return newVals; + } + __name(removeZeroes, "removeZeroes"); + var Duration = class _Duration { + static { + __name(this, "Duration"); + } + /** + * @private + */ + constructor(config) { + const accurate = config.conversionAccuracy === "longterm" || false; + let matrix = accurate ? accurateMatrix : casualMatrix; + if (config.matrix) { + matrix = config.matrix; + } + this.values = config.values; + this.loc = config.loc || Locale.create(); + this.conversionAccuracy = accurate ? "longterm" : "casual"; + this.invalid = config.invalid || null; + this.matrix = matrix; + this.isLuxonDuration = true; + } + /** + * Create Duration from a number of milliseconds. + * @param {number} count of milliseconds + * @param {Object} opts - options for parsing + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use + * @return {Duration} + */ + static fromMillis(count, opts) { + return _Duration.fromObject({ + milliseconds: count + }, opts); + } + /** + * Create a Duration from a JavaScript object with keys like 'years' and 'hours'. + * If this object is empty then a zero milliseconds duration is returned. + * @param {Object} obj - the object to create the DateTime from + * @param {number} obj.years + * @param {number} obj.quarters + * @param {number} obj.months + * @param {number} obj.weeks + * @param {number} obj.days + * @param {number} obj.hours + * @param {number} obj.minutes + * @param {number} obj.seconds + * @param {number} obj.milliseconds + * @param {Object} [opts=[]] - options for creating this Duration + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use + * @param {string} [opts.matrix=Object] - the custom conversion system to use + * @return {Duration} + */ + static fromObject(obj, opts = {}) { + if (obj == null || typeof obj !== "object") { + throw new InvalidArgumentError(`Duration.fromObject: argument expected to be an object, got ${obj === null ? "null" : typeof obj}`); + } + return new _Duration({ + values: normalizeObject(obj, _Duration.normalizeUnit), + loc: Locale.fromObject(opts), + conversionAccuracy: opts.conversionAccuracy, + matrix: opts.matrix + }); + } + /** + * Create a Duration from DurationLike. + * + * @param {Object | number | Duration} durationLike + * One of: + * - object with keys like 'years' and 'hours'. + * - number representing milliseconds + * - Duration instance + * @return {Duration} + */ + static fromDurationLike(durationLike) { + if (isNumber(durationLike)) { + return _Duration.fromMillis(durationLike); + } else if (_Duration.isDuration(durationLike)) { + return durationLike; + } else if (typeof durationLike === "object") { + return _Duration.fromObject(durationLike); + } else { + throw new InvalidArgumentError(`Unknown duration argument ${durationLike} of type ${typeof durationLike}`); + } + } + /** + * Create a Duration from an ISO 8601 duration string. + * @param {string} text - text to parse + * @param {Object} opts - options for parsing + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use + * @param {string} [opts.matrix=Object] - the preset conversion system to use + * @see https://en.wikipedia.org/wiki/ISO_8601#Durations + * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 } + * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 } + * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 } + * @return {Duration} + */ + static fromISO(text, opts) { + const [parsed] = parseISODuration(text); + if (parsed) { + return _Duration.fromObject(parsed, opts); + } else { + return _Duration.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); + } + } + /** + * Create a Duration from an ISO 8601 time string. + * @param {string} text - text to parse + * @param {Object} opts - options for parsing + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use + * @param {string} [opts.matrix=Object] - the conversion system to use + * @see https://en.wikipedia.org/wiki/ISO_8601#Times + * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 } + * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @return {Duration} + */ + static fromISOTime(text, opts) { + const [parsed] = parseISOTimeOnly(text); + if (parsed) { + return _Duration.fromObject(parsed, opts); + } else { + return _Duration.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); + } + } + /** + * Create an invalid Duration. + * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent + * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information + * @return {Duration} + */ + static invalid(reason, explanation = null) { + if (!reason) { + throw new InvalidArgumentError("need to specify a reason the Duration is invalid"); + } + const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); + if (Settings.throwOnInvalid) { + throw new InvalidDurationError(invalid); + } else { + return new _Duration({ + invalid + }); + } + } + /** + * @private + */ + static normalizeUnit(unit) { + const normalized = { + year: "years", + years: "years", + quarter: "quarters", + quarters: "quarters", + month: "months", + months: "months", + week: "weeks", + weeks: "weeks", + day: "days", + days: "days", + hour: "hours", + hours: "hours", + minute: "minutes", + minutes: "minutes", + second: "seconds", + seconds: "seconds", + millisecond: "milliseconds", + milliseconds: "milliseconds" + }[unit ? unit.toLowerCase() : unit]; + if (!normalized) throw new InvalidUnitError(unit); + return normalized; + } + /** + * Check if an object is a Duration. Works across context boundaries + * @param {object} o + * @return {boolean} + */ + static isDuration(o) { + return o && o.isLuxonDuration || false; + } + /** + * Get the locale of a Duration, such 'en-GB' + * @type {string} + */ + get locale() { + return this.isValid ? this.loc.locale : null; + } + /** + * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration + * + * @type {string} + */ + get numberingSystem() { + return this.isValid ? this.loc.numberingSystem : null; + } + /** + * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens: + * * `S` for milliseconds + * * `s` for seconds + * * `m` for minutes + * * `h` for hours + * * `d` for days + * * `w` for weeks + * * `M` for months + * * `y` for years + * Notes: + * * Add padding by repeating the token, e.g. "yy" pads the years to two digits, "hhhh" pads the hours out to four digits + * * Tokens can be escaped by wrapping with single quotes. + * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting. + * @param {string} fmt - the format string + * @param {Object} opts - options + * @param {boolean} [opts.floor=true] - floor numerical values + * @param {'negative'|'all'|'negativeLargestOnly'} [opts.signMode=negative] - How to handle signs + * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat("y d s") //=> "1 6 2" + * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat("yy dd sss") //=> "01 06 002" + * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat("M S") //=> "12 518402000" + * @example Duration.fromObject({ days: 6, seconds: 2 }).toFormat("d s", { signMode: "all" }) //=> "+6 +2" + * @example Duration.fromObject({ days: -6, seconds: -2 }).toFormat("d s", { signMode: "all" }) //=> "-6 -2" + * @example Duration.fromObject({ days: -6, seconds: -2 }).toFormat("d s", { signMode: "negativeLargestOnly" }) //=> "-6 2" + * @return {string} + */ + toFormat(fmt, opts = {}) { + const fmtOpts = { + ...opts, + floor: opts.round !== false && opts.floor !== false + }; + return this.isValid ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) : INVALID$2; + } + /** + * Returns a string representation of a Duration with all units included. + * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options + * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`. + * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor. + * @param {boolean} [opts.showZeros=true] - Show all units previously used by the duration even if they are zero + * @example + * ```js + * var dur = Duration.fromObject({ months: 1, weeks: 0, hours: 5, minutes: 6 }) + * dur.toHuman() //=> '1 month, 0 weeks, 5 hours, 6 minutes' + * dur.toHuman({ listStyle: "long" }) //=> '1 month, 0 weeks, 5 hours, and 6 minutes' + * dur.toHuman({ unitDisplay: "short" }) //=> '1 mth, 0 wks, 5 hr, 6 min' + * dur.toHuman({ showZeros: false }) //=> '1 month, 5 hours, 6 minutes' + * ``` + */ + toHuman(opts = {}) { + if (!this.isValid) return INVALID$2; + const showZeros = opts.showZeros !== false; + const l2 = orderedUnits$1.map((unit) => { + const val = this.values[unit]; + if (isUndefined(val) || val === 0 && !showZeros) { + return null; + } + return this.loc.numberFormatter({ + style: "unit", + unitDisplay: "long", + ...opts, + unit: unit.slice(0, -1) + }).format(val); + }).filter((n2) => n2); + return this.loc.listFormatter({ + type: "conjunction", + style: opts.listStyle || "narrow", + ...opts + }).format(l2); + } + /** + * Returns a JavaScript object with this Duration's values. + * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 } + * @return {Object} + */ + toObject() { + if (!this.isValid) return {}; + return { + ...this.values + }; + } + /** + * Returns an ISO 8601-compliant string representation of this Duration. + * @see https://en.wikipedia.org/wiki/ISO_8601#Durations + * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S' + * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S' + * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M' + * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M' + * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S' + * @return {string} + */ + toISO() { + if (!this.isValid) return null; + let s2 = "P"; + if (this.years !== 0) s2 += this.years + "Y"; + if (this.months !== 0 || this.quarters !== 0) s2 += this.months + this.quarters * 3 + "M"; + if (this.weeks !== 0) s2 += this.weeks + "W"; + if (this.days !== 0) s2 += this.days + "D"; + if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0) s2 += "T"; + if (this.hours !== 0) s2 += this.hours + "H"; + if (this.minutes !== 0) s2 += this.minutes + "M"; + if (this.seconds !== 0 || this.milliseconds !== 0) + s2 += roundTo(this.seconds + this.milliseconds / 1e3, 3) + "S"; + if (s2 === "P") s2 += "T0S"; + return s2; + } + /** + * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day. + * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours. + * @see https://en.wikipedia.org/wiki/ISO_8601#Times + * @param {Object} opts - options + * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 + * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 + * @param {boolean} [opts.includePrefix=false] - include the `T` prefix + * @param {string} [opts.format='extended'] - choose between the basic and extended format + * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000' + * @return {string} + */ + toISOTime(opts = {}) { + if (!this.isValid) return null; + const millis = this.toMillis(); + if (millis < 0 || millis >= 864e5) return null; + opts = { + suppressMilliseconds: false, + suppressSeconds: false, + includePrefix: false, + format: "extended", + ...opts, + includeOffset: false + }; + const dateTime = DateTime.fromMillis(millis, { + zone: "UTC" + }); + return dateTime.toISOTime(opts); + } + /** + * Returns an ISO 8601 representation of this Duration appropriate for use in JSON. + * @return {string} + */ + toJSON() { + return this.toISO(); + } + /** + * Returns an ISO 8601 representation of this Duration appropriate for use in debugging. + * @return {string} + */ + toString() { + return this.toISO(); + } + /** + * Returns a string representation of this Duration appropriate for the REPL. + * @return {string} + */ + [/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")]() { + if (this.isValid) { + return `Duration { values: ${JSON.stringify(this.values)} }`; + } else { + return `Duration { Invalid, reason: ${this.invalidReason} }`; + } + } + /** + * Returns an milliseconds value of this Duration. + * @return {number} + */ + toMillis() { + if (!this.isValid) return NaN; + return durationToMillis(this.matrix, this.values); + } + /** + * Returns an milliseconds value of this Duration. Alias of {@link toMillis} + * @return {number} + */ + valueOf() { + return this.toMillis(); + } + /** + * Make this Duration longer by the specified amount. Return a newly-constructed Duration. + * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() + * @return {Duration} + */ + plus(duration) { + if (!this.isValid) return this; + const dur = _Duration.fromDurationLike(duration), result = {}; + for (const k of orderedUnits$1) { + if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) { + result[k] = dur.get(k) + this.get(k); + } + } + return clone$1(this, { + values: result + }, true); + } + /** + * Make this Duration shorter by the specified amount. Return a newly-constructed Duration. + * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() + * @return {Duration} + */ + minus(duration) { + if (!this.isValid) return this; + const dur = _Duration.fromDurationLike(duration); + return this.plus(dur.negate()); + } + /** + * Scale this Duration by the specified amount. Return a newly-constructed Duration. + * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number. + * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 } + * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === "hours" ? x * 2 : x) //=> { hours: 2, minutes: 30 } + * @return {Duration} + */ + mapUnits(fn) { + if (!this.isValid) return this; + const result = {}; + for (const k of Object.keys(this.values)) { + result[k] = asNumber(fn(this.values[k], k)); + } + return clone$1(this, { + values: result + }, true); + } + /** + * Get the value of unit. + * @param {string} unit - a unit such as 'minute' or 'day' + * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2 + * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0 + * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3 + * @return {number} + */ + get(unit) { + return this[_Duration.normalizeUnit(unit)]; + } + /** + * "Set" the values of specified units. Return a newly-constructed Duration. + * @param {Object} values - a mapping of units to numbers + * @example dur.set({ years: 2017 }) + * @example dur.set({ hours: 8, minutes: 30 }) + * @return {Duration} + */ + set(values) { + if (!this.isValid) return this; + const mixed = { + ...this.values, + ...normalizeObject(values, _Duration.normalizeUnit) + }; + return clone$1(this, { + values: mixed + }); + } + /** + * "Set" the locale and/or numberingSystem. Returns a newly-constructed Duration. + * @example dur.reconfigure({ locale: 'en-GB' }) + * @return {Duration} + */ + reconfigure({ + locale, + numberingSystem, + conversionAccuracy, + matrix + } = {}) { + const loc = this.loc.clone({ + locale, + numberingSystem + }); + const opts = { + loc, + matrix, + conversionAccuracy + }; + return clone$1(this, opts); + } + /** + * Return the length of the duration in the specified unit. + * @param {string} unit - a unit such as 'minutes' or 'days' + * @example Duration.fromObject({years: 1}).as('days') //=> 365 + * @example Duration.fromObject({years: 1}).as('months') //=> 12 + * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5 + * @return {number} + */ + as(unit) { + return this.isValid ? this.shiftTo(unit).get(unit) : NaN; + } + /** + * Reduce this Duration to its canonical representation in its current units. + * Assuming the overall value of the Duration is positive, this means: + * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example) + * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise + * the overall value would be negative, see third example) + * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example) + * + * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`. + * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 } + * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 } + * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 } + * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 } + * @return {Duration} + */ + normalize() { + if (!this.isValid) return this; + const vals = this.toObject(); + normalizeValues(this.matrix, vals); + return clone$1(this, { + values: vals + }, true); + } + /** + * Rescale units to its largest representation + * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 } + * @return {Duration} + */ + rescale() { + if (!this.isValid) return this; + const vals = removeZeroes(this.normalize().shiftToAll().toObject()); + return clone$1(this, { + values: vals + }, true); + } + /** + * Convert this Duration into its representation in a different set of units. + * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 } + * @return {Duration} + */ + shiftTo(...units) { + if (!this.isValid) return this; + if (units.length === 0) { + return this; + } + units = units.map((u) => _Duration.normalizeUnit(u)); + const built = {}, accumulated = {}, vals = this.toObject(); + let lastUnit; + for (const k of orderedUnits$1) { + if (units.indexOf(k) >= 0) { + lastUnit = k; + let own = 0; + for (const ak in accumulated) { + own += this.matrix[ak][k] * accumulated[ak]; + accumulated[ak] = 0; + } + if (isNumber(vals[k])) { + own += vals[k]; + } + const i = Math.trunc(own); + built[k] = i; + accumulated[k] = (own * 1e3 - i * 1e3) / 1e3; + } else if (isNumber(vals[k])) { + accumulated[k] = vals[k]; + } + } + for (const key in accumulated) { + if (accumulated[key] !== 0) { + built[lastUnit] += key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key]; + } + } + normalizeValues(this.matrix, built); + return clone$1(this, { + values: built + }, true); + } + /** + * Shift this Duration to all available units. + * Same as shiftTo("years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds") + * @return {Duration} + */ + shiftToAll() { + if (!this.isValid) return this; + return this.shiftTo("years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds"); + } + /** + * Return the negative of this Duration. + * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 } + * @return {Duration} + */ + negate() { + if (!this.isValid) return this; + const negated = {}; + for (const k of Object.keys(this.values)) { + negated[k] = this.values[k] === 0 ? 0 : -this.values[k]; + } + return clone$1(this, { + values: negated + }, true); + } + /** + * Removes all units with values equal to 0 from this Duration. + * @example Duration.fromObject({ years: 2, days: 0, hours: 0, minutes: 0 }).removeZeros().toObject() //=> { years: 2 } + * @return {Duration} + */ + removeZeros() { + if (!this.isValid) return this; + const vals = removeZeroes(this.values); + return clone$1(this, { + values: vals + }, true); + } + /** + * Get the years. + * @type {number} + */ + get years() { + return this.isValid ? this.values.years || 0 : NaN; + } + /** + * Get the quarters. + * @type {number} + */ + get quarters() { + return this.isValid ? this.values.quarters || 0 : NaN; + } + /** + * Get the months. + * @type {number} + */ + get months() { + return this.isValid ? this.values.months || 0 : NaN; + } + /** + * Get the weeks + * @type {number} + */ + get weeks() { + return this.isValid ? this.values.weeks || 0 : NaN; + } + /** + * Get the days. + * @type {number} + */ + get days() { + return this.isValid ? this.values.days || 0 : NaN; + } + /** + * Get the hours. + * @type {number} + */ + get hours() { + return this.isValid ? this.values.hours || 0 : NaN; + } + /** + * Get the minutes. + * @type {number} + */ + get minutes() { + return this.isValid ? this.values.minutes || 0 : NaN; + } + /** + * Get the seconds. + * @return {number} + */ + get seconds() { + return this.isValid ? this.values.seconds || 0 : NaN; + } + /** + * Get the milliseconds. + * @return {number} + */ + get milliseconds() { + return this.isValid ? this.values.milliseconds || 0 : NaN; + } + /** + * Returns whether the Duration is invalid. Invalid durations are returned by diff operations + * on invalid DateTimes or Intervals. + * @return {boolean} + */ + get isValid() { + return this.invalid === null; + } + /** + * Returns an error code if this Duration became invalid, or null if the Duration is valid + * @return {string} + */ + get invalidReason() { + return this.invalid ? this.invalid.reason : null; + } + /** + * Returns an explanation of why this Duration became invalid, or null if the Duration is valid + * @type {string} + */ + get invalidExplanation() { + return this.invalid ? this.invalid.explanation : null; + } + /** + * Equality check + * Two Durations are equal iff they have the same units and the same values for each unit. + * @param {Duration} other + * @return {boolean} + */ + equals(other) { + if (!this.isValid || !other.isValid) { + return false; + } + if (!this.loc.equals(other.loc)) { + return false; + } + function eq(v1, v2) { + if (v1 === void 0 || v1 === 0) return v2 === void 0 || v2 === 0; + return v1 === v2; + } + __name(eq, "eq"); + for (const u of orderedUnits$1) { + if (!eq(this.values[u], other.values[u])) { + return false; + } + } + return true; + } + }; + var INVALID$1 = "Invalid Interval"; + function validateStartEnd(start, end) { + if (!start || !start.isValid) { + return Interval.invalid("missing or invalid start"); + } else if (!end || !end.isValid) { + return Interval.invalid("missing or invalid end"); + } else if (end < start) { + return Interval.invalid("end before start", `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`); + } else { + return null; + } + } + __name(validateStartEnd, "validateStartEnd"); + var Interval = class _Interval { + static { + __name(this, "Interval"); + } + /** + * @private + */ + constructor(config) { + this.s = config.start; + this.e = config.end; + this.invalid = config.invalid || null; + this.isLuxonInterval = true; + } + /** + * Create an invalid Interval. + * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent + * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information + * @return {Interval} + */ + static invalid(reason, explanation = null) { + if (!reason) { + throw new InvalidArgumentError("need to specify a reason the Interval is invalid"); + } + const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); + if (Settings.throwOnInvalid) { + throw new InvalidIntervalError(invalid); + } else { + return new _Interval({ + invalid + }); + } + } + /** + * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end. + * @param {DateTime|Date|Object} start + * @param {DateTime|Date|Object} end + * @return {Interval} + */ + static fromDateTimes(start, end) { + const builtStart = friendlyDateTime(start), builtEnd = friendlyDateTime(end); + const validateError = validateStartEnd(builtStart, builtEnd); + if (validateError == null) { + return new _Interval({ + start: builtStart, + end: builtEnd + }); + } else { + return validateError; + } + } + /** + * Create an Interval from a start DateTime and a Duration to extend to. + * @param {DateTime|Date|Object} start + * @param {Duration|Object|number} duration - the length of the Interval. + * @return {Interval} + */ + static after(start, duration) { + const dur = Duration.fromDurationLike(duration), dt = friendlyDateTime(start); + return _Interval.fromDateTimes(dt, dt.plus(dur)); + } + /** + * Create an Interval from an end DateTime and a Duration to extend backwards to. + * @param {DateTime|Date|Object} end + * @param {Duration|Object|number} duration - the length of the Interval. + * @return {Interval} + */ + static before(end, duration) { + const dur = Duration.fromDurationLike(duration), dt = friendlyDateTime(end); + return _Interval.fromDateTimes(dt.minus(dur), dt); + } + /** + * Create an Interval from an ISO 8601 string. + * Accepts `/`, `/`, and `/` formats. + * @param {string} text - the ISO string to parse + * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO} + * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals + * @return {Interval} + */ + static fromISO(text, opts) { + const [s2, e] = (text || "").split("/", 2); + if (s2 && e) { + let start, startIsValid; + try { + start = DateTime.fromISO(s2, opts); + startIsValid = start.isValid; + } catch (e2) { + startIsValid = false; + } + let end, endIsValid; + try { + end = DateTime.fromISO(e, opts); + endIsValid = end.isValid; + } catch (e2) { + endIsValid = false; + } + if (startIsValid && endIsValid) { + return _Interval.fromDateTimes(start, end); + } + if (startIsValid) { + const dur = Duration.fromISO(e, opts); + if (dur.isValid) { + return _Interval.after(start, dur); + } + } else if (endIsValid) { + const dur = Duration.fromISO(s2, opts); + if (dur.isValid) { + return _Interval.before(end, dur); + } + } + } + return _Interval.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); + } + /** + * Check if an object is an Interval. Works across context boundaries + * @param {object} o + * @return {boolean} + */ + static isInterval(o) { + return o && o.isLuxonInterval || false; + } + /** + * Returns the start of the Interval + * @type {DateTime} + */ + get start() { + return this.isValid ? this.s : null; + } + /** + * Returns the end of the Interval. This is the first instant which is not part of the interval + * (Interval is half-open). + * @type {DateTime} + */ + get end() { + return this.isValid ? this.e : null; + } + /** + * Returns the last DateTime included in the interval (since end is not part of the interval) + * @type {DateTime} + */ + get lastDateTime() { + return this.isValid ? this.e ? this.e.minus(1) : null : null; + } + /** + * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'. + * @type {boolean} + */ + get isValid() { + return this.invalidReason === null; + } + /** + * Returns an error code if this Interval is invalid, or null if the Interval is valid + * @type {string} + */ + get invalidReason() { + return this.invalid ? this.invalid.reason : null; + } + /** + * Returns an explanation of why this Interval became invalid, or null if the Interval is valid + * @type {string} + */ + get invalidExplanation() { + return this.invalid ? this.invalid.explanation : null; + } + /** + * Returns the length of the Interval in the specified unit. + * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in. + * @return {number} + */ + length(unit = "milliseconds") { + return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN; + } + /** + * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part. + * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day' + * asks 'what dates are included in this interval?', not 'how many days long is this interval?' + * @param {string} [unit='milliseconds'] - the unit of time to count. + * @param {Object} opts - options + * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime + * @return {number} + */ + count(unit = "milliseconds", opts) { + if (!this.isValid) return NaN; + const start = this.start.startOf(unit, opts); + let end; + if (opts != null && opts.useLocaleWeeks) { + end = this.end.reconfigure({ + locale: start.locale + }); + } else { + end = this.end; + } + end = end.startOf(unit, opts); + return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf()); + } + /** + * Returns whether this Interval's start and end are both in the same unit of time + * @param {string} unit - the unit of time to check sameness on + * @return {boolean} + */ + hasSame(unit) { + return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; + } + /** + * Return whether this Interval has the same start and end DateTimes. + * @return {boolean} + */ + isEmpty() { + return this.s.valueOf() === this.e.valueOf(); + } + /** + * Return whether this Interval's start is after the specified DateTime. + * @param {DateTime} dateTime + * @return {boolean} + */ + isAfter(dateTime) { + if (!this.isValid) return false; + return this.s > dateTime; + } + /** + * Return whether this Interval's end is before the specified DateTime. + * @param {DateTime} dateTime + * @return {boolean} + */ + isBefore(dateTime) { + if (!this.isValid) return false; + return this.e <= dateTime; + } + /** + * Return whether this Interval contains the specified DateTime. + * @param {DateTime} dateTime + * @return {boolean} + */ + contains(dateTime) { + if (!this.isValid) return false; + return this.s <= dateTime && this.e > dateTime; + } + /** + * "Sets" the start and/or end dates. Returns a newly-constructed Interval. + * @param {Object} values - the values to set + * @param {DateTime} values.start - the starting DateTime + * @param {DateTime} values.end - the ending DateTime + * @return {Interval} + */ + set({ + start, + end + } = {}) { + if (!this.isValid) return this; + return _Interval.fromDateTimes(start || this.s, end || this.e); + } + /** + * Split this Interval at each of the specified DateTimes + * @param {...DateTime} dateTimes - the unit of time to count. + * @return {Array} + */ + splitAt(...dateTimes) { + if (!this.isValid) return []; + const sorted = dateTimes.map(friendlyDateTime).filter((d) => this.contains(d)).sort((a, b) => a.toMillis() - b.toMillis()), results = []; + let { + s: s2 + } = this, i = 0; + while (s2 < this.e) { + const added = sorted[i] || this.e, next = +added > +this.e ? this.e : added; + results.push(_Interval.fromDateTimes(s2, next)); + s2 = next; + i += 1; + } + return results; + } + /** + * Split this Interval into smaller Intervals, each of the specified length. + * Left over time is grouped into a smaller interval + * @param {Duration|Object|number} duration - The length of each resulting interval. + * @return {Array} + */ + splitBy(duration) { + const dur = Duration.fromDurationLike(duration); + if (!this.isValid || !dur.isValid || dur.as("milliseconds") === 0) { + return []; + } + let { + s: s2 + } = this, idx = 1, next; + const results = []; + while (s2 < this.e) { + const added = this.start.plus(dur.mapUnits((x) => x * idx)); + next = +added > +this.e ? this.e : added; + results.push(_Interval.fromDateTimes(s2, next)); + s2 = next; + idx += 1; + } + return results; + } + /** + * Split this Interval into the specified number of smaller intervals. + * @param {number} numberOfParts - The number of Intervals to divide the Interval into. + * @return {Array} + */ + divideEqually(numberOfParts) { + if (!this.isValid) return []; + return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts); + } + /** + * Return whether this Interval overlaps with the specified Interval + * @param {Interval} other + * @return {boolean} + */ + overlaps(other) { + return this.e > other.s && this.s < other.e; + } + /** + * Return whether this Interval's end is adjacent to the specified Interval's start. + * @param {Interval} other + * @return {boolean} + */ + abutsStart(other) { + if (!this.isValid) return false; + return +this.e === +other.s; + } + /** + * Return whether this Interval's start is adjacent to the specified Interval's end. + * @param {Interval} other + * @return {boolean} + */ + abutsEnd(other) { + if (!this.isValid) return false; + return +other.e === +this.s; + } + /** + * Returns true if this Interval fully contains the specified Interval, specifically if the intersect (of this Interval and the other Interval) is equal to the other Interval; false otherwise. + * @param {Interval} other + * @return {boolean} + */ + engulfs(other) { + if (!this.isValid) return false; + return this.s <= other.s && this.e >= other.e; + } + /** + * Return whether this Interval has the same start and end as the specified Interval. + * @param {Interval} other + * @return {boolean} + */ + equals(other) { + if (!this.isValid || !other.isValid) { + return false; + } + return this.s.equals(other.s) && this.e.equals(other.e); + } + /** + * Return an Interval representing the intersection of this Interval and the specified Interval. + * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals. + * Returns null if the intersection is empty, meaning, the intervals don't intersect. + * @param {Interval} other + * @return {Interval} + */ + intersection(other) { + if (!this.isValid) return this; + const s2 = this.s > other.s ? this.s : other.s, e = this.e < other.e ? this.e : other.e; + if (s2 >= e) { + return null; + } else { + return _Interval.fromDateTimes(s2, e); + } + } + /** + * Return an Interval representing the union of this Interval and the specified Interval. + * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals. + * @param {Interval} other + * @return {Interval} + */ + union(other) { + if (!this.isValid) return this; + const s2 = this.s < other.s ? this.s : other.s, e = this.e > other.e ? this.e : other.e; + return _Interval.fromDateTimes(s2, e); + } + /** + * Merge an array of Intervals into an equivalent minimal set of Intervals. + * Combines overlapping and adjacent Intervals. + * The resulting array will contain the Intervals in ascending order, that is, starting with the earliest Interval + * and ending with the latest. + * + * @param {Array} intervals + * @return {Array} + */ + static merge(intervals) { + const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(([sofar, current], item) => { + if (!current) { + return [sofar, item]; + } else if (current.overlaps(item) || current.abutsStart(item)) { + return [sofar, current.union(item)]; + } else { + return [sofar.concat([current]), item]; + } + }, [[], null]); + if (final) { + found.push(final); + } + return found; + } + /** + * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals. + * @param {Array} intervals + * @return {Array} + */ + static xor(intervals) { + let start = null, currentCount = 0; + const results = [], ends = intervals.map((i) => [{ + time: i.s, + type: "s" + }, { + time: i.e, + type: "e" + }]), flattened = Array.prototype.concat(...ends), arr = flattened.sort((a, b) => a.time - b.time); + for (const i of arr) { + currentCount += i.type === "s" ? 1 : -1; + if (currentCount === 1) { + start = i.time; + } else { + if (start && +start !== +i.time) { + results.push(_Interval.fromDateTimes(start, i.time)); + } + start = null; + } + } + return _Interval.merge(results); + } + /** + * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals. + * @param {...Interval} intervals + * @return {Array} + */ + difference(...intervals) { + return _Interval.xor([this].concat(intervals)).map((i) => this.intersection(i)).filter((i) => i && !i.isEmpty()); + } + /** + * Returns a string representation of this Interval appropriate for debugging. + * @return {string} + */ + toString() { + if (!this.isValid) return INVALID$1; + return `[${this.s.toISO()} \u2013 ${this.e.toISO()})`; + } + /** + * Returns a string representation of this Interval appropriate for the REPL. + * @return {string} + */ + [/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")]() { + if (this.isValid) { + return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`; + } else { + return `Interval { Invalid, reason: ${this.invalidReason} }`; + } + } + /** + * Returns a localized string representing this Interval. Accepts the same options as the + * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as + * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method + * is browser-specific, but in general it will return an appropriate representation of the + * Interval in the assigned locale. Defaults to the system's locale if no locale has been + * specified. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat + * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or + * Intl.DateTimeFormat constructor options. + * @param {Object} opts - Options to override the configuration of the start DateTime. + * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022 + * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022 + * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022 + * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM + * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p + * @return {string} + */ + toLocaleString(formatOpts = DATE_SHORT, opts = {}) { + return this.isValid ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this) : INVALID$1; + } + /** + * Returns an ISO 8601-compliant string representation of this Interval. + * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals + * @param {Object} opts - The same options as {@link DateTime#toISO} + * @return {string} + */ + toISO(opts) { + if (!this.isValid) return INVALID$1; + return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`; + } + /** + * Returns an ISO 8601-compliant string representation of date of this Interval. + * The time components are ignored. + * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals + * @return {string} + */ + toISODate() { + if (!this.isValid) return INVALID$1; + return `${this.s.toISODate()}/${this.e.toISODate()}`; + } + /** + * Returns an ISO 8601-compliant string representation of time of this Interval. + * The date components are ignored. + * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals + * @param {Object} opts - The same options as {@link DateTime#toISO} + * @return {string} + */ + toISOTime(opts) { + if (!this.isValid) return INVALID$1; + return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`; + } + /** + * Returns a string representation of this Interval formatted according to the specified format + * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible + * formatting tool. + * @param {string} dateFormat - The format string. This string formats the start and end time. + * See {@link DateTime#toFormat} for details. + * @param {Object} opts - Options. + * @param {string} [opts.separator = ' – '] - A separator to place between the start and end + * representations. + * @return {string} + */ + toFormat(dateFormat, { + separator = " \u2013 " + } = {}) { + if (!this.isValid) return INVALID$1; + return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`; + } + /** + * Return a Duration representing the time spanned by this interval. + * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration. + * @param {Object} opts - options that affect the creation of the Duration + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use + * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 } + * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 } + * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 } + * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 } + * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 } + * @return {Duration} + */ + toDuration(unit, opts) { + if (!this.isValid) { + return Duration.invalid(this.invalidReason); + } + return this.e.diff(this.s, unit, opts); + } + /** + * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes + * @param {function} mapFn + * @return {Interval} + * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC()) + * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 })) + */ + mapEndpoints(mapFn) { + return _Interval.fromDateTimes(mapFn(this.s), mapFn(this.e)); + } + }; + var Info = class { + static { + __name(this, "Info"); + } + /** + * Return whether the specified zone contains a DST. + * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone. + * @return {boolean} + */ + static hasDST(zone = Settings.defaultZone) { + const proto = DateTime.now().setZone(zone).set({ + month: 12 + }); + return !zone.isUniversal && proto.offset !== proto.set({ + month: 6 + }).offset; + } + /** + * Return whether the specified zone is a valid IANA specifier. + * @param {string} zone - Zone to check + * @return {boolean} + */ + static isValidIANAZone(zone) { + return IANAZone.isValidZone(zone); + } + /** + * Converts the input into a {@link Zone} instance. + * + * * If `input` is already a Zone instance, it is returned unchanged. + * * If `input` is a string containing a valid time zone name, a Zone instance + * with that name is returned. + * * If `input` is a string that doesn't refer to a known time zone, a Zone + * instance with {@link Zone#isValid} == false is returned. + * * If `input is a number, a Zone instance with the specified fixed offset + * in minutes is returned. + * * If `input` is `null` or `undefined`, the default zone is returned. + * @param {string|Zone|number} [input] - the value to be converted + * @return {Zone} + */ + static normalizeZone(input) { + return normalizeZone(input, Settings.defaultZone); + } + /** + * Get the weekday on which the week starts according to the given locale. + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.locObj=null] - an existing locale object to use + * @returns {number} the start of the week, 1 for Monday through 7 for Sunday + */ + static getStartOfWeek({ + locale = null, + locObj = null + } = {}) { + return (locObj || Locale.create(locale)).getStartOfWeek(); + } + /** + * Get the minimum number of days necessary in a week before it is considered part of the next year according + * to the given locale. + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.locObj=null] - an existing locale object to use + * @returns {number} + */ + static getMinimumDaysInFirstWeek({ + locale = null, + locObj = null + } = {}) { + return (locObj || Locale.create(locale)).getMinDaysInFirstWeek(); + } + /** + * Get the weekdays, which are considered the weekend according to the given locale + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.locObj=null] - an existing locale object to use + * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday + */ + static getWeekendWeekdays({ + locale = null, + locObj = null + } = {}) { + return (locObj || Locale.create(locale)).getWeekendDays().slice(); + } + /** + * Return an array of standalone month names. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat + * @param {string} [length='long'] - the length of the month representation, such as "numeric", "2-digit", "narrow", "short", "long" + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use + * @param {string} [opts.outputCalendar='gregory'] - the calendar + * @example Info.months()[0] //=> 'January' + * @example Info.months('short')[0] //=> 'Jan' + * @example Info.months('numeric')[0] //=> '1' + * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.' + * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١' + * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I' + * @return {Array} + */ + static months(length = "long", { + locale = null, + numberingSystem = null, + locObj = null, + outputCalendar = "gregory" + } = {}) { + return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length); + } + /** + * Return an array of format month names. + * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that + * changes the string. + * See {@link Info#months} + * @param {string} [length='long'] - the length of the month representation, such as "numeric", "2-digit", "narrow", "short", "long" + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use + * @param {string} [opts.outputCalendar='gregory'] - the calendar + * @return {Array} + */ + static monthsFormat(length = "long", { + locale = null, + numberingSystem = null, + locObj = null, + outputCalendar = "gregory" + } = {}) { + return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true); + } + /** + * Return an array of standalone week names. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use + * @example Info.weekdays()[0] //=> 'Monday' + * @example Info.weekdays('short')[0] //=> 'Mon' + * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.' + * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين' + * @return {Array} + */ + static weekdays(length = "long", { + locale = null, + numberingSystem = null, + locObj = null + } = {}) { + return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length); + } + /** + * Return an array of format week names. + * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that + * changes the string. + * See {@link Info#weekdays} + * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {Object} opts - options + * @param {string} [opts.locale=null] - the locale code + * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use + * @return {Array} + */ + static weekdaysFormat(length = "long", { + locale = null, + numberingSystem = null, + locObj = null + } = {}) { + return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true); + } + /** + * Return an array of meridiems. + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @example Info.meridiems() //=> [ 'AM', 'PM' ] + * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ] + * @return {Array} + */ + static meridiems({ + locale = null + } = {}) { + return Locale.create(locale).meridiems(); + } + /** + * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian. + * @param {string} [length='short'] - the length of the era representation, such as "short" or "long". + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @example Info.eras() //=> [ 'BC', 'AD' ] + * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ] + * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ] + * @return {Array} + */ + static eras(length = "short", { + locale = null + } = {}) { + return Locale.create(locale, null, "gregory").eras(length); + } + /** + * Return the set of available features in this environment. + * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case. + * Keys: + * * `relative`: whether this environment supports relative time formatting + * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale + * @example Info.features() //=> { relative: false, localeWeek: true } + * @return {Object} + */ + static features() { + return { + relative: hasRelative(), + localeWeek: hasLocaleWeekInfo() + }; + } + }; + function dayDiff(earlier, later) { + const utcDayStart = /* @__PURE__ */ __name((dt) => dt.toUTC(0, { + keepLocalTime: true + }).startOf("day").valueOf(), "utcDayStart"), ms = utcDayStart(later) - utcDayStart(earlier); + return Math.floor(Duration.fromMillis(ms).as("days")); + } + __name(dayDiff, "dayDiff"); + function highOrderDiffs(cursor, later, units) { + const differs = [["years", (a, b) => b.year - a.year], ["quarters", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4], ["months", (a, b) => b.month - a.month + (b.year - a.year) * 12], ["weeks", (a, b) => { + const days = dayDiff(a, b); + return (days - days % 7) / 7; + }], ["days", dayDiff]]; + const results = {}; + const earlier = cursor; + let lowestOrder, highWater; + for (const [unit, differ] of differs) { + if (units.indexOf(unit) >= 0) { + lowestOrder = unit; + results[unit] = differ(cursor, later); + highWater = earlier.plus(results); + if (highWater > later) { + results[unit]--; + cursor = earlier.plus(results); + if (cursor > later) { + highWater = cursor; + results[unit]--; + cursor = earlier.plus(results); + } + } else { + cursor = highWater; + } + } + } + return [cursor, results, highWater, lowestOrder]; + } + __name(highOrderDiffs, "highOrderDiffs"); + function diff(earlier, later, units, opts) { + let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units); + const remainingMillis = later - cursor; + const lowerOrderUnits = units.filter((u) => ["hours", "minutes", "seconds", "milliseconds"].indexOf(u) >= 0); + if (lowerOrderUnits.length === 0) { + if (highWater < later) { + highWater = cursor.plus({ + [lowestOrder]: 1 + }); + } + if (highWater !== cursor) { + results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor); + } + } + const duration = Duration.fromObject(results, opts); + if (lowerOrderUnits.length > 0) { + return Duration.fromMillis(remainingMillis, opts).shiftTo(...lowerOrderUnits).plus(duration); + } else { + return duration; + } + } + __name(diff, "diff"); + var MISSING_FTP = "missing Intl.DateTimeFormat.formatToParts support"; + function intUnit(regex, post = (i) => i) { + return { + regex, + deser: /* @__PURE__ */ __name(([s2]) => post(parseDigits(s2)), "deser") + }; + } + __name(intUnit, "intUnit"); + var NBSP = String.fromCharCode(160); + var spaceOrNBSP = `[ ${NBSP}]`; + var spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); + function fixListRegex(s2) { + return s2.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); + } + __name(fixListRegex, "fixListRegex"); + function stripInsensitivities(s2) { + return s2.replace(/\./g, "").replace(spaceOrNBSPRegExp, " ").toLowerCase(); + } + __name(stripInsensitivities, "stripInsensitivities"); + function oneOf(strings, startIndex) { + if (strings === null) { + return null; + } else { + return { + regex: RegExp(strings.map(fixListRegex).join("|")), + deser: /* @__PURE__ */ __name(([s2]) => strings.findIndex((i) => stripInsensitivities(s2) === stripInsensitivities(i)) + startIndex, "deser") + }; + } + } + __name(oneOf, "oneOf"); + function offset(regex, groups) { + return { + regex, + deser: /* @__PURE__ */ __name(([, h, m]) => signedOffset(h, m), "deser"), + groups + }; + } + __name(offset, "offset"); + function simple(regex) { + return { + regex, + deser: /* @__PURE__ */ __name(([s2]) => s2, "deser") + }; + } + __name(simple, "simple"); + function escapeToken(value) { + return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); + } + __name(escapeToken, "escapeToken"); + function unitForToken(token, loc) { + const one = digitRegex(loc), two = digitRegex(loc, "{2}"), three = digitRegex(loc, "{3}"), four = digitRegex(loc, "{4}"), six = digitRegex(loc, "{6}"), oneOrTwo = digitRegex(loc, "{1,2}"), oneToThree = digitRegex(loc, "{1,3}"), oneToSix = digitRegex(loc, "{1,6}"), oneToNine = digitRegex(loc, "{1,9}"), twoToFour = digitRegex(loc, "{2,4}"), fourToSix = digitRegex(loc, "{4,6}"), literal = /* @__PURE__ */ __name((t) => ({ + regex: RegExp(escapeToken(t.val)), + deser: /* @__PURE__ */ __name(([s2]) => s2, "deser"), + literal: true + }), "literal"), unitate = /* @__PURE__ */ __name((t) => { + if (token.literal) { + return literal(t); + } + switch (t.val) { + // era + case "G": + return oneOf(loc.eras("short"), 0); + case "GG": + return oneOf(loc.eras("long"), 0); + // years + case "y": + return intUnit(oneToSix); + case "yy": + return intUnit(twoToFour, untruncateYear); + case "yyyy": + return intUnit(four); + case "yyyyy": + return intUnit(fourToSix); + case "yyyyyy": + return intUnit(six); + // months + case "M": + return intUnit(oneOrTwo); + case "MM": + return intUnit(two); + case "MMM": + return oneOf(loc.months("short", true), 1); + case "MMMM": + return oneOf(loc.months("long", true), 1); + case "L": + return intUnit(oneOrTwo); + case "LL": + return intUnit(two); + case "LLL": + return oneOf(loc.months("short", false), 1); + case "LLLL": + return oneOf(loc.months("long", false), 1); + // dates + case "d": + return intUnit(oneOrTwo); + case "dd": + return intUnit(two); + // ordinals + case "o": + return intUnit(oneToThree); + case "ooo": + return intUnit(three); + // time + case "HH": + return intUnit(two); + case "H": + return intUnit(oneOrTwo); + case "hh": + return intUnit(two); + case "h": + return intUnit(oneOrTwo); + case "mm": + return intUnit(two); + case "m": + return intUnit(oneOrTwo); + case "q": + return intUnit(oneOrTwo); + case "qq": + return intUnit(two); + case "s": + return intUnit(oneOrTwo); + case "ss": + return intUnit(two); + case "S": + return intUnit(oneToThree); + case "SSS": + return intUnit(three); + case "u": + return simple(oneToNine); + case "uu": + return simple(oneOrTwo); + case "uuu": + return intUnit(one); + // meridiem + case "a": + return oneOf(loc.meridiems(), 0); + // weekYear (k) + case "kkkk": + return intUnit(four); + case "kk": + return intUnit(twoToFour, untruncateYear); + // weekNumber (W) + case "W": + return intUnit(oneOrTwo); + case "WW": + return intUnit(two); + // weekdays + case "E": + case "c": + return intUnit(one); + case "EEE": + return oneOf(loc.weekdays("short", false), 1); + case "EEEE": + return oneOf(loc.weekdays("long", false), 1); + case "ccc": + return oneOf(loc.weekdays("short", true), 1); + case "cccc": + return oneOf(loc.weekdays("long", true), 1); + // offset/zone + case "Z": + case "ZZ": + return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2); + case "ZZZ": + return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2); + // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing + // because we don't have any way to figure out what they are + case "z": + return simple(/[a-z_+-/]{1,256}?/i); + // this special-case "token" represents a place where a macro-token expanded into a white-space literal + // in this case we accept any non-newline white-space + case " ": + return simple(/[^\S\n\r]/); + default: + return literal(t); + } + }, "unitate"); + const unit = unitate(token) || { + invalidReason: MISSING_FTP + }; + unit.token = token; + return unit; + } + __name(unitForToken, "unitForToken"); + var partTypeStyleToTokenVal = { + year: { + "2-digit": "yy", + numeric: "yyyyy" + }, + month: { + numeric: "M", + "2-digit": "MM", + short: "MMM", + long: "MMMM" + }, + day: { + numeric: "d", + "2-digit": "dd" + }, + weekday: { + short: "EEE", + long: "EEEE" + }, + dayperiod: "a", + dayPeriod: "a", + hour12: { + numeric: "h", + "2-digit": "hh" + }, + hour24: { + numeric: "H", + "2-digit": "HH" + }, + minute: { + numeric: "m", + "2-digit": "mm" + }, + second: { + numeric: "s", + "2-digit": "ss" + }, + timeZoneName: { + long: "ZZZZZ", + short: "ZZZ" + } + }; + function tokenForPart(part, formatOpts, resolvedOpts) { + const { + type, + value + } = part; + if (type === "literal") { + const isSpace = /^\s+$/.test(value); + return { + literal: !isSpace, + val: isSpace ? " " : value + }; + } + const style = formatOpts[type]; + let actualType = type; + if (type === "hour") { + if (formatOpts.hour12 != null) { + actualType = formatOpts.hour12 ? "hour12" : "hour24"; + } else if (formatOpts.hourCycle != null) { + if (formatOpts.hourCycle === "h11" || formatOpts.hourCycle === "h12") { + actualType = "hour12"; + } else { + actualType = "hour24"; + } + } else { + actualType = resolvedOpts.hour12 ? "hour12" : "hour24"; + } + } + let val = partTypeStyleToTokenVal[actualType]; + if (typeof val === "object") { + val = val[style]; + } + if (val) { + return { + literal: false, + val + }; + } + return void 0; + } + __name(tokenForPart, "tokenForPart"); + function buildRegex(units) { + const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, ""); + return [`^${re}$`, units]; + } + __name(buildRegex, "buildRegex"); + function match(input, regex, handlers) { + const matches = input.match(regex); + if (matches) { + const all = {}; + let matchIndex = 1; + for (const i in handlers) { + if (hasOwnProperty(handlers, i)) { + const h = handlers[i], groups = h.groups ? h.groups + 1 : 1; + if (!h.literal && h.token) { + all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups)); + } + matchIndex += groups; + } + } + return [matches, all]; + } else { + return [matches, {}]; + } + } + __name(match, "match"); + function dateTimeFromMatches(matches) { + const toField = /* @__PURE__ */ __name((token) => { + switch (token) { + case "S": + return "millisecond"; + case "s": + return "second"; + case "m": + return "minute"; + case "h": + case "H": + return "hour"; + case "d": + return "day"; + case "o": + return "ordinal"; + case "L": + case "M": + return "month"; + case "y": + return "year"; + case "E": + case "c": + return "weekday"; + case "W": + return "weekNumber"; + case "k": + return "weekYear"; + case "q": + return "quarter"; + default: + return null; + } + }, "toField"); + let zone = null; + let specificOffset; + if (!isUndefined(matches.z)) { + zone = IANAZone.create(matches.z); + } + if (!isUndefined(matches.Z)) { + if (!zone) { + zone = new FixedOffsetZone(matches.Z); + } + specificOffset = matches.Z; + } + if (!isUndefined(matches.q)) { + matches.M = (matches.q - 1) * 3 + 1; + } + if (!isUndefined(matches.h)) { + if (matches.h < 12 && matches.a === 1) { + matches.h += 12; + } else if (matches.h === 12 && matches.a === 0) { + matches.h = 0; + } + } + if (matches.G === 0 && matches.y) { + matches.y = -matches.y; + } + if (!isUndefined(matches.u)) { + matches.S = parseMillis(matches.u); + } + const vals = Object.keys(matches).reduce((r, k) => { + const f = toField(k); + if (f) { + r[f] = matches[k]; + } + return r; + }, {}); + return [vals, zone, specificOffset]; + } + __name(dateTimeFromMatches, "dateTimeFromMatches"); + var dummyDateTimeCache = null; + function getDummyDateTime() { + if (!dummyDateTimeCache) { + dummyDateTimeCache = DateTime.fromMillis(1555555555555); + } + return dummyDateTimeCache; + } + __name(getDummyDateTime, "getDummyDateTime"); + function maybeExpandMacroToken(token, locale) { + if (token.literal) { + return token; + } + const formatOpts = Formatter.macroTokenToFormatOpts(token.val); + const tokens = formatOptsToTokens(formatOpts, locale); + if (tokens == null || tokens.includes(void 0)) { + return token; + } + return tokens; + } + __name(maybeExpandMacroToken, "maybeExpandMacroToken"); + function expandMacroTokens(tokens, locale) { + return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale))); + } + __name(expandMacroTokens, "expandMacroTokens"); + var TokenParser = class { + static { + __name(this, "TokenParser"); + } + constructor(locale, format) { + this.locale = locale; + this.format = format; + this.tokens = expandMacroTokens(Formatter.parseFormat(format), locale); + this.units = this.tokens.map((t) => unitForToken(t, locale)); + this.disqualifyingUnit = this.units.find((t) => t.invalidReason); + if (!this.disqualifyingUnit) { + const [regexString, handlers] = buildRegex(this.units); + this.regex = RegExp(regexString, "i"); + this.handlers = handlers; + } + } + explainFromTokens(input) { + if (!this.isValid) { + return { + input, + tokens: this.tokens, + invalidReason: this.invalidReason + }; + } else { + const [rawMatches, matches] = match(input, this.regex, this.handlers), [result, zone, specificOffset] = matches ? dateTimeFromMatches(matches) : [null, null, void 0]; + if (hasOwnProperty(matches, "a") && hasOwnProperty(matches, "H")) { + throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format"); + } + return { + input, + tokens: this.tokens, + regex: this.regex, + rawMatches, + matches, + result, + zone, + specificOffset + }; + } + } + get isValid() { + return !this.disqualifyingUnit; + } + get invalidReason() { + return this.disqualifyingUnit ? this.disqualifyingUnit.invalidReason : null; + } + }; + function explainFromTokens(locale, input, format) { + const parser = new TokenParser(locale, format); + return parser.explainFromTokens(input); + } + __name(explainFromTokens, "explainFromTokens"); + function parseFromTokens(locale, input, format) { + const { + result, + zone, + specificOffset, + invalidReason + } = explainFromTokens(locale, input, format); + return [result, zone, specificOffset, invalidReason]; + } + __name(parseFromTokens, "parseFromTokens"); + function formatOptsToTokens(formatOpts, locale) { + if (!formatOpts) { + return null; + } + const formatter = Formatter.create(locale, formatOpts); + const df = formatter.dtFormatter(getDummyDateTime()); + const parts = df.formatToParts(); + const resolvedOpts = df.resolvedOptions(); + return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts)); + } + __name(formatOptsToTokens, "formatOptsToTokens"); + var INVALID = "Invalid DateTime"; + var MAX_DATE = 864e13; + function unsupportedZone(zone) { + return new Invalid("unsupported zone", `the zone "${zone.name}" is not supported`); + } + __name(unsupportedZone, "unsupportedZone"); + function possiblyCachedWeekData(dt) { + if (dt.weekData === null) { + dt.weekData = gregorianToWeek(dt.c); + } + return dt.weekData; + } + __name(possiblyCachedWeekData, "possiblyCachedWeekData"); + function possiblyCachedLocalWeekData(dt) { + if (dt.localWeekData === null) { + dt.localWeekData = gregorianToWeek(dt.c, dt.loc.getMinDaysInFirstWeek(), dt.loc.getStartOfWeek()); + } + return dt.localWeekData; + } + __name(possiblyCachedLocalWeekData, "possiblyCachedLocalWeekData"); + function clone(inst, alts) { + const current = { + ts: inst.ts, + zone: inst.zone, + c: inst.c, + o: inst.o, + loc: inst.loc, + invalid: inst.invalid + }; + return new DateTime({ + ...current, + ...alts, + old: current + }); + } + __name(clone, "clone"); + function fixOffset(localTS, o, tz) { + let utcGuess = localTS - o * 60 * 1e3; + const o2 = tz.offset(utcGuess); + if (o === o2) { + return [utcGuess, o]; + } + utcGuess -= (o2 - o) * 60 * 1e3; + const o3 = tz.offset(utcGuess); + if (o2 === o3) { + return [utcGuess, o2]; + } + return [localTS - Math.min(o2, o3) * 60 * 1e3, Math.max(o2, o3)]; + } + __name(fixOffset, "fixOffset"); + function tsToObj(ts, offset2) { + ts += offset2 * 60 * 1e3; + const d = new Date(ts); + return { + year: d.getUTCFullYear(), + month: d.getUTCMonth() + 1, + day: d.getUTCDate(), + hour: d.getUTCHours(), + minute: d.getUTCMinutes(), + second: d.getUTCSeconds(), + millisecond: d.getUTCMilliseconds() + }; + } + __name(tsToObj, "tsToObj"); + function objToTS(obj, offset2, zone) { + return fixOffset(objToLocalTS(obj), offset2, zone); + } + __name(objToTS, "objToTS"); + function adjustTime(inst, dur) { + const oPre = inst.o, year = inst.c.year + Math.trunc(dur.years), month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, c = { + ...inst.c, + year, + month, + day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7 + }, millisToAdd = Duration.fromObject({ + years: dur.years - Math.trunc(dur.years), + quarters: dur.quarters - Math.trunc(dur.quarters), + months: dur.months - Math.trunc(dur.months), + weeks: dur.weeks - Math.trunc(dur.weeks), + days: dur.days - Math.trunc(dur.days), + hours: dur.hours, + minutes: dur.minutes, + seconds: dur.seconds, + milliseconds: dur.milliseconds + }).as("milliseconds"), localTS = objToLocalTS(c); + let [ts, o] = fixOffset(localTS, oPre, inst.zone); + if (millisToAdd !== 0) { + ts += millisToAdd; + o = inst.zone.offset(ts); + } + return { + ts, + o + }; + } + __name(adjustTime, "adjustTime"); + function parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) { + const { + setZone, + zone + } = opts; + if (parsed && Object.keys(parsed).length !== 0 || parsedZone) { + const interpretationZone = parsedZone || zone, inst = DateTime.fromObject(parsed, { + ...opts, + zone: interpretationZone, + specificOffset + }); + return setZone ? inst : inst.setZone(zone); + } else { + return DateTime.invalid(new Invalid("unparsable", `the input "${text}" can't be parsed as ${format}`)); + } + } + __name(parseDataToDateTime, "parseDataToDateTime"); + function toTechFormat(dt, format, allowZ = true) { + return dt.isValid ? Formatter.create(Locale.create("en-US"), { + allowZ, + forceSimple: true + }).formatDateTimeFromString(dt, format) : null; + } + __name(toTechFormat, "toTechFormat"); + function toISODate(o, extended, precision) { + const longFormat = o.c.year > 9999 || o.c.year < 0; + let c = ""; + if (longFormat && o.c.year >= 0) c += "+"; + c += padStart(o.c.year, longFormat ? 6 : 4); + if (precision === "year") return c; + if (extended) { + c += "-"; + c += padStart(o.c.month); + if (precision === "month") return c; + c += "-"; + } else { + c += padStart(o.c.month); + if (precision === "month") return c; + } + c += padStart(o.c.day); + return c; + } + __name(toISODate, "toISODate"); + function toISOTime(o, extended, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone, precision) { + let showSeconds = !suppressSeconds || o.c.millisecond !== 0 || o.c.second !== 0, c = ""; + switch (precision) { + case "day": + case "month": + case "year": + break; + default: + c += padStart(o.c.hour); + if (precision === "hour") break; + if (extended) { + c += ":"; + c += padStart(o.c.minute); + if (precision === "minute") break; + if (showSeconds) { + c += ":"; + c += padStart(o.c.second); + } + } else { + c += padStart(o.c.minute); + if (precision === "minute") break; + if (showSeconds) { + c += padStart(o.c.second); + } + } + if (precision === "second") break; + if (showSeconds && (!suppressMilliseconds || o.c.millisecond !== 0)) { + c += "."; + c += padStart(o.c.millisecond, 3); + } + } + if (includeOffset) { + if (o.isOffsetFixed && o.offset === 0 && !extendedZone) { + c += "Z"; + } else if (o.o < 0) { + c += "-"; + c += padStart(Math.trunc(-o.o / 60)); + c += ":"; + c += padStart(Math.trunc(-o.o % 60)); + } else { + c += "+"; + c += padStart(Math.trunc(o.o / 60)); + c += ":"; + c += padStart(Math.trunc(o.o % 60)); + } + } + if (extendedZone) { + c += "[" + o.zone.ianaName + "]"; + } + return c; + } + __name(toISOTime, "toISOTime"); + var defaultUnitValues = { + month: 1, + day: 1, + hour: 0, + minute: 0, + second: 0, + millisecond: 0 + }; + var defaultWeekUnitValues = { + weekNumber: 1, + weekday: 1, + hour: 0, + minute: 0, + second: 0, + millisecond: 0 + }; + var defaultOrdinalUnitValues = { + ordinal: 1, + hour: 0, + minute: 0, + second: 0, + millisecond: 0 + }; + var orderedUnits = ["year", "month", "day", "hour", "minute", "second", "millisecond"]; + var orderedWeekUnits = ["weekYear", "weekNumber", "weekday", "hour", "minute", "second", "millisecond"]; + var orderedOrdinalUnits = ["year", "ordinal", "hour", "minute", "second", "millisecond"]; + function normalizeUnit(unit) { + const normalized = { + year: "year", + years: "year", + month: "month", + months: "month", + day: "day", + days: "day", + hour: "hour", + hours: "hour", + minute: "minute", + minutes: "minute", + quarter: "quarter", + quarters: "quarter", + second: "second", + seconds: "second", + millisecond: "millisecond", + milliseconds: "millisecond", + weekday: "weekday", + weekdays: "weekday", + weeknumber: "weekNumber", + weeksnumber: "weekNumber", + weeknumbers: "weekNumber", + weekyear: "weekYear", + weekyears: "weekYear", + ordinal: "ordinal" + }[unit.toLowerCase()]; + if (!normalized) throw new InvalidUnitError(unit); + return normalized; + } + __name(normalizeUnit, "normalizeUnit"); + function normalizeUnitWithLocalWeeks(unit) { + switch (unit.toLowerCase()) { + case "localweekday": + case "localweekdays": + return "localWeekday"; + case "localweeknumber": + case "localweeknumbers": + return "localWeekNumber"; + case "localweekyear": + case "localweekyears": + return "localWeekYear"; + default: + return normalizeUnit(unit); + } + } + __name(normalizeUnitWithLocalWeeks, "normalizeUnitWithLocalWeeks"); + function guessOffsetForZone(zone) { + if (zoneOffsetTs === void 0) { + zoneOffsetTs = Settings.now(); + } + if (zone.type !== "iana") { + return zone.offset(zoneOffsetTs); + } + const zoneName = zone.name; + let offsetGuess = zoneOffsetGuessCache.get(zoneName); + if (offsetGuess === void 0) { + offsetGuess = zone.offset(zoneOffsetTs); + zoneOffsetGuessCache.set(zoneName, offsetGuess); + } + return offsetGuess; + } + __name(guessOffsetForZone, "guessOffsetForZone"); + function quickDT(obj, opts) { + const zone = normalizeZone(opts.zone, Settings.defaultZone); + if (!zone.isValid) { + return DateTime.invalid(unsupportedZone(zone)); + } + const loc = Locale.fromObject(opts); + let ts, o; + if (!isUndefined(obj.year)) { + for (const u of orderedUnits) { + if (isUndefined(obj[u])) { + obj[u] = defaultUnitValues[u]; + } + } + const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj); + if (invalid) { + return DateTime.invalid(invalid); + } + const offsetProvis = guessOffsetForZone(zone); + [ts, o] = objToTS(obj, offsetProvis, zone); + } else { + ts = Settings.now(); + } + return new DateTime({ + ts, + zone, + loc, + o + }); + } + __name(quickDT, "quickDT"); + function diffRelative(start, end, opts) { + const round = isUndefined(opts.round) ? true : opts.round, rounding = isUndefined(opts.rounding) ? "trunc" : opts.rounding, format = /* @__PURE__ */ __name((c, unit) => { + c = roundTo(c, round || opts.calendary ? 0 : 2, opts.calendary ? "round" : rounding); + const formatter = end.loc.clone(opts).relFormatter(opts); + return formatter.format(c, unit); + }, "format"), differ = /* @__PURE__ */ __name((unit) => { + if (opts.calendary) { + if (!end.hasSame(start, unit)) { + return end.startOf(unit).diff(start.startOf(unit), unit).get(unit); + } else return 0; + } else { + return end.diff(start, unit).get(unit); + } + }, "differ"); + if (opts.unit) { + return format(differ(opts.unit), opts.unit); + } + for (const unit of opts.units) { + const count = differ(unit); + if (Math.abs(count) >= 1) { + return format(count, unit); + } + } + return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]); + } + __name(diffRelative, "diffRelative"); + function lastOpts(argList) { + let opts = {}, args; + if (argList.length > 0 && typeof argList[argList.length - 1] === "object") { + opts = argList[argList.length - 1]; + args = Array.from(argList).slice(0, argList.length - 1); + } else { + args = Array.from(argList); + } + return [opts, args]; + } + __name(lastOpts, "lastOpts"); + var zoneOffsetTs; + var zoneOffsetGuessCache = /* @__PURE__ */ new Map(); + var DateTime = class _DateTime { + static { + __name(this, "DateTime"); + } + /** + * @access private + */ + constructor(config) { + const zone = config.zone || Settings.defaultZone; + let invalid = config.invalid || (Number.isNaN(config.ts) ? new Invalid("invalid input") : null) || (!zone.isValid ? unsupportedZone(zone) : null); + this.ts = isUndefined(config.ts) ? Settings.now() : config.ts; + let c = null, o = null; + if (!invalid) { + const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone); + if (unchanged) { + [c, o] = [config.old.c, config.old.o]; + } else { + const ot = isNumber(config.o) && !config.old ? config.o : zone.offset(this.ts); + c = tsToObj(this.ts, ot); + invalid = Number.isNaN(c.year) ? new Invalid("invalid input") : null; + c = invalid ? null : c; + o = invalid ? null : ot; + } + } + this._zone = zone; + this.loc = config.loc || Locale.create(); + this.invalid = invalid; + this.weekData = null; + this.localWeekData = null; + this.c = c; + this.o = o; + this.isLuxonDateTime = true; + } + // CONSTRUCT + /** + * Create a DateTime for the current instant, in the system's time zone. + * + * Use Settings to override these default values if needed. + * @example DateTime.now().toISO() //~> now in the ISO format + * @return {DateTime} + */ + static now() { + return new _DateTime({}); + } + /** + * Create a local DateTime + * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used + * @param {number} [month=1] - The month, 1-indexed + * @param {number} [day=1] - The day of the month, 1-indexed + * @param {number} [hour=0] - The hour of the day, in 24-hour time + * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59 + * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59 + * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999 + * @example DateTime.local() //~> now + * @example DateTime.local({ zone: "America/New_York" }) //~> now, in US east coast time + * @example DateTime.local(2017) //~> 2017-01-01T00:00:00 + * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00 + * @example DateTime.local(2017, 3, 12, { locale: "fr" }) //~> 2017-03-12T00:00:00, with a French locale + * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00 + * @example DateTime.local(2017, 3, 12, 5, { zone: "utc" }) //~> 2017-03-12T05:00:00, in UTC + * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00 + * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10 + * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765 + * @return {DateTime} + */ + static local() { + const [opts, args] = lastOpts(arguments), [year, month, day, hour, minute, second, millisecond] = args; + return quickDT({ + year, + month, + day, + hour, + minute, + second, + millisecond + }, opts); + } + /** + * Create a DateTime in UTC + * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used + * @param {number} [month=1] - The month, 1-indexed + * @param {number} [day=1] - The day of the month + * @param {number} [hour=0] - The hour of the day, in 24-hour time + * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59 + * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59 + * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999 + * @param {Object} options - configuration options for the DateTime + * @param {string} [options.locale] - a locale to set on the resulting DateTime instance + * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance + * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance + * @param {string} [options.weekSettings] - the week settings to set on the resulting DateTime instance + * @example DateTime.utc() //~> now + * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z + * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z + * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z + * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z + * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z + * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: "fr" }) //~> 2017-03-12T05:45:00Z with a French locale + * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z + * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: "fr" }) //~> 2017-03-12T05:45:10.765Z with a French locale + * @return {DateTime} + */ + static utc() { + const [opts, args] = lastOpts(arguments), [year, month, day, hour, minute, second, millisecond] = args; + opts.zone = FixedOffsetZone.utcInstance; + return quickDT({ + year, + month, + day, + hour, + minute, + second, + millisecond + }, opts); + } + /** + * Create a DateTime from a JavaScript Date object. Uses the default zone. + * @param {Date} date - a JavaScript Date object + * @param {Object} options - configuration options for the DateTime + * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into + * @return {DateTime} + */ + static fromJSDate(date, options = {}) { + const ts = isDate(date) ? date.valueOf() : NaN; + if (Number.isNaN(ts)) { + return _DateTime.invalid("invalid input"); + } + const zoneToUse = normalizeZone(options.zone, Settings.defaultZone); + if (!zoneToUse.isValid) { + return _DateTime.invalid(unsupportedZone(zoneToUse)); + } + return new _DateTime({ + ts, + zone: zoneToUse, + loc: Locale.fromObject(options) + }); + } + /** + * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone. + * @param {number} milliseconds - a number of milliseconds since 1970 UTC + * @param {Object} options - configuration options for the DateTime + * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into + * @param {string} [options.locale] - a locale to set on the resulting DateTime instance + * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance + * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance + * @return {DateTime} + */ + static fromMillis(milliseconds, options = {}) { + if (!isNumber(milliseconds)) { + throw new InvalidArgumentError(`fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`); + } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) { + return _DateTime.invalid("Timestamp out of range"); + } else { + return new _DateTime({ + ts: milliseconds, + zone: normalizeZone(options.zone, Settings.defaultZone), + loc: Locale.fromObject(options) + }); + } + } + /** + * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone. + * @param {number} seconds - a number of seconds since 1970 UTC + * @param {Object} options - configuration options for the DateTime + * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into + * @param {string} [options.locale] - a locale to set on the resulting DateTime instance + * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance + * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance + * @return {DateTime} + */ + static fromSeconds(seconds, options = {}) { + if (!isNumber(seconds)) { + throw new InvalidArgumentError("fromSeconds requires a numerical input"); + } else { + return new _DateTime({ + ts: seconds * 1e3, + zone: normalizeZone(options.zone, Settings.defaultZone), + loc: Locale.fromObject(options) + }); + } + } + /** + * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults. + * @param {Object} obj - the object to create the DateTime from + * @param {number} obj.year - a year, such as 1987 + * @param {number} obj.month - a month, 1-12 + * @param {number} obj.day - a day of the month, 1-31, depending on the month + * @param {number} obj.ordinal - day of the year, 1-365 or 366 + * @param {number} obj.weekYear - an ISO week year + * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year + * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday + * @param {number} obj.localWeekYear - a week year, according to the locale + * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale + * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale + * @param {number} obj.hour - hour of the day, 0-23 + * @param {number} obj.minute - minute of the hour, 0-59 + * @param {number} obj.second - second of the minute, 0-59 + * @param {number} obj.millisecond - millisecond of the second, 0-999 + * @param {Object} opts - options for creating this DateTime + * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone() + * @param {string} [opts.locale='system\'s locale'] - a locale to set on the resulting DateTime instance + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance + * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance + * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25' + * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01' + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06 + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }), + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' }) + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' }) + * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13' + * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: "en-US" }).toISODate() //=> '2021-12-26' + * @return {DateTime} + */ + static fromObject(obj, opts = {}) { + obj = obj || {}; + const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone); + if (!zoneToUse.isValid) { + return _DateTime.invalid(unsupportedZone(zoneToUse)); + } + const loc = Locale.fromObject(opts); + const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks); + const { + minDaysInFirstWeek, + startOfWeek + } = usesLocalWeekValues(normalized, loc); + const tsNow = Settings.now(), offsetProvis = !isUndefined(opts.specificOffset) ? opts.specificOffset : zoneToUse.offset(tsNow), containsOrdinal = !isUndefined(normalized.ordinal), containsGregorYear = !isUndefined(normalized.year), containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), containsGregor = containsGregorYear || containsGregorMD, definiteWeekDef = normalized.weekYear || normalized.weekNumber; + if ((containsGregor || containsOrdinal) && definiteWeekDef) { + throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals"); + } + if (containsGregorMD && containsOrdinal) { + throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); + } + const useWeekData = definiteWeekDef || normalized.weekday && !containsGregor; + let units, defaultValues, objNow = tsToObj(tsNow, offsetProvis); + if (useWeekData) { + units = orderedWeekUnits; + defaultValues = defaultWeekUnitValues; + objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek); + } else if (containsOrdinal) { + units = orderedOrdinalUnits; + defaultValues = defaultOrdinalUnitValues; + objNow = gregorianToOrdinal(objNow); + } else { + units = orderedUnits; + defaultValues = defaultUnitValues; + } + let foundFirst = false; + for (const u of units) { + const v = normalized[u]; + if (!isUndefined(v)) { + foundFirst = true; + } else if (foundFirst) { + normalized[u] = defaultValues[u]; + } else { + normalized[u] = objNow[u]; + } + } + const higherOrderInvalid = useWeekData ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek) : containsOrdinal ? hasInvalidOrdinalData(normalized) : hasInvalidGregorianData(normalized), invalid = higherOrderInvalid || hasInvalidTimeData(normalized); + if (invalid) { + return _DateTime.invalid(invalid); + } + const gregorian = useWeekData ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek) : containsOrdinal ? ordinalToGregorian(normalized) : normalized, [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse), inst = new _DateTime({ + ts: tsFinal, + zone: zoneToUse, + o: offsetFinal, + loc + }); + if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) { + return _DateTime.invalid("mismatched weekday", `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`); + } + if (!inst.isValid) { + return _DateTime.invalid(inst.invalid); + } + return inst; + } + /** + * Create a DateTime from an ISO 8601 string + * @param {string} text - the ISO string + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone + * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one + * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance + * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance + * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance + * @param {string} [opts.weekSettings] - the week settings to set on the resulting DateTime instance + * @example DateTime.fromISO('2016-05-25T09:08:34.123') + * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00') + * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true}) + * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'}) + * @example DateTime.fromISO('2016-W05-4') + * @return {DateTime} + */ + static fromISO(text, opts = {}) { + const [vals, parsedZone] = parseISODate(text); + return parseDataToDateTime(vals, parsedZone, opts, "ISO 8601", text); + } + /** + * Create a DateTime from an RFC 2822 string + * @param {string} text - the RFC 2822 string + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in. + * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one + * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance + * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance + * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT') + * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600') + * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z') + * @return {DateTime} + */ + static fromRFC2822(text, opts = {}) { + const [vals, parsedZone] = parseRFC2822Date(text); + return parseDataToDateTime(vals, parsedZone, opts, "RFC 2822", text); + } + /** + * Create a DateTime from an HTTP header date + * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1 + * @param {string} text - the HTTP header date + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in. + * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods. + * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance + * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance + * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT') + * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT') + * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994') + * @return {DateTime} + */ + static fromHTTP(text, opts = {}) { + const [vals, parsedZone] = parseHTTPDate(text); + return parseDataToDateTime(vals, parsedZone, opts, "HTTP", opts); + } + /** + * Create a DateTime from an input string and format string. + * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens). + * @param {string} text - the string to parse + * @param {string} fmt - the format the string is expected to be in (see the link below for the formats) + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone + * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one + * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale + * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system + * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @return {DateTime} + */ + static fromFormat(text, fmt, opts = {}) { + if (isUndefined(text) || isUndefined(fmt)) { + throw new InvalidArgumentError("fromFormat requires an input string and a format"); + } + const { + locale = null, + numberingSystem = null + } = opts, localeToUse = Locale.fromOpts({ + locale, + numberingSystem, + defaultToEN: true + }), [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt); + if (invalid) { + return _DateTime.invalid(invalid); + } else { + return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset); + } + } + /** + * @deprecated use fromFormat instead + */ + static fromString(text, fmt, opts = {}) { + return _DateTime.fromFormat(text, fmt, opts); + } + /** + * Create a DateTime from a SQL date, time, or datetime + * Defaults to en-US if no locale has been specified, regardless of the system's locale + * @param {string} text - the string to parse + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone + * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one + * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale + * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system + * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @example DateTime.fromSQL('2017-05-15') + * @example DateTime.fromSQL('2017-05-15 09:12:34') + * @example DateTime.fromSQL('2017-05-15 09:12:34.342') + * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00') + * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles') + * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true }) + * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' }) + * @example DateTime.fromSQL('09:12:34.342') + * @return {DateTime} + */ + static fromSQL(text, opts = {}) { + const [vals, parsedZone] = parseSQL(text); + return parseDataToDateTime(vals, parsedZone, opts, "SQL", text); + } + /** + * Create an invalid DateTime. + * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent. + * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information + * @return {DateTime} + */ + static invalid(reason, explanation = null) { + if (!reason) { + throw new InvalidArgumentError("need to specify a reason the DateTime is invalid"); + } + const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); + if (Settings.throwOnInvalid) { + throw new InvalidDateTimeError(invalid); + } else { + return new _DateTime({ + invalid + }); + } + } + /** + * Check if an object is an instance of DateTime. Works across context boundaries + * @param {object} o + * @return {boolean} + */ + static isDateTime(o) { + return o && o.isLuxonDateTime || false; + } + /** + * Produce the format string for a set of options + * @param formatOpts + * @param localeOpts + * @returns {string} + */ + static parseFormatForOpts(formatOpts, localeOpts = {}) { + const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts)); + return !tokenList ? null : tokenList.map((t) => t ? t.val : null).join(""); + } + /** + * Produce the the fully expanded format token for the locale + * Does NOT quote characters, so quoted tokens will not round trip correctly + * @param fmt + * @param localeOpts + * @returns {string} + */ + static expandFormat(fmt, localeOpts = {}) { + const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts)); + return expanded.map((t) => t.val).join(""); + } + static resetCache() { + zoneOffsetTs = void 0; + zoneOffsetGuessCache.clear(); + } + // INFO + /** + * Get the value of unit. + * @param {string} unit - a unit such as 'minute' or 'day' + * @example DateTime.local(2017, 7, 4).get('month'); //=> 7 + * @example DateTime.local(2017, 7, 4).get('day'); //=> 4 + * @return {number} + */ + get(unit) { + return this[unit]; + } + /** + * Returns whether the DateTime is valid. Invalid DateTimes occur when: + * * The DateTime was created from invalid calendar information, such as the 13th month or February 30 + * * The DateTime was created by an operation on another invalid date + * @type {boolean} + */ + get isValid() { + return this.invalid === null; + } + /** + * Returns an error code if this DateTime is invalid, or null if the DateTime is valid + * @type {string} + */ + get invalidReason() { + return this.invalid ? this.invalid.reason : null; + } + /** + * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid + * @type {string} + */ + get invalidExplanation() { + return this.invalid ? this.invalid.explanation : null; + } + /** + * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime + * + * @type {string} + */ + get locale() { + return this.isValid ? this.loc.locale : null; + } + /** + * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime + * + * @type {string} + */ + get numberingSystem() { + return this.isValid ? this.loc.numberingSystem : null; + } + /** + * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime + * + * @type {string} + */ + get outputCalendar() { + return this.isValid ? this.loc.outputCalendar : null; + } + /** + * Get the time zone associated with this DateTime. + * @type {Zone} + */ + get zone() { + return this._zone; + } + /** + * Get the name of the time zone. + * @type {string} + */ + get zoneName() { + return this.isValid ? this.zone.name : null; + } + /** + * Get the year + * @example DateTime.local(2017, 5, 25).year //=> 2017 + * @type {number} + */ + get year() { + return this.isValid ? this.c.year : NaN; + } + /** + * Get the quarter + * @example DateTime.local(2017, 5, 25).quarter //=> 2 + * @type {number} + */ + get quarter() { + return this.isValid ? Math.ceil(this.c.month / 3) : NaN; + } + /** + * Get the month (1-12). + * @example DateTime.local(2017, 5, 25).month //=> 5 + * @type {number} + */ + get month() { + return this.isValid ? this.c.month : NaN; + } + /** + * Get the day of the month (1-30ish). + * @example DateTime.local(2017, 5, 25).day //=> 25 + * @type {number} + */ + get day() { + return this.isValid ? this.c.day : NaN; + } + /** + * Get the hour of the day (0-23). + * @example DateTime.local(2017, 5, 25, 9).hour //=> 9 + * @type {number} + */ + get hour() { + return this.isValid ? this.c.hour : NaN; + } + /** + * Get the minute of the hour (0-59). + * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30 + * @type {number} + */ + get minute() { + return this.isValid ? this.c.minute : NaN; + } + /** + * Get the second of the minute (0-59). + * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52 + * @type {number} + */ + get second() { + return this.isValid ? this.c.second : NaN; + } + /** + * Get the millisecond of the second (0-999). + * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654 + * @type {number} + */ + get millisecond() { + return this.isValid ? this.c.millisecond : NaN; + } + /** + * Get the week year + * @see https://en.wikipedia.org/wiki/ISO_week_date + * @example DateTime.local(2014, 12, 31).weekYear //=> 2015 + * @type {number} + */ + get weekYear() { + return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN; + } + /** + * Get the week number of the week year (1-52ish). + * @see https://en.wikipedia.org/wiki/ISO_week_date + * @example DateTime.local(2017, 5, 25).weekNumber //=> 21 + * @type {number} + */ + get weekNumber() { + return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN; + } + /** + * Get the day of the week. + * 1 is Monday and 7 is Sunday + * @see https://en.wikipedia.org/wiki/ISO_week_date + * @example DateTime.local(2014, 11, 31).weekday //=> 4 + * @type {number} + */ + get weekday() { + return this.isValid ? possiblyCachedWeekData(this).weekday : NaN; + } + /** + * Returns true if this date is on a weekend according to the locale, false otherwise + * @returns {boolean} + */ + get isWeekend() { + return this.isValid && this.loc.getWeekendDays().includes(this.weekday); + } + /** + * Get the day of the week according to the locale. + * 1 is the first day of the week and 7 is the last day of the week. + * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1, + * @returns {number} + */ + get localWeekday() { + return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN; + } + /** + * Get the week number of the week year according to the locale. Different locales assign week numbers differently, + * because the week can start on different days of the week (see localWeekday) and because a different number of days + * is required for a week to count as the first week of a year. + * @returns {number} + */ + get localWeekNumber() { + return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN; + } + /** + * Get the week year according to the locale. Different locales assign week numbers (and therefor week years) + * differently, see localWeekNumber. + * @returns {number} + */ + get localWeekYear() { + return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN; + } + /** + * Get the ordinal (meaning the day of the year) + * @example DateTime.local(2017, 5, 25).ordinal //=> 145 + * @type {number|DateTime} + */ + get ordinal() { + return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN; + } + /** + * Get the human readable short month name, such as 'Oct'. + * Defaults to the system's locale if no locale has been specified + * @example DateTime.local(2017, 10, 30).monthShort //=> Oct + * @type {string} + */ + get monthShort() { + return this.isValid ? Info.months("short", { + locObj: this.loc + })[this.month - 1] : null; + } + /** + * Get the human readable long month name, such as 'October'. + * Defaults to the system's locale if no locale has been specified + * @example DateTime.local(2017, 10, 30).monthLong //=> October + * @type {string} + */ + get monthLong() { + return this.isValid ? Info.months("long", { + locObj: this.loc + })[this.month - 1] : null; + } + /** + * Get the human readable short weekday, such as 'Mon'. + * Defaults to the system's locale if no locale has been specified + * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon + * @type {string} + */ + get weekdayShort() { + return this.isValid ? Info.weekdays("short", { + locObj: this.loc + })[this.weekday - 1] : null; + } + /** + * Get the human readable long weekday, such as 'Monday'. + * Defaults to the system's locale if no locale has been specified + * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday + * @type {string} + */ + get weekdayLong() { + return this.isValid ? Info.weekdays("long", { + locObj: this.loc + })[this.weekday - 1] : null; + } + /** + * Get the UTC offset of this DateTime in minutes + * @example DateTime.now().offset //=> -240 + * @example DateTime.utc().offset //=> 0 + * @type {number} + */ + get offset() { + return this.isValid ? +this.o : NaN; + } + /** + * Get the short human name for the zone's current offset, for example "EST" or "EDT". + * Defaults to the system's locale if no locale has been specified + * @type {string} + */ + get offsetNameShort() { + if (this.isValid) { + return this.zone.offsetName(this.ts, { + format: "short", + locale: this.locale + }); + } else { + return null; + } + } + /** + * Get the long human name for the zone's current offset, for example "Eastern Standard Time" or "Eastern Daylight Time". + * Defaults to the system's locale if no locale has been specified + * @type {string} + */ + get offsetNameLong() { + if (this.isValid) { + return this.zone.offsetName(this.ts, { + format: "long", + locale: this.locale + }); + } else { + return null; + } + } + /** + * Get whether this zone's offset ever changes, as in a DST. + * @type {boolean} + */ + get isOffsetFixed() { + return this.isValid ? this.zone.isUniversal : null; + } + /** + * Get whether the DateTime is in a DST. + * @type {boolean} + */ + get isInDST() { + if (this.isOffsetFixed) { + return false; + } else { + return this.offset > this.set({ + month: 1, + day: 1 + }).offset || this.offset > this.set({ + month: 5 + }).offset; + } + } + /** + * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC + * in this DateTime's zone. During DST changes local time can be ambiguous, for example + * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`. + * This method will return both possible DateTimes if this DateTime's local time is ambiguous. + * @returns {DateTime[]} + */ + getPossibleOffsets() { + if (!this.isValid || this.isOffsetFixed) { + return [this]; + } + const dayMs = 864e5; + const minuteMs = 6e4; + const localTS = objToLocalTS(this.c); + const oEarlier = this.zone.offset(localTS - dayMs); + const oLater = this.zone.offset(localTS + dayMs); + const o1 = this.zone.offset(localTS - oEarlier * minuteMs); + const o2 = this.zone.offset(localTS - oLater * minuteMs); + if (o1 === o2) { + return [this]; + } + const ts1 = localTS - o1 * minuteMs; + const ts2 = localTS - o2 * minuteMs; + const c1 = tsToObj(ts1, o1); + const c2 = tsToObj(ts2, o2); + if (c1.hour === c2.hour && c1.minute === c2.minute && c1.second === c2.second && c1.millisecond === c2.millisecond) { + return [clone(this, { + ts: ts1 + }), clone(this, { + ts: ts2 + })]; + } + return [this]; + } + /** + * Returns true if this DateTime is in a leap year, false otherwise + * @example DateTime.local(2016).isInLeapYear //=> true + * @example DateTime.local(2013).isInLeapYear //=> false + * @type {boolean} + */ + get isInLeapYear() { + return isLeapYear(this.year); + } + /** + * Returns the number of days in this DateTime's month + * @example DateTime.local(2016, 2).daysInMonth //=> 29 + * @example DateTime.local(2016, 3).daysInMonth //=> 31 + * @type {number} + */ + get daysInMonth() { + return daysInMonth(this.year, this.month); + } + /** + * Returns the number of days in this DateTime's year + * @example DateTime.local(2016).daysInYear //=> 366 + * @example DateTime.local(2013).daysInYear //=> 365 + * @type {number} + */ + get daysInYear() { + return this.isValid ? daysInYear(this.year) : NaN; + } + /** + * Returns the number of weeks in this DateTime's year + * @see https://en.wikipedia.org/wiki/ISO_week_date + * @example DateTime.local(2004).weeksInWeekYear //=> 53 + * @example DateTime.local(2013).weeksInWeekYear //=> 52 + * @type {number} + */ + get weeksInWeekYear() { + return this.isValid ? weeksInWeekYear(this.weekYear) : NaN; + } + /** + * Returns the number of weeks in this DateTime's local week year + * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52 + * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53 + * @type {number} + */ + get weeksInLocalWeekYear() { + return this.isValid ? weeksInWeekYear(this.localWeekYear, this.loc.getMinDaysInFirstWeek(), this.loc.getStartOfWeek()) : NaN; + } + /** + * Returns the resolved Intl options for this DateTime. + * This is useful in understanding the behavior of formatting methods + * @param {Object} opts - the same options as toLocaleString + * @return {Object} + */ + resolvedLocaleOptions(opts = {}) { + const { + locale, + numberingSystem, + calendar + } = Formatter.create(this.loc.clone(opts), opts).resolvedOptions(this); + return { + locale, + numberingSystem, + outputCalendar: calendar + }; + } + // TRANSFORM + /** + * "Set" the DateTime's zone to UTC. Returns a newly-constructed DateTime. + * + * Equivalent to {@link DateTime#setZone}('utc') + * @param {number} [offset=0] - optionally, an offset from UTC in minutes + * @param {Object} [opts={}] - options to pass to `setZone()` + * @return {DateTime} + */ + toUTC(offset2 = 0, opts = {}) { + return this.setZone(FixedOffsetZone.instance(offset2), opts); + } + /** + * "Set" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime. + * + * Equivalent to `setZone('local')` + * @return {DateTime} + */ + toLocal() { + return this.setZone(Settings.defaultZone); + } + /** + * "Set" the DateTime's zone to specified zone. Returns a newly-constructed DateTime. + * + * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones. + * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class. + * @param {Object} opts - options + * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this. + * @return {DateTime} + */ + setZone(zone, { + keepLocalTime = false, + keepCalendarTime = false + } = {}) { + zone = normalizeZone(zone, Settings.defaultZone); + if (zone.equals(this.zone)) { + return this; + } else if (!zone.isValid) { + return _DateTime.invalid(unsupportedZone(zone)); + } else { + let newTS = this.ts; + if (keepLocalTime || keepCalendarTime) { + const offsetGuess = zone.offset(this.ts); + const asObj = this.toObject(); + [newTS] = objToTS(asObj, offsetGuess, zone); + } + return clone(this, { + ts: newTS, + zone + }); + } + } + /** + * "Set" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime. + * @param {Object} properties - the properties to set + * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' }) + * @return {DateTime} + */ + reconfigure({ + locale, + numberingSystem, + outputCalendar + } = {}) { + const loc = this.loc.clone({ + locale, + numberingSystem, + outputCalendar + }); + return clone(this, { + loc + }); + } + /** + * "Set" the locale. Returns a newly-constructed DateTime. + * Just a convenient alias for reconfigure({ locale }) + * @example DateTime.local(2017, 5, 25).setLocale('en-GB') + * @return {DateTime} + */ + setLocale(locale) { + return this.reconfigure({ + locale + }); + } + /** + * "Set" the values of specified units. Returns a newly-constructed DateTime. + * You can only set units with this method; for "setting" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}. + * + * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`. + * They cannot be mixed with ISO-week units like `weekday`. + * @param {Object} values - a mapping of units to numbers + * @example dt.set({ year: 2017 }) + * @example dt.set({ hour: 8, minute: 30 }) + * @example dt.set({ weekday: 5 }) + * @example dt.set({ year: 2005, ordinal: 234 }) + * @return {DateTime} + */ + set(values) { + if (!this.isValid) return this; + const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks); + const { + minDaysInFirstWeek, + startOfWeek + } = usesLocalWeekValues(normalized, this.loc); + const settingWeekStuff = !isUndefined(normalized.weekYear) || !isUndefined(normalized.weekNumber) || !isUndefined(normalized.weekday), containsOrdinal = !isUndefined(normalized.ordinal), containsGregorYear = !isUndefined(normalized.year), containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), containsGregor = containsGregorYear || containsGregorMD, definiteWeekDef = normalized.weekYear || normalized.weekNumber; + if ((containsGregor || containsOrdinal) && definiteWeekDef) { + throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals"); + } + if (containsGregorMD && containsOrdinal) { + throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); + } + let mixed; + if (settingWeekStuff) { + mixed = weekToGregorian({ + ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), + ...normalized + }, minDaysInFirstWeek, startOfWeek); + } else if (!isUndefined(normalized.ordinal)) { + mixed = ordinalToGregorian({ + ...gregorianToOrdinal(this.c), + ...normalized + }); + } else { + mixed = { + ...this.toObject(), + ...normalized + }; + if (isUndefined(normalized.day)) { + mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day); + } + } + const [ts, o] = objToTS(mixed, this.o, this.zone); + return clone(this, { + ts, + o + }); + } + /** + * Add a period of time to this DateTime and return the resulting DateTime + * + * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between. + * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() + * @example DateTime.now().plus(123) //~> in 123 milliseconds + * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes + * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow + * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday + * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min + * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min + * @return {DateTime} + */ + plus(duration) { + if (!this.isValid) return this; + const dur = Duration.fromDurationLike(duration); + return clone(this, adjustTime(this, dur)); + } + /** + * Subtract a period of time to this DateTime and return the resulting DateTime + * See {@link DateTime#plus} + * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() + @return {DateTime} + */ + minus(duration) { + if (!this.isValid) return this; + const dur = Duration.fromDurationLike(duration).negate(); + return clone(this, adjustTime(this, dur)); + } + /** + * "Set" this DateTime to the beginning of a unit of time. + * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'. + * @param {Object} opts - options + * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week + * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01' + * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01' + * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays + * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00' + * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00' + * @return {DateTime} + */ + startOf(unit, { + useLocaleWeeks = false + } = {}) { + if (!this.isValid) return this; + const o = {}, normalizedUnit = Duration.normalizeUnit(unit); + switch (normalizedUnit) { + case "years": + o.month = 1; + // falls through + case "quarters": + case "months": + o.day = 1; + // falls through + case "weeks": + case "days": + o.hour = 0; + // falls through + case "hours": + o.minute = 0; + // falls through + case "minutes": + o.second = 0; + // falls through + case "seconds": + o.millisecond = 0; + break; + } + if (normalizedUnit === "weeks") { + if (useLocaleWeeks) { + const startOfWeek = this.loc.getStartOfWeek(); + const { + weekday + } = this; + if (weekday < startOfWeek) { + o.weekNumber = this.weekNumber - 1; + } + o.weekday = startOfWeek; + } else { + o.weekday = 1; + } + } + if (normalizedUnit === "quarters") { + const q = Math.ceil(this.month / 3); + o.month = (q - 1) * 3 + 1; + } + return this.set(o); + } + /** + * "Set" this DateTime to the end (meaning the last millisecond) of a unit of time + * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'. + * @param {Object} opts - options + * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week + * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00' + * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00' + * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays + * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00' + * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00' + * @return {DateTime} + */ + endOf(unit, opts) { + return this.isValid ? this.plus({ + [unit]: 1 + }).startOf(unit, opts).minus(1) : this; + } + // OUTPUT + /** + * Returns a string representation of this DateTime formatted according to the specified format string. + * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens). + * Defaults to en-US if no locale has been specified, regardless of the system's locale. + * @param {string} fmt - the format string + * @param {Object} opts - opts to override the configuration options on this DateTime + * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22' + * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22' + * @example DateTime.now().toFormat('yyyy LLL dd', { locale: "fr" }) //=> '2017 avr. 22' + * @example DateTime.now().toFormat("HH 'hours and' mm 'minutes'") //=> '20 hours and 55 minutes' + * @return {string} + */ + toFormat(fmt, opts = {}) { + return this.isValid ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) : INVALID; + } + /** + * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`. + * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation + * of the DateTime in the assigned locale. + * Defaults to the system's locale if no locale has been specified + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat + * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options + * @param {Object} opts - opts to override the configuration options on this DateTime + * @example DateTime.now().toLocaleString(); //=> 4/20/2017 + * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017' + * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017' + * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022' + * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM' + * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM' + * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20' + * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM' + * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32' + * @return {string} + */ + toLocaleString(formatOpts = DATE_SHORT, opts = {}) { + return this.isValid ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this) : INVALID; + } + /** + * Returns an array of format "parts", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output. + * Defaults to the system's locale if no locale has been specified + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts + * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`. + * @example DateTime.now().toLocaleParts(); //=> [ + * //=> { type: 'day', value: '25' }, + * //=> { type: 'literal', value: '/' }, + * //=> { type: 'month', value: '05' }, + * //=> { type: 'literal', value: '/' }, + * //=> { type: 'year', value: '1982' } + * //=> ] + */ + toLocaleParts(opts = {}) { + return this.isValid ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this) : []; + } + /** + * Returns an ISO 8601-compliant string representation of this DateTime + * @param {Object} opts - options + * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 + * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 + * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.extendedZone=false] - add the time zone format extension + * @param {string} [opts.format='extended'] - choose between the basic and extended format + * @param {string} [opts.precision='milliseconds'] - truncate output to desired presicion: 'years', 'months', 'days', 'hours', 'minutes', 'seconds' or 'milliseconds'. When precision and suppressSeconds or suppressMilliseconds are used together, precision sets the maximum unit shown in the output, however seconds or milliseconds will still be suppressed if they are 0. + * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z' + * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00' + * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335' + * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400' + * @example DateTime.now().toISO({ precision: 'day' }) //=> '2017-04-22Z' + * @example DateTime.now().toISO({ precision: 'minute' }) //=> '2017-04-22T20:47Z' + * @return {string|null} + */ + toISO({ + format = "extended", + suppressSeconds = false, + suppressMilliseconds = false, + includeOffset = true, + extendedZone = false, + precision = "milliseconds" + } = {}) { + if (!this.isValid) { + return null; + } + precision = normalizeUnit(precision); + const ext = format === "extended"; + let c = toISODate(this, ext, precision); + if (orderedUnits.indexOf(precision) >= 3) c += "T"; + c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone, precision); + return c; + } + /** + * Returns an ISO 8601-compliant string representation of this DateTime's date component + * @param {Object} opts - options + * @param {string} [opts.format='extended'] - choose between the basic and extended format + * @param {string} [opts.precision='day'] - truncate output to desired precision: 'years', 'months', or 'days'. + * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25' + * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525' + * @example DateTime.utc(1982, 5, 25).toISODate({ precision: 'month' }) //=> '1982-05' + * @return {string|null} + */ + toISODate({ + format = "extended", + precision = "day" + } = {}) { + if (!this.isValid) { + return null; + } + return toISODate(this, format === "extended", normalizeUnit(precision)); + } + /** + * Returns an ISO 8601-compliant string representation of this DateTime's week date + * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2' + * @return {string} + */ + toISOWeekDate() { + return toTechFormat(this, "kkkk-'W'WW-c"); + } + /** + * Returns an ISO 8601-compliant string representation of this DateTime's time component + * @param {Object} opts - options + * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 + * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 + * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.extendedZone=true] - add the time zone format extension + * @param {boolean} [opts.includePrefix=false] - include the `T` prefix + * @param {string} [opts.format='extended'] - choose between the basic and extended format + * @param {string} [opts.precision='milliseconds'] - truncate output to desired presicion: 'hours', 'minutes', 'seconds' or 'milliseconds'. When precision and suppressSeconds or suppressMilliseconds are used together, precision sets the maximum unit shown in the output, however seconds or milliseconds will still be suppressed if they are 0. + * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z' + * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z' + * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z' + * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z' + * @example DateTime.utc().set({ hour: 7, minute: 34, second: 56 }).toISOTime({ precision: 'minute' }) //=> '07:34Z' + * @return {string} + */ + toISOTime({ + suppressMilliseconds = false, + suppressSeconds = false, + includeOffset = true, + includePrefix = false, + extendedZone = false, + format = "extended", + precision = "milliseconds" + } = {}) { + if (!this.isValid) { + return null; + } + precision = normalizeUnit(precision); + let c = includePrefix && orderedUnits.indexOf(precision) >= 3 ? "T" : ""; + return c + toISOTime(this, format === "extended", suppressSeconds, suppressMilliseconds, includeOffset, extendedZone, precision); + } + /** + * Returns an RFC 2822-compatible string representation of this DateTime + * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000' + * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400' + * @return {string} + */ + toRFC2822() { + return toTechFormat(this, "EEE, dd LLL yyyy HH:mm:ss ZZZ", false); + } + /** + * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT. + * Specifically, the string conforms to RFC 1123. + * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1 + * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT' + * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT' + * @return {string} + */ + toHTTP() { + return toTechFormat(this.toUTC(), "EEE, dd LLL yyyy HH:mm:ss 'GMT'"); + } + /** + * Returns a string representation of this DateTime appropriate for use in SQL Date + * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13' + * @return {string|null} + */ + toSQLDate() { + if (!this.isValid) { + return null; + } + return toISODate(this, true); + } + /** + * Returns a string representation of this DateTime appropriate for use in SQL Time + * @param {Object} opts - options + * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset. + * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00' + * @example DateTime.utc().toSQL() //=> '05:15:16.345' + * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00' + * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345' + * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York' + * @return {string} + */ + toSQLTime({ + includeOffset = true, + includeZone = false, + includeOffsetSpace = true + } = {}) { + let fmt = "HH:mm:ss.SSS"; + if (includeZone || includeOffset) { + if (includeOffsetSpace) { + fmt += " "; + } + if (includeZone) { + fmt += "z"; + } else if (includeOffset) { + fmt += "ZZ"; + } + } + return toTechFormat(this, fmt, true); + } + /** + * Returns a string representation of this DateTime appropriate for use in SQL DateTime + * @param {Object} opts - options + * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset. + * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00' + * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z' + * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00' + * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000' + * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York' + * @return {string} + */ + toSQL(opts = {}) { + if (!this.isValid) { + return null; + } + return `${this.toSQLDate()} ${this.toSQLTime(opts)}`; + } + /** + * Returns a string representation of this DateTime appropriate for debugging + * @return {string} + */ + toString() { + return this.isValid ? this.toISO() : INVALID; + } + /** + * Returns a string representation of this DateTime appropriate for the REPL. + * @return {string} + */ + [/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")]() { + if (this.isValid) { + return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`; + } else { + return `DateTime { Invalid, reason: ${this.invalidReason} }`; + } + } + /** + * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis} + * @return {number} + */ + valueOf() { + return this.toMillis(); + } + /** + * Returns the epoch milliseconds of this DateTime. + * @return {number} + */ + toMillis() { + return this.isValid ? this.ts : NaN; + } + /** + * Returns the epoch seconds (including milliseconds in the fractional part) of this DateTime. + * @return {number} + */ + toSeconds() { + return this.isValid ? this.ts / 1e3 : NaN; + } + /** + * Returns the epoch seconds (as a whole number) of this DateTime. + * @return {number} + */ + toUnixInteger() { + return this.isValid ? Math.floor(this.ts / 1e3) : NaN; + } + /** + * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON. + * @return {string} + */ + toJSON() { + return this.toISO(); + } + /** + * Returns a BSON serializable equivalent to this DateTime. + * @return {Date} + */ + toBSON() { + return this.toJSDate(); + } + /** + * Returns a JavaScript object with this DateTime's year, month, day, and so on. + * @param opts - options for generating the object + * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output + * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 } + * @return {Object} + */ + toObject(opts = {}) { + if (!this.isValid) return {}; + const base = { + ...this.c + }; + if (opts.includeConfig) { + base.outputCalendar = this.outputCalendar; + base.numberingSystem = this.loc.numberingSystem; + base.locale = this.loc.locale; + } + return base; + } + /** + * Returns a JavaScript Date equivalent to this DateTime. + * @return {Date} + */ + toJSDate() { + return new Date(this.isValid ? this.ts : NaN); + } + // COMPARE + /** + * Return the difference between two DateTimes as a Duration. + * @param {DateTime} otherDateTime - the DateTime to compare this one to + * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration. + * @param {Object} opts - options that affect the creation of the Duration + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use + * @example + * var i1 = DateTime.fromISO('1982-05-25T09:45'), + * i2 = DateTime.fromISO('1983-10-14T10:30'); + * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 } + * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 } + * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 } + * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 } + * @return {Duration} + */ + diff(otherDateTime, unit = "milliseconds", opts = {}) { + if (!this.isValid || !otherDateTime.isValid) { + return Duration.invalid("created by diffing an invalid DateTime"); + } + const durOpts = { + locale: this.locale, + numberingSystem: this.numberingSystem, + ...opts + }; + const units = maybeArray(unit).map(Duration.normalizeUnit), otherIsLater = otherDateTime.valueOf() > this.valueOf(), earlier = otherIsLater ? this : otherDateTime, later = otherIsLater ? otherDateTime : this, diffed = diff(earlier, later, units, durOpts); + return otherIsLater ? diffed.negate() : diffed; + } + /** + * Return the difference between this DateTime and right now. + * See {@link DateTime#diff} + * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration + * @param {Object} opts - options that affect the creation of the Duration + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use + * @return {Duration} + */ + diffNow(unit = "milliseconds", opts = {}) { + return this.diff(_DateTime.now(), unit, opts); + } + /** + * Return an Interval spanning between this DateTime and another DateTime + * @param {DateTime} otherDateTime - the other end point of the Interval + * @return {Interval|DateTime} + */ + until(otherDateTime) { + return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this; + } + /** + * Return whether this DateTime is in the same unit of time as another DateTime. + * Higher-order units must also be identical for this function to return `true`. + * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed. + * @param {DateTime} otherDateTime - the other DateTime + * @param {string} unit - the unit of time to check sameness on + * @param {Object} opts - options + * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used + * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day + * @return {boolean} + */ + hasSame(otherDateTime, unit, opts) { + if (!this.isValid) return false; + const inputMs = otherDateTime.valueOf(); + const adjustedToZone = this.setZone(otherDateTime.zone, { + keepLocalTime: true + }); + return adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts); + } + /** + * Equality check + * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid. + * To compare just the millisecond values, use `+dt1 === +dt2`. + * @param {DateTime} other - the other DateTime + * @return {boolean} + */ + equals(other) { + return this.isValid && other.isValid && this.valueOf() === other.valueOf() && this.zone.equals(other.zone) && this.loc.equals(other.loc); + } + /** + * Returns a string representation of a this time relative to now, such as "in two days". Can only internationalize if your + * platform supports Intl.RelativeTimeFormat. Rounds towards zero by default. + * @param {Object} options - options that affect the output + * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now. + * @param {string} [options.style="long"] - the style of units, must be "long", "short", or "narrow" + * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of "years", "quarters", "months", "weeks", "days", "hours", "minutes", or "seconds" + * @param {boolean} [options.round=true] - whether to round the numbers in the output. + * @param {string} [options.rounding="trunc"] - rounding method to use when rounding the numbers in the output. Can be "trunc" (toward zero), "expand" (away from zero), "round", "floor", or "ceil". + * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding. + * @param {string} options.locale - override the locale of this DateTime + * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this + * @example DateTime.now().plus({ days: 1 }).toRelative() //=> "in 1 day" + * @example DateTime.now().setLocale("es").toRelative({ days: 1 }) //=> "dentro de 1 día" + * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: "fr" }) //=> "dans 23 heures" + * @example DateTime.now().minus({ days: 2 }).toRelative() //=> "2 days ago" + * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: "hours" }) //=> "48 hours ago" + * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> "1.5 days ago" + */ + toRelative(options = {}) { + if (!this.isValid) return null; + const base = options.base || _DateTime.fromObject({}, { + zone: this.zone + }), padding = options.padding ? this < base ? -options.padding : options.padding : 0; + let units = ["years", "months", "days", "hours", "minutes", "seconds"]; + let unit = options.unit; + if (Array.isArray(options.unit)) { + units = options.unit; + unit = void 0; + } + return diffRelative(base, this.plus(padding), { + ...options, + numeric: "always", + units, + unit + }); + } + /** + * Returns a string representation of this date relative to today, such as "yesterday" or "next month". + * Only internationalizes on platforms that supports Intl.RelativeTimeFormat. + * @param {Object} options - options that affect the output + * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now. + * @param {string} options.locale - override the locale of this DateTime + * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of "years", "quarters", "months", "weeks", or "days" + * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this + * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> "tomorrow" + * @example DateTime.now().setLocale("es").plus({ days: 1 }).toRelative() //=> ""mañana" + * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: "fr" }) //=> "demain" + * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> "2 days ago" + */ + toRelativeCalendar(options = {}) { + if (!this.isValid) return null; + return diffRelative(options.base || _DateTime.fromObject({}, { + zone: this.zone + }), this, { + ...options, + numeric: "auto", + units: ["years", "months", "days"], + calendary: true + }); + } + /** + * Return the min of several date times + * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum + * @return {DateTime} the min DateTime, or undefined if called with no argument + */ + static min(...dateTimes) { + if (!dateTimes.every(_DateTime.isDateTime)) { + throw new InvalidArgumentError("min requires all arguments be DateTimes"); + } + return bestBy(dateTimes, (i) => i.valueOf(), Math.min); + } + /** + * Return the max of several date times + * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum + * @return {DateTime} the max DateTime, or undefined if called with no argument + */ + static max(...dateTimes) { + if (!dateTimes.every(_DateTime.isDateTime)) { + throw new InvalidArgumentError("max requires all arguments be DateTimes"); + } + return bestBy(dateTimes, (i) => i.valueOf(), Math.max); + } + // MISC + /** + * Explain how a string would be parsed by fromFormat() + * @param {string} text - the string to parse + * @param {string} fmt - the format the string is expected to be in (see description) + * @param {Object} options - options taken by fromFormat() + * @return {Object} + */ + static fromFormatExplain(text, fmt, options = {}) { + const { + locale = null, + numberingSystem = null + } = options, localeToUse = Locale.fromOpts({ + locale, + numberingSystem, + defaultToEN: true + }); + return explainFromTokens(localeToUse, text, fmt); + } + /** + * @deprecated use fromFormatExplain instead + */ + static fromStringExplain(text, fmt, options = {}) { + return _DateTime.fromFormatExplain(text, fmt, options); + } + /** + * Build a parser for `fmt` using the given locale. This parser can be passed + * to {@link DateTime.fromFormatParser} to a parse a date in this format. This + * can be used to optimize cases where many dates need to be parsed in a + * specific format. + * + * @param {String} fmt - the format the string is expected to be in (see + * description) + * @param {Object} options - options used to set locale and numberingSystem + * for parser + * @returns {TokenParser} - opaque object to be used + */ + static buildFormatParser(fmt, options = {}) { + const { + locale = null, + numberingSystem = null + } = options, localeToUse = Locale.fromOpts({ + locale, + numberingSystem, + defaultToEN: true + }); + return new TokenParser(localeToUse, fmt); + } + /** + * Create a DateTime from an input string and format parser. + * + * The format parser must have been created with the same locale as this call. + * + * @param {String} text - the string to parse + * @param {TokenParser} formatParser - parser from {@link DateTime.buildFormatParser} + * @param {Object} opts - options taken by fromFormat() + * @returns {DateTime} + */ + static fromFormatParser(text, formatParser, opts = {}) { + if (isUndefined(text) || isUndefined(formatParser)) { + throw new InvalidArgumentError("fromFormatParser requires an input string and a format parser"); + } + const { + locale = null, + numberingSystem = null + } = opts, localeToUse = Locale.fromOpts({ + locale, + numberingSystem, + defaultToEN: true + }); + if (!localeToUse.equals(formatParser.locale)) { + throw new InvalidArgumentError(`fromFormatParser called with a locale of ${localeToUse}, but the format parser was created for ${formatParser.locale}`); + } + const { + result, + zone, + specificOffset, + invalidReason + } = formatParser.explainFromTokens(text); + if (invalidReason) { + return _DateTime.invalid(invalidReason); + } else { + return parseDataToDateTime(result, zone, opts, `format ${formatParser.format}`, text, specificOffset); + } + } + // FORMAT PRESETS + /** + * {@link DateTime#toLocaleString} format like 10/14/1983 + * @type {Object} + */ + static get DATE_SHORT() { + return DATE_SHORT; + } + /** + * {@link DateTime#toLocaleString} format like 'Oct 14, 1983' + * @type {Object} + */ + static get DATE_MED() { + return DATE_MED; + } + /** + * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983' + * @type {Object} + */ + static get DATE_MED_WITH_WEEKDAY() { + return DATE_MED_WITH_WEEKDAY; + } + /** + * {@link DateTime#toLocaleString} format like 'October 14, 1983' + * @type {Object} + */ + static get DATE_FULL() { + return DATE_FULL; + } + /** + * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983' + * @type {Object} + */ + static get DATE_HUGE() { + return DATE_HUGE; + } + /** + * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get TIME_SIMPLE() { + return TIME_SIMPLE; + } + /** + * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get TIME_WITH_SECONDS() { + return TIME_WITH_SECONDS; + } + /** + * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is. + * @type {Object} + */ + static get TIME_WITH_SHORT_OFFSET() { + return TIME_WITH_SHORT_OFFSET; + } + /** + * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is. + * @type {Object} + */ + static get TIME_WITH_LONG_OFFSET() { + return TIME_WITH_LONG_OFFSET; + } + /** + * {@link DateTime#toLocaleString} format like '09:30', always 24-hour. + * @type {Object} + */ + static get TIME_24_SIMPLE() { + return TIME_24_SIMPLE; + } + /** + * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour. + * @type {Object} + */ + static get TIME_24_WITH_SECONDS() { + return TIME_24_WITH_SECONDS; + } + /** + * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour. + * @type {Object} + */ + static get TIME_24_WITH_SHORT_OFFSET() { + return TIME_24_WITH_SHORT_OFFSET; + } + /** + * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour. + * @type {Object} + */ + static get TIME_24_WITH_LONG_OFFSET() { + return TIME_24_WITH_LONG_OFFSET; + } + /** + * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_SHORT() { + return DATETIME_SHORT; + } + /** + * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_SHORT_WITH_SECONDS() { + return DATETIME_SHORT_WITH_SECONDS; + } + /** + * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_MED() { + return DATETIME_MED; + } + /** + * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_MED_WITH_SECONDS() { + return DATETIME_MED_WITH_SECONDS; + } + /** + * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_MED_WITH_WEEKDAY() { + return DATETIME_MED_WITH_WEEKDAY; + } + /** + * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_FULL() { + return DATETIME_FULL; + } + /** + * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_FULL_WITH_SECONDS() { + return DATETIME_FULL_WITH_SECONDS; + } + /** + * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_HUGE() { + return DATETIME_HUGE; + } + /** + * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_HUGE_WITH_SECONDS() { + return DATETIME_HUGE_WITH_SECONDS; + } + }; + function friendlyDateTime(dateTimeish) { + if (DateTime.isDateTime(dateTimeish)) { + return dateTimeish; + } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) { + return DateTime.fromJSDate(dateTimeish); + } else if (dateTimeish && typeof dateTimeish === "object") { + return DateTime.fromObject(dateTimeish); + } else { + throw new InvalidArgumentError(`Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`); + } + } + __name(friendlyDateTime, "friendlyDateTime"); + var VERSION = "3.7.2"; + exports2.DateTime = DateTime; + exports2.Duration = Duration; + exports2.FixedOffsetZone = FixedOffsetZone; + exports2.IANAZone = IANAZone; + exports2.Info = Info; + exports2.Interval = Interval; + exports2.InvalidZone = InvalidZone; + exports2.Settings = Settings; + exports2.SystemZone = SystemZone; + exports2.VERSION = VERSION; + exports2.Zone = Zone; + } +}); + +// node_modules/cron/dist/constants.js +var require_constants11 = __commonJS({ + "node_modules/cron/dist/constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RE_RANGE = exports2.RE_WILDCARDS = exports2.PRESETS = exports2.TIME_UNITS_LEN = exports2.TIME_UNITS = exports2.TIME_UNITS_MAP = exports2.ALIASES = exports2.PARSE_DEFAULTS = exports2.CONSTRAINTS = void 0; + exports2.CONSTRAINTS = Object.freeze({ + second: [0, 59], + minute: [0, 59], + hour: [0, 23], + dayOfMonth: [1, 31], + month: [1, 12], + dayOfWeek: [0, 7] + }); + exports2.PARSE_DEFAULTS = Object.freeze({ + second: "0", + minute: "*", + hour: "*", + dayOfMonth: "*", + month: "*", + dayOfWeek: "*" + }); + exports2.ALIASES = Object.freeze({ + jan: 1, + feb: 2, + mar: 3, + apr: 4, + may: 5, + jun: 6, + jul: 7, + aug: 8, + sep: 9, + oct: 10, + nov: 11, + dec: 12, + sun: 0, + mon: 1, + tue: 2, + wed: 3, + thu: 4, + fri: 5, + sat: 6 + }); + exports2.TIME_UNITS_MAP = Object.freeze({ + SECOND: "second", + MINUTE: "minute", + HOUR: "hour", + DAY_OF_MONTH: "dayOfMonth", + MONTH: "month", + DAY_OF_WEEK: "dayOfWeek" + }); + exports2.TIME_UNITS = Object.freeze(Object.values(exports2.TIME_UNITS_MAP)); + exports2.TIME_UNITS_LEN = exports2.TIME_UNITS.length; + exports2.PRESETS = Object.freeze({ + "@yearly": "0 0 0 1 1 *", + "@monthly": "0 0 0 1 * *", + "@weekly": "0 0 0 * * 0", + "@daily": "0 0 0 * * *", + "@hourly": "0 0 * * * *", + "@minutely": "0 * * * * *", + "@secondly": "* * * * * *", + "@weekdays": "0 0 0 * * 1-5", + "@weekends": "0 0 0 * * 0,6" + }); + exports2.RE_WILDCARDS = /\*/g; + exports2.RE_RANGE = /^(\d+)(?:-(\d+))?(?:\/(\d+))?$/g; + } +}); + +// node_modules/cron/dist/errors.js +var require_errors2 = __commonJS({ + "node_modules/cron/dist/errors.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ExclusiveParametersError = exports2.CronError = void 0; + var CronError = class extends Error { + static { + __name(this, "CronError"); + } + }; + exports2.CronError = CronError; + var ExclusiveParametersError = class extends CronError { + static { + __name(this, "ExclusiveParametersError"); + } + constructor(param1, param2) { + super(`You can't specify both ${param1} and ${param2}`); + } + }; + exports2.ExclusiveParametersError = ExclusiveParametersError; + } +}); + +// node_modules/cron/dist/time.js +var require_time = __commonJS({ + "node_modules/cron/dist/time.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CronTime = void 0; + var luxon_1 = require_luxon(); + var constants_1 = require_constants11(); + var errors_1 = require_errors2(); + var CronTime = class _CronTime { + static { + __name(this, "CronTime"); + } + constructor(source, timeZone, utcOffset) { + this.realDate = false; + this.second = {}; + this.minute = {}; + this.hour = {}; + this.dayOfMonth = {}; + this.month = {}; + this.dayOfWeek = {}; + if (timeZone != null && utcOffset != null) { + throw new errors_1.ExclusiveParametersError("timeZone", "utcOffset"); + } + if (timeZone) { + const dt = luxon_1.DateTime.fromObject({}, { zone: timeZone }); + if (!dt.isValid) { + throw new errors_1.CronError("Invalid timezone."); + } + this.timeZone = timeZone; + } + if (utcOffset != null) { + this.utcOffset = utcOffset; + } + if (timeZone == null && utcOffset == null) { + const systemTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone; + this.timeZone = systemTimezone; + } + if (source instanceof Date || source instanceof luxon_1.DateTime) { + this.source = source instanceof Date ? luxon_1.DateTime.fromJSDate(source) : source; + this.realDate = true; + } else { + this.source = source; + this._parse(this.source); + } + } + static validateCronExpression(cronExpression) { + try { + new _CronTime(cronExpression); + return { + valid: true + }; + } catch (error) { + return { + valid: false, + error + }; + } + } + _getWeekDay(date) { + return date.weekday === 7 ? 0 : date.weekday; + } + sendAt(i) { + let date = this.realDate && this.source instanceof luxon_1.DateTime ? this.source : luxon_1.DateTime.utc(); + if (this.timeZone) { + date = date.setZone(this.timeZone); + } + if (this.utcOffset !== void 0) { + const sign = this.utcOffset < 0 ? "-" : "+"; + const offsetHours = Math.trunc(this.utcOffset / 60); + const offsetHoursStr = String(Math.abs(offsetHours)).padStart(2, "0"); + const offsetMins = Math.abs(this.utcOffset - offsetHours * 60); + const offsetMinsStr = String(offsetMins).padStart(2, "0"); + const utcZone = `UTC${sign}${offsetHoursStr}:${offsetMinsStr}`; + date = date.setZone(utcZone); + if (!date.isValid) { + throw new errors_1.CronError("ERROR: You specified an invalid UTC offset."); + } + } + if (this.realDate) { + if (luxon_1.DateTime.local() > date) { + throw new errors_1.CronError("WARNING: Date in past. Will never be fired."); + } + return date; + } + if (i === void 0 || isNaN(i) || i < 0) { + const nextDate = this.getNextDateFrom(date); + return nextDate; + } else { + const dates = []; + for (; i > 0; i--) { + date = this.getNextDateFrom(date); + dates.push(date); + } + return dates; + } + } + getTimeout() { + return this.sendAt().toMillis() - luxon_1.DateTime.local().toMillis(); + } + toString() { + return this.toJSON().join(" "); + } + toJSON() { + return constants_1.TIME_UNITS.map((unit) => { + return this._wcOrAll(unit); + }); + } + getNextDateFrom(start, timeZone) { + var _a, _b; + if (start instanceof Date) { + start = luxon_1.DateTime.fromJSDate(start); + } + if (timeZone) { + start = start.setZone(timeZone); + } else { + timeZone = (_a = start.zone.zoneName) !== null && _a !== void 0 ? _a : start.zone.fixed; + } + let date = luxon_1.DateTime.fromFormat(`${start.year}-${start.month}-${start.day} ${start.hour}:${start.minute}:${start.second}`, "yyyy-M-d H:m:s", { + zone: "UTC" + }); + const firstDate = date.toMillis(); + if (!this.realDate) { + if (date.millisecond > 0) { + date = date.set({ millisecond: 0, second: date.second + 1 }); + } + } + if (!date.isValid) { + throw new errors_1.CronError("ERROR: You specified an invalid date."); + } + const maxMatch = luxon_1.DateTime.now().plus({ years: 8 }); + while (true) { + if (date > maxMatch) { + throw new errors_1.CronError(`Something went wrong. No execution date was found in the next 8 years. + Please provide the following string if you would like to help debug: + Time Zone: ${(_b = timeZone === null || timeZone === void 0 ? void 0 : timeZone.toString()) !== null && _b !== void 0 ? _b : '""'} - Cron String: ${this.source.toString()} - UTC offset: ${date.offset} - current Date: ${luxon_1.DateTime.local().toString()}`); + } + if (!(date.month in this.month) && Object.keys(this.month).length !== 12) { + date = date.plus({ month: 1 }); + date = date.set({ day: 1, hour: 0, minute: 0, second: 0 }); + continue; + } + if (!(date.day in this.dayOfMonth) && Object.keys(this.dayOfMonth).length !== 31 && !(this._getWeekDay(date) in this.dayOfWeek && Object.keys(this.dayOfWeek).length !== 7) || !(this._getWeekDay(date) in this.dayOfWeek) && Object.keys(this.dayOfWeek).length !== 7 && !(date.day in this.dayOfMonth && Object.keys(this.dayOfMonth).length !== 31)) { + date = date.plus({ days: 1 }); + date = date.set({ hour: 0, minute: 0, second: 0 }); + continue; + } + if (!(date.hour in this.hour) && Object.keys(this.hour).length !== 24) { + date = date.plus({ hour: 1 }); + date = date.set({ minute: 0, second: 0 }); + continue; + } + if (!(date.minute in this.minute) && Object.keys(this.minute).length !== 60) { + date = date.plus({ minute: 1 }); + date = date.set({ second: 0 }); + continue; + } + if (date.toMillis() === firstDate || !(date.second in this.second) && Object.keys(this.second).length !== 60) { + date = date.plus({ second: 1 }); + continue; + } + break; + } + const expectedHour = date.hour; + const expectedMinute = date.minute; + date = luxon_1.DateTime.fromFormat(`${date.year}-${date.month}-${date.day} ${date.hour}:${date.minute}:${date.second}`, "yyyy-M-d H:m:s", { + zone: timeZone + }); + const nonDSTReferenceDate = luxon_1.DateTime.fromFormat(`${date.year}-1-1 0:0:0`, "yyyy-M-d H:m:s", { zone: timeZone }); + if ((expectedHour !== date.hour || expectedMinute !== date.minute) && nonDSTReferenceDate.offset !== date.offset) { + while (date.minus({ minute: 1 }).offset !== nonDSTReferenceDate.offset) { + date = date.minus({ minute: 1 }); + } + return date; + } + const hourTestDate = date.minus({ hour: 1 }); + const twoHourTestDate = date.minus({ hour: 2 }); + if ((hourTestDate.hour === date.hour || twoHourTestDate.hour === hourTestDate.hour) && hourTestDate > start) { + date = hourTestDate; + } + const halfHourTestDate = date.minus({ minute: 30 }); + if ((halfHourTestDate.minute === date.minute || hourTestDate.minute === halfHourTestDate.minute) && halfHourTestDate > start) { + date = halfHourTestDate; + } + return date; + } + _wcOrAll(unit) { + if (this._hasAll(unit)) { + return "*"; + } + const all = []; + for (const time in this[unit]) { + all.push(time); + } + return all.join(","); + } + _hasAll(unit) { + const constraints = constants_1.CONSTRAINTS[unit]; + const low = constraints[0]; + const high = unit === constants_1.TIME_UNITS_MAP.DAY_OF_WEEK ? constraints[1] - 1 : constraints[1]; + for (let i = low, n = high; i < n; i++) { + if (!(i in this[unit])) { + return false; + } + } + return true; + } + _parse(source) { + var _a; + source = source.toLowerCase(); + if (Object.keys(constants_1.PRESETS).includes(source)) { + source = constants_1.PRESETS[source]; + } + source = source.replace(/[a-z]{1,3}/gi, (alias) => { + if (Object.keys(constants_1.ALIASES).includes(alias)) { + return constants_1.ALIASES[alias].toString(); + } + throw new errors_1.CronError(`Unknown alias: ${alias}`); + }); + const units = source.trim().split(/\s+/); + if (units.length < constants_1.TIME_UNITS_LEN - 1) { + throw new errors_1.CronError("Too few fields"); + } + if (units.length > constants_1.TIME_UNITS_LEN) { + throw new errors_1.CronError("Too many fields"); + } + const unitsLen = units.length; + for (const unit of constants_1.TIME_UNITS) { + const i = constants_1.TIME_UNITS.indexOf(unit); + const cur = (_a = units[i - (constants_1.TIME_UNITS_LEN - unitsLen)]) !== null && _a !== void 0 ? _a : constants_1.PARSE_DEFAULTS[unit]; + this._parseField(cur, unit); + } + } + _parseField(value, unit) { + const typeObj = this[unit]; + let pointer; + const constraints = constants_1.CONSTRAINTS[unit]; + const low = constraints[0]; + const high = constraints[1]; + const fields = value.split(","); + fields.forEach((field) => { + const wildcardIndex = field.indexOf("*"); + if (wildcardIndex !== -1 && wildcardIndex !== 0) { + throw new errors_1.CronError(`Field (${field}) has an invalid wildcard expression`); + } + }); + value = value.replace(constants_1.RE_WILDCARDS, `${low}-${high}`); + const allRanges = value.split(","); + for (const range of allRanges) { + const match = [...range.matchAll(constants_1.RE_RANGE)][0]; + if ((match === null || match === void 0 ? void 0 : match[1]) !== void 0) { + const [, mLower, mUpper, mStep] = match; + let lower = parseInt(mLower, 10); + let upper = mUpper !== void 0 ? parseInt(mUpper, 10) : void 0; + const wasStepDefined = mStep !== void 0; + const step = parseInt(mStep !== null && mStep !== void 0 ? mStep : "1", 10); + if (step === 0) { + throw new errors_1.CronError(`Field (${unit}) has a step of zero`); + } + if (upper !== void 0 && lower > upper) { + throw new errors_1.CronError(`Field (${unit}) has an invalid range`); + } + const isOutOfRange = lower < low || upper !== void 0 && upper > high || upper === void 0 && lower > high; + if (isOutOfRange) { + throw new errors_1.CronError(`Field value (${value}) is out of range`); + } + lower = Math.min(Math.max(low, ~~Math.abs(lower)), high); + if (upper !== void 0) { + upper = Math.min(high, ~~Math.abs(upper)); + } else { + upper = wasStepDefined ? high : lower; + } + pointer = lower; + do { + typeObj[pointer] = true; + pointer += step; + } while (pointer <= upper); + if (unit === "dayOfWeek") { + if (!typeObj[0] && !!typeObj[7]) + typeObj[0] = typeObj[7]; + delete typeObj[7]; + } + } else { + throw new errors_1.CronError(`Field (${unit}) cannot be parsed`); + } + } + } + }; + exports2.CronTime = CronTime; + } +}); + +// node_modules/cron/dist/job.js +var require_job = __commonJS({ + "node_modules/cron/dist/job.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + __name(adopt, "adopt"); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + __name(fulfilled, "fulfilled"); + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + __name(rejected, "rejected"); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + __name(step, "step"); + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CronJob = void 0; + var child_process_1 = require("child_process"); + var errors_1 = require_errors2(); + var time_1 = require_time(); + var CronJob = class _CronJob { + static { + __name(this, "CronJob"); + } + get isActive() { + return this._isActive; + } + get isCallbackRunning() { + return this._isCallbackRunning; + } + constructor(cronTime, onTick, onComplete, start, timeZone, context, runOnInit, utcOffset, unrefTimeout, waitForCompletion, errorHandler, name, threshold) { + this.unrefTimeout = false; + this.lastExecution = null; + this.runOnce = false; + this.waitForCompletion = false; + this.threshold = 250; + this._isActive = false; + this._isCallbackRunning = false; + this._callbacks = []; + this.context = context !== null && context !== void 0 ? context : this; + this.waitForCompletion = Boolean(waitForCompletion); + this.errorHandler = errorHandler; + if (timeZone != null && utcOffset != null) { + throw new errors_1.ExclusiveParametersError("timeZone", "utcOffset"); + } + if (timeZone != null) { + this.cronTime = new time_1.CronTime(cronTime, timeZone, null); + } else if (utcOffset != null) { + this.cronTime = new time_1.CronTime(cronTime, null, utcOffset); + } else { + this.cronTime = new time_1.CronTime(cronTime, timeZone, utcOffset); + } + if (unrefTimeout != null) { + this.unrefTimeout = unrefTimeout; + } + if (onComplete != null) { + this.onComplete = this._fnWrap(onComplete); + } + if (threshold != null) { + this.threshold = Math.abs(threshold); + } + if (name != null) { + this.name = name; + } + if (this.cronTime.realDate) { + this.runOnce = true; + } + this.addCallback(this._fnWrap(onTick)); + if (runOnInit) { + this.lastExecution = /* @__PURE__ */ new Date(); + void this.fireOnTick(); + } + if (start) + this.start(); + } + static from(params) { + if (params.timeZone != null && params.utcOffset != null) { + throw new errors_1.ExclusiveParametersError("timeZone", "utcOffset"); + } + if (params.timeZone != null) { + return new _CronJob(params.cronTime, params.onTick, params.onComplete, params.start, params.timeZone, params.context, params.runOnInit, params.utcOffset, params.unrefTimeout, params.waitForCompletion, params.errorHandler, params.name, params.threshold); + } else if (params.utcOffset != null) { + return new _CronJob(params.cronTime, params.onTick, params.onComplete, params.start, null, params.context, params.runOnInit, params.utcOffset, params.unrefTimeout, params.waitForCompletion, params.errorHandler, params.name, params.threshold); + } else { + return new _CronJob(params.cronTime, params.onTick, params.onComplete, params.start, params.timeZone, params.context, params.runOnInit, params.utcOffset, params.unrefTimeout, params.waitForCompletion, params.errorHandler, params.name, params.threshold); + } + } + _fnWrap(cmd) { + var _a, _b; + switch (typeof cmd) { + case "function": { + return cmd; + } + case "string": { + const [command, ...args] = cmd.split(" "); + return child_process_1.spawn.bind(void 0, command !== null && command !== void 0 ? command : cmd, args, {}); + } + case "object": { + return child_process_1.spawn.bind(void 0, cmd.command, (_a = cmd.args) !== null && _a !== void 0 ? _a : [], (_b = cmd.options) !== null && _b !== void 0 ? _b : {}); + } + } + } + addCallback(callback) { + if (typeof callback === "function") { + this._callbacks.push(callback); + } + } + setTime(time) { + if (!(time instanceof time_1.CronTime)) { + throw new errors_1.CronError("time must be an instance of CronTime."); + } + const wasRunning = this._isActive; + this.stop(); + this.cronTime = time; + if (time.realDate) + this.runOnce = true; + if (wasRunning) + this.start(); + } + nextDate() { + return this.cronTime.sendAt(); + } + fireOnTick() { + return __awaiter2(this, void 0, void 0, function* () { + if (this.waitForCompletion && this._isCallbackRunning) + return; + this._isCallbackRunning = true; + try { + for (const callback of this._callbacks) { + const result = callback.call(this.context, this.onComplete); + if (result && typeof result === "object" && typeof result.then === "function") { + if (this.waitForCompletion) { + yield result; + } else { + result.catch((error) => { + if (this.errorHandler != null) + this.errorHandler(error); + else + console.error("[Cron] error in callback", error); + }); + } + } + } + } catch (error) { + if (this.errorHandler != null) + this.errorHandler(error); + else + console.error("[Cron] error in callback", error); + } finally { + this._isCallbackRunning = false; + } + }); + } + nextDates(i) { + return this.cronTime.sendAt(i !== null && i !== void 0 ? i : 0); + } + start() { + if (this._isActive) + return; + this._isActive = true; + const MAXDELAY = 2147483647; + let timeout = this.cronTime.getTimeout(); + let remaining = 0; + let startTime; + const setCronTimeout = /* @__PURE__ */ __name((t) => { + startTime = Date.now(); + this._timeout = setTimeout(callbackWrapper, Math.max(t, 1)); + if (this.unrefTimeout && typeof this._timeout.unref === "function") { + this._timeout.unref(); + } + }, "setCronTimeout"); + const callbackWrapper = /* @__PURE__ */ __name(() => { + const diff = startTime + timeout - Date.now(); + if (diff > 0) { + let newTimeout = this.cronTime.getTimeout(); + if (newTimeout > diff) { + newTimeout = diff; + } + remaining += newTimeout; + } + if (remaining) { + if (remaining > MAXDELAY) { + remaining -= MAXDELAY; + timeout = MAXDELAY; + } else { + timeout = remaining; + remaining = 0; + } + setCronTimeout(timeout); + } else { + this.lastExecution = /* @__PURE__ */ new Date(); + this._isActive = false; + if (!this.runOnce) + this.start(); + void this.fireOnTick(); + } + }, "callbackWrapper"); + if (timeout >= 0) { + if (timeout > MAXDELAY) { + remaining = timeout - MAXDELAY; + timeout = MAXDELAY; + } + setCronTimeout(timeout); + } else { + const absoluteTimeout = Math.abs(timeout); + const message = `[Cron] Missed execution deadline by ${absoluteTimeout}ms for job${this.name ? ` "${this.name}"` : ""} with cron expression '${String(this.cronTime.source)}'`; + if (absoluteTimeout <= this.threshold) { + console.warn(`${message}. Executing immediately.`); + this.lastExecution = /* @__PURE__ */ new Date(); + void this.fireOnTick(); + } else { + console.warn(`${message}. Skipping execution as it exceeds threshold (${this.threshold}ms).`); + } + timeout = this.cronTime.getTimeout(); + setCronTimeout(timeout); + } + } + lastDate() { + return this.lastExecution; + } + _executeOnComplete() { + return __awaiter2(this, void 0, void 0, function* () { + if (typeof this.onComplete !== "function") + return; + try { + yield this.onComplete.call(this.context); + } catch (error) { + console.error("[Cron] error in onComplete callback:", error); + } + }); + } + _waitForJobCompletion() { + return __awaiter2(this, void 0, void 0, function* () { + while (this._isCallbackRunning) { + yield new Promise((resolve) => setTimeout(resolve, 100)); + } + }); + } + stop() { + if (this._timeout) + clearTimeout(this._timeout); + this._isActive = false; + if (!this.waitForCompletion) { + void this._executeOnComplete(); + return; + } + return Promise.resolve().then(() => __awaiter2(this, void 0, void 0, function* () { + yield this._waitForJobCompletion(); + yield this._executeOnComplete(); + })); + } + }; + exports2.CronJob = CronJob; + } +}); + +// node_modules/cron/dist/index.js +var require_dist8 = __commonJS({ + "node_modules/cron/dist/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.validateCronExpression = exports2.timeout = exports2.sendAt = exports2.CronTime = exports2.CronJob = void 0; + var time_1 = require_time(); + var job_1 = require_job(); + Object.defineProperty(exports2, "CronJob", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return job_1.CronJob; + }, "get") }); + var time_2 = require_time(); + Object.defineProperty(exports2, "CronTime", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return time_2.CronTime; + }, "get") }); + var sendAt = /* @__PURE__ */ __name((cronTime) => new time_1.CronTime(cronTime).sendAt(), "sendAt"); + exports2.sendAt = sendAt; + var timeout = /* @__PURE__ */ __name((cronTime) => new time_1.CronTime(cronTime).getTimeout(), "timeout"); + exports2.timeout = timeout; + exports2.validateCronExpression = time_1.CronTime.validateCronExpression; + } +}); + +// node_modules/@nestjs/schedule/dist/schedule.messages.js +var require_schedule_messages = __commonJS({ + "node_modules/@nestjs/schedule/dist/schedule.messages.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DUPLICATE_SCHEDULER = exports2.NO_SCHEDULER_FOUND = void 0; + var NO_SCHEDULER_FOUND = /* @__PURE__ */ __name((schedulerName, name) => name ? `No ${schedulerName} was found with the given name (${name}). Check that you created one with a decorator or with the create API.` : `No ${schedulerName} was found. Check your configuration.`, "NO_SCHEDULER_FOUND"); + exports2.NO_SCHEDULER_FOUND = NO_SCHEDULER_FOUND; + var DUPLICATE_SCHEDULER = /* @__PURE__ */ __name((schedulerName, name) => `${schedulerName} with the given name (${name}) already exists. Ignored.`, "DUPLICATE_SCHEDULER"); + exports2.DUPLICATE_SCHEDULER = DUPLICATE_SCHEDULER; + } +}); + +// node_modules/@nestjs/schedule/dist/scheduler.registry.js +var require_scheduler_registry = __commonJS({ + "node_modules/@nestjs/schedule/dist/scheduler.registry.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var SchedulerRegistry_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SchedulerRegistry = void 0; + var common_12 = require_common(); + var schedule_messages_1 = require_schedule_messages(); + var SchedulerRegistry = SchedulerRegistry_1 = class SchedulerRegistry { + static { + __name(this, "SchedulerRegistry"); + } + logger = new common_12.Logger(SchedulerRegistry_1.name); + cronJobs = /* @__PURE__ */ new Map(); + timeouts = /* @__PURE__ */ new Map(); + intervals = /* @__PURE__ */ new Map(); + doesExist(type, name) { + switch (type) { + case "cron": + return this.cronJobs.has(name); + case "interval": + return this.intervals.has(name); + case "timeout": + return this.timeouts.has(name); + default: + return false; + } + } + getCronJob(name) { + const ref = this.cronJobs.get(name); + if (!ref) { + throw new Error((0, schedule_messages_1.NO_SCHEDULER_FOUND)("Cron Job", name)); + } + return ref; + } + getInterval(name) { + const ref = this.intervals.get(name); + if (typeof ref === "undefined") { + throw new Error((0, schedule_messages_1.NO_SCHEDULER_FOUND)("Interval", name)); + } + return ref; + } + getTimeout(name) { + const ref = this.timeouts.get(name); + if (typeof ref === "undefined") { + throw new Error((0, schedule_messages_1.NO_SCHEDULER_FOUND)("Timeout", name)); + } + return ref; + } + addCronJob(name, job) { + const ref = this.cronJobs.get(name); + if (ref) { + throw new Error((0, schedule_messages_1.DUPLICATE_SCHEDULER)("Cron Job", name)); + } + job.fireOnTick = this.wrapFunctionInTryCatchBlocks(job.fireOnTick, job); + this.cronJobs.set(name, job); + } + addInterval(name, intervalId) { + const ref = this.intervals.get(name); + if (ref) { + throw new Error((0, schedule_messages_1.DUPLICATE_SCHEDULER)("Interval", name)); + } + this.intervals.set(name, intervalId); + } + addTimeout(name, timeoutId) { + const ref = this.timeouts.get(name); + if (ref) { + throw new Error((0, schedule_messages_1.DUPLICATE_SCHEDULER)("Timeout", name)); + } + this.timeouts.set(name, timeoutId); + } + getCronJobs() { + return this.cronJobs; + } + deleteCronJob(name) { + const cronJob = this.getCronJob(name); + cronJob.stop(); + this.cronJobs.delete(name); + } + getIntervals() { + return [...this.intervals.keys()]; + } + deleteInterval(name) { + const interval = this.getInterval(name); + clearInterval(interval); + this.intervals.delete(name); + } + getTimeouts() { + return [...this.timeouts.keys()]; + } + deleteTimeout(name) { + const timeout = this.getTimeout(name); + clearTimeout(timeout); + this.timeouts.delete(name); + } + wrapFunctionInTryCatchBlocks(methodRef, instance) { + return async (...args) => { + try { + await methodRef.call(instance, ...args); + } catch (error) { + this.logger.error(error); + } + }; + } + }; + exports2.SchedulerRegistry = SchedulerRegistry; + exports2.SchedulerRegistry = SchedulerRegistry = SchedulerRegistry_1 = __decorate2([ + (0, common_12.Injectable)() + ], SchedulerRegistry); + } +}); + +// node_modules/@nestjs/schedule/dist/scheduler.orchestrator.js +var require_scheduler_orchestrator = __commonJS({ + "node_modules/@nestjs/schedule/dist/scheduler.orchestrator.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SchedulerOrchestrator = void 0; + var common_12 = require_common(); + var cron_1 = require_dist8(); + var scheduler_registry_1 = require_scheduler_registry(); + var SchedulerOrchestrator = class SchedulerOrchestrator { + static { + __name(this, "SchedulerOrchestrator"); + } + schedulerRegistry; + cronJobs = {}; + timeouts = {}; + intervals = {}; + constructor(schedulerRegistry) { + this.schedulerRegistry = schedulerRegistry; + } + onApplicationBootstrap() { + this.mountTimeouts(); + this.mountIntervals(); + this.mountCron(); + } + beforeApplicationShutdown() { + this.clearTimeouts(); + this.clearIntervals(); + this.closeCronJobs(); + } + mountIntervals() { + const intervalKeys = Object.keys(this.intervals); + intervalKeys.forEach((key) => { + const options = this.intervals[key]; + const intervalRef = setInterval(options.target, options.timeout); + options.ref = intervalRef; + this.schedulerRegistry.addInterval(key, intervalRef); + }); + } + mountTimeouts() { + const timeoutKeys = Object.keys(this.timeouts); + timeoutKeys.forEach((key) => { + const options = this.timeouts[key]; + const timeoutRef = setTimeout(options.target, options.timeout); + options.ref = timeoutRef; + this.schedulerRegistry.addTimeout(key, timeoutRef); + }); + } + mountCron() { + const cronKeys = Object.keys(this.cronJobs); + cronKeys.forEach((key) => { + const { options, target } = this.cronJobs[key]; + const cronJob = cron_1.CronJob.from({ + ...options, + onTick: target, + start: !options.disabled && !options.initialDelay + }); + this.cronJobs[key].ref = cronJob; + this.schedulerRegistry.addCronJob(key, cronJob); + if (options.initialDelay && options.initialDelay > 0 && !options.disabled) { + this.cronJobs[key].initialDelayRef = setTimeout(() => { + if (this.schedulerRegistry.doesExist("cron", key)) { + cronJob.start(); + } + }, options.initialDelay); + } + }); + } + clearTimeouts() { + this.schedulerRegistry.getTimeouts().forEach((key) => this.schedulerRegistry.deleteTimeout(key)); + } + clearIntervals() { + this.schedulerRegistry.getIntervals().forEach((key) => this.schedulerRegistry.deleteInterval(key)); + } + closeCronJobs() { + Object.values(this.cronJobs).forEach(({ initialDelayRef }) => { + if (initialDelayRef !== void 0) { + clearTimeout(initialDelayRef); + } + }); + Array.from(this.schedulerRegistry.getCronJobs().keys()).forEach((key) => this.schedulerRegistry.deleteCronJob(key)); + } + addTimeout(methodRef, timeout, name = crypto.randomUUID()) { + this.timeouts[name] = { + target: methodRef, + timeout + }; + } + addInterval(methodRef, timeout, name = crypto.randomUUID()) { + this.intervals[name] = { + target: methodRef, + timeout + }; + } + addCron(methodRef, options) { + const name = options.name || crypto.randomUUID(); + this.cronJobs[name] = { + target: methodRef, + options + }; + } + }; + exports2.SchedulerOrchestrator = SchedulerOrchestrator; + exports2.SchedulerOrchestrator = SchedulerOrchestrator = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [scheduler_registry_1.SchedulerRegistry]) + ], SchedulerOrchestrator); + } +}); + +// node_modules/@nestjs/schedule/dist/schedule.explorer.js +var require_schedule_explorer = __commonJS({ + "node_modules/@nestjs/schedule/dist/schedule.explorer.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ScheduleExplorer = void 0; + var common_12 = require_common(); + var core_12 = require_core3(); + var scheduler_type_enum_1 = require_scheduler_type_enum(); + var schedule_metadata_accessor_1 = require_schedule_metadata_accessor(); + var scheduler_orchestrator_1 = require_scheduler_orchestrator(); + var schedule_constants_1 = require_schedule_constants(); + var ScheduleExplorer = class ScheduleExplorer { + static { + __name(this, "ScheduleExplorer"); + } + moduleOptions; + schedulerOrchestrator; + discoveryService; + metadataAccessor; + metadataScanner; + logger = new common_12.Logger("Scheduler"); + constructor(moduleOptions, schedulerOrchestrator, discoveryService, metadataAccessor, metadataScanner) { + this.moduleOptions = moduleOptions; + this.schedulerOrchestrator = schedulerOrchestrator; + this.discoveryService = discoveryService; + this.metadataAccessor = metadataAccessor; + this.metadataScanner = metadataScanner; + } + onModuleInit() { + this.explore(); + } + explore() { + const instanceWrappers = [ + ...this.discoveryService.getControllers(), + ...this.discoveryService.getProviders() + ]; + instanceWrappers.forEach((wrapper) => { + const { instance } = wrapper; + if (!instance || !Object.getPrototypeOf(instance)) { + return; + } + const processMethod = /* @__PURE__ */ __name((name) => wrapper.isDependencyTreeStatic() ? this.lookupSchedulers(instance, name) : this.warnForNonStaticProviders(wrapper, instance, name), "processMethod"); + if (!Reflect.has(this.metadataScanner, "getAllMethodNames")) { + this.metadataScanner.scanFromPrototype(instance, Object.getPrototypeOf(instance), processMethod); + return; + } + this.metadataScanner.getAllMethodNames(Object.getPrototypeOf(instance)).forEach(processMethod); + }); + } + lookupSchedulers(instance, key) { + const methodRef = instance[key]; + const metadata = this.metadataAccessor.getSchedulerType(methodRef); + switch (metadata) { + case scheduler_type_enum_1.SchedulerType.CRON: { + if (!this.moduleOptions.cronJobs) { + return; + } + const cronMetadata = this.metadataAccessor.getCronMetadata(methodRef); + const cronFn = this.wrapFunctionInTryCatchBlocks(methodRef, instance); + return this.schedulerOrchestrator.addCron(cronFn, cronMetadata); + } + case scheduler_type_enum_1.SchedulerType.TIMEOUT: { + if (!this.moduleOptions.timeouts) { + return; + } + const timeoutMetadata = this.metadataAccessor.getTimeoutMetadata(methodRef); + const name = this.metadataAccessor.getSchedulerName(methodRef); + const timeoutFn = this.wrapFunctionInTryCatchBlocks(methodRef, instance); + return this.schedulerOrchestrator.addTimeout(timeoutFn, timeoutMetadata.timeout, name); + } + case scheduler_type_enum_1.SchedulerType.INTERVAL: { + if (!this.moduleOptions.intervals) { + return; + } + const intervalMetadata = this.metadataAccessor.getIntervalMetadata(methodRef); + const name = this.metadataAccessor.getSchedulerName(methodRef); + const intervalFn = this.wrapFunctionInTryCatchBlocks(methodRef, instance); + return this.schedulerOrchestrator.addInterval(intervalFn, intervalMetadata.timeout, name); + } + } + } + warnForNonStaticProviders(wrapper, instance, key) { + const methodRef = instance[key]; + const metadata = this.metadataAccessor.getSchedulerType(methodRef); + switch (metadata) { + case scheduler_type_enum_1.SchedulerType.CRON: { + if (!this.moduleOptions.cronJobs) { + return; + } + this.logger.warn(`Cannot register cron job "${wrapper.name}@${key}" because it is defined in a non static provider.`); + break; + } + case scheduler_type_enum_1.SchedulerType.TIMEOUT: { + if (!this.moduleOptions.timeouts) { + return; + } + this.logger.warn(`Cannot register timeout "${wrapper.name}@${key}" because it is defined in a non static provider.`); + break; + } + case scheduler_type_enum_1.SchedulerType.INTERVAL: { + if (!this.moduleOptions.intervals) { + return; + } + this.logger.warn(`Cannot register interval "${wrapper.name}@${key}" because it is defined in a non static provider.`); + break; + } + } + } + wrapFunctionInTryCatchBlocks(methodRef, instance) { + return async (...args) => { + try { + await methodRef.call(instance, ...args); + } catch (error) { + this.logger.error(error); + } + }; + } + }; + exports2.ScheduleExplorer = ScheduleExplorer; + exports2.ScheduleExplorer = ScheduleExplorer = __decorate2([ + (0, common_12.Injectable)(), + __param2(0, (0, common_12.Inject)(schedule_constants_1.SCHEDULE_MODULE_OPTIONS)), + __metadata2("design:paramtypes", [ + Object, + scheduler_orchestrator_1.SchedulerOrchestrator, + core_12.DiscoveryService, + schedule_metadata_accessor_1.SchedulerMetadataAccessor, + core_12.MetadataScanner + ]) + ], ScheduleExplorer); + } +}); + +// node_modules/@nestjs/schedule/dist/schedule.module.js +var require_schedule_module = __commonJS({ + "node_modules/@nestjs/schedule/dist/schedule.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var ScheduleModule_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ScheduleModule = void 0; + var common_12 = require_common(); + var core_12 = require_core3(); + var schedule_metadata_accessor_1 = require_schedule_metadata_accessor(); + var schedule_explorer_1 = require_schedule_explorer(); + var scheduler_orchestrator_1 = require_scheduler_orchestrator(); + var scheduler_registry_1 = require_scheduler_registry(); + var schedule_constants_1 = require_schedule_constants(); + var ScheduleModule = ScheduleModule_1 = class ScheduleModule { + static { + __name(this, "ScheduleModule"); + } + static forRoot(options) { + const optionsWithDefaults = { + cronJobs: true, + intervals: true, + timeouts: true, + ...options + }; + return { + global: true, + module: ScheduleModule_1, + providers: [ + schedule_explorer_1.ScheduleExplorer, + scheduler_registry_1.SchedulerRegistry, + { + provide: schedule_constants_1.SCHEDULE_MODULE_OPTIONS, + useValue: optionsWithDefaults + } + ], + exports: [scheduler_registry_1.SchedulerRegistry] + }; + } + static forRootAsync(options) { + return { + global: true, + module: ScheduleModule_1, + imports: options.imports || [], + providers: [ + schedule_explorer_1.ScheduleExplorer, + scheduler_registry_1.SchedulerRegistry, + ...this.createAsyncProviders(options) + ], + exports: [scheduler_registry_1.SchedulerRegistry] + }; + } + static createAsyncProviders(options) { + if (options.useExisting || options.useFactory) { + return [this.createAsyncOptionsProvider(options)]; + } + const useClass = options.useClass; + return [ + this.createAsyncOptionsProvider(options), + { + provide: useClass, + useClass + } + ]; + } + static createAsyncOptionsProvider(options) { + if (options.useFactory) { + return { + provide: schedule_constants_1.SCHEDULE_MODULE_OPTIONS, + useFactory: /* @__PURE__ */ __name(async (...args) => { + const config = await options.useFactory(...args); + return { + cronJobs: true, + intervals: true, + timeouts: true, + ...config + }; + }, "useFactory"), + inject: options.inject || [] + }; + } + const inject = [ + options.useClass || options.useExisting + ]; + return { + provide: schedule_constants_1.SCHEDULE_MODULE_OPTIONS, + useFactory: /* @__PURE__ */ __name(async (optionsFactory) => { + const config = await optionsFactory.createScheduleOptions(); + return { + cronJobs: true, + intervals: true, + timeouts: true, + ...config + }; + }, "useFactory"), + inject + }; + } + }; + exports2.ScheduleModule = ScheduleModule; + exports2.ScheduleModule = ScheduleModule = ScheduleModule_1 = __decorate2([ + (0, common_12.Module)({ + imports: [core_12.DiscoveryModule], + providers: [schedule_metadata_accessor_1.SchedulerMetadataAccessor, scheduler_orchestrator_1.SchedulerOrchestrator] + }) + ], ScheduleModule); + } +}); + +// node_modules/@nestjs/schedule/dist/index.js +var require_dist9 = __commonJS({ + "node_modules/@nestjs/schedule/dist/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_enums3(), exports2); + __exportStar2(require_decorators6(), exports2); + __exportStar2(require_schedule_module_options_interface(), exports2); + __exportStar2(require_schedule_module(), exports2); + __exportStar2(require_scheduler_registry(), exports2); + } +}); + +// node_modules/@nestjs/schedule/index.js +var require_schedule = __commonJS({ + "node_modules/@nestjs/schedule/index.js"(exports2) { + "use strict"; + function __export2(m) { + for (var p in m) if (!exports2.hasOwnProperty(p)) exports2[p] = m[p]; + } + __name(__export2, "__export"); + exports2.__esModule = true; + __export2(require_dist9()); + } +}); + +// node_modules/@prisma/client/runtime/library.js +var require_library = __commonJS({ + "node_modules/@prisma/client/runtime/library.js"(exports2, module2) { + "use strict"; + var yu = Object.create; + var jt = Object.defineProperty; + var bu = Object.getOwnPropertyDescriptor; + var Eu = Object.getOwnPropertyNames; + var wu = Object.getPrototypeOf; + var xu = Object.prototype.hasOwnProperty; + var Do = /* @__PURE__ */ __name((e, r) => () => (e && (r = e(e = 0)), r), "Do"); + var ue = /* @__PURE__ */ __name((e, r) => () => (r || e((r = { exports: {} }).exports, r), r.exports), "ue"); + var tr = /* @__PURE__ */ __name((e, r) => { + for (var t in r) jt(e, t, { get: r[t], enumerable: true }); + }, "tr"); + var Oo = /* @__PURE__ */ __name((e, r, t, n) => { + if (r && typeof r == "object" || typeof r == "function") for (let i of Eu(r)) !xu.call(e, i) && i !== t && jt(e, i, { get: /* @__PURE__ */ __name(() => r[i], "get"), enumerable: !(n = bu(r, i)) || n.enumerable }); + return e; + }, "Oo"); + var O = /* @__PURE__ */ __name((e, r, t) => (t = e != null ? yu(wu(e)) : {}, Oo(r || !e || !e.__esModule ? jt(t, "default", { value: e, enumerable: true }) : t, e)), "O"); + var vu = /* @__PURE__ */ __name((e) => Oo(jt({}, "__esModule", { value: true }), e), "vu"); + var hi = ue((_g, is) => { + "use strict"; + is.exports = (e, r = process.argv) => { + let t = e.startsWith("-") ? "" : e.length === 1 ? "-" : "--", n = r.indexOf(t + e), i = r.indexOf("--"); + return n !== -1 && (i === -1 || n < i); + }; + }); + var as = ue((Ng, ss) => { + "use strict"; + var Fc = require("node:os"), os = require("node:tty"), de = hi(), { env: G } = process, Qe; + de("no-color") || de("no-colors") || de("color=false") || de("color=never") ? Qe = 0 : (de("color") || de("colors") || de("color=true") || de("color=always")) && (Qe = 1); + "FORCE_COLOR" in G && (G.FORCE_COLOR === "true" ? Qe = 1 : G.FORCE_COLOR === "false" ? Qe = 0 : Qe = G.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(G.FORCE_COLOR, 10), 3)); + function yi(e) { + return e === 0 ? false : { level: e, hasBasic: true, has256: e >= 2, has16m: e >= 3 }; + } + __name(yi, "yi"); + function bi(e, r) { + if (Qe === 0) return 0; + if (de("color=16m") || de("color=full") || de("color=truecolor")) return 3; + if (de("color=256")) return 2; + if (e && !r && Qe === void 0) return 0; + let t = Qe || 0; + if (G.TERM === "dumb") return t; + if (process.platform === "win32") { + let n = Fc.release().split("."); + return Number(n[0]) >= 10 && Number(n[2]) >= 10586 ? Number(n[2]) >= 14931 ? 3 : 2 : 1; + } + if ("CI" in G) return ["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((n) => n in G) || G.CI_NAME === "codeship" ? 1 : t; + if ("TEAMCITY_VERSION" in G) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(G.TEAMCITY_VERSION) ? 1 : 0; + if (G.COLORTERM === "truecolor") return 3; + if ("TERM_PROGRAM" in G) { + let n = parseInt((G.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (G.TERM_PROGRAM) { + case "iTerm.app": + return n >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } + } + return /-256(color)?$/i.test(G.TERM) ? 2 : /^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(G.TERM) || "COLORTERM" in G ? 1 : t; + } + __name(bi, "bi"); + function Mc(e) { + let r = bi(e, e && e.isTTY); + return yi(r); + } + __name(Mc, "Mc"); + ss.exports = { supportsColor: Mc, stdout: yi(bi(true, os.isatty(1))), stderr: yi(bi(true, os.isatty(2))) }; + }); + var cs = ue((Lg, us) => { + "use strict"; + var $c = as(), br = hi(); + function ls(e) { + if (/^\d{3,4}$/.test(e)) { + let t = /(\d{1,2})(\d{2})/.exec(e) || []; + return { major: 0, minor: parseInt(t[1], 10), patch: parseInt(t[2], 10) }; + } + let r = (e || "").split(".").map((t) => parseInt(t, 10)); + return { major: r[0], minor: r[1], patch: r[2] }; + } + __name(ls, "ls"); + function Ei(e) { + let { CI: r, FORCE_HYPERLINK: t, NETLIFY: n, TEAMCITY_VERSION: i, TERM_PROGRAM: o, TERM_PROGRAM_VERSION: s, VTE_VERSION: a, TERM: l } = process.env; + if (t) return !(t.length > 0 && parseInt(t, 10) === 0); + if (br("no-hyperlink") || br("no-hyperlinks") || br("hyperlink=false") || br("hyperlink=never")) return false; + if (br("hyperlink=true") || br("hyperlink=always") || n) return true; + if (!$c.supportsColor(e) || e && !e.isTTY) return false; + if ("WT_SESSION" in process.env) return true; + if (process.platform === "win32" || r || i) return false; + if (o) { + let u = ls(s || ""); + switch (o) { + case "iTerm.app": + return u.major === 3 ? u.minor >= 1 : u.major > 3; + case "WezTerm": + return u.major >= 20200620; + case "vscode": + return u.major > 1 || u.major === 1 && u.minor >= 72; + case "ghostty": + return true; + } + } + if (a) { + if (a === "0.50.0") return false; + let u = ls(a); + return u.major > 0 || u.minor >= 50; + } + switch (l) { + case "alacritty": + return true; + } + return false; + } + __name(Ei, "Ei"); + us.exports = { supportsHyperlink: Ei, stdout: Ei(process.stdout), stderr: Ei(process.stderr) }; + }); + var ps = ue((Kg, qc) => { + qc.exports = { name: "@prisma/internals", version: "6.19.3", description: "This package is intended for Prisma's internal use", main: "dist/index.js", types: "dist/index.d.ts", repository: { type: "git", url: "https://github.com/prisma/prisma.git", directory: "packages/internals" }, homepage: "https://www.prisma.io", author: "Tim Suchanek ", bugs: "https://github.com/prisma/prisma/issues", license: "Apache-2.0", scripts: { dev: "DEV=true tsx helpers/build.ts", build: "tsx helpers/build.ts", test: "dotenv -e ../../.db.env -- jest --silent", prepublishOnly: "pnpm run build" }, files: ["README.md", "dist", "!**/libquery_engine*", "!dist/get-generators/engines/*", "scripts"], devDependencies: { "@babel/helper-validator-identifier": "7.25.9", "@opentelemetry/api": "1.9.0", "@swc/core": "1.11.5", "@swc/jest": "0.2.37", "@types/babel__helper-validator-identifier": "7.15.2", "@types/jest": "29.5.14", "@types/node": "18.19.76", "@types/resolve": "1.20.6", archiver: "6.0.2", "checkpoint-client": "1.1.33", "cli-truncate": "4.0.0", dotenv: "16.5.0", empathic: "2.0.0", "escape-string-regexp": "5.0.0", execa: "8.0.1", "fast-glob": "3.3.3", "find-up": "7.0.0", "fp-ts": "2.16.9", "fs-extra": "11.3.0", "global-directory": "4.0.0", globby: "11.1.0", "identifier-regex": "1.0.0", "indent-string": "4.0.0", "is-windows": "1.0.2", "is-wsl": "3.1.0", jest: "29.7.0", "jest-junit": "16.0.0", kleur: "4.1.5", "mock-stdin": "1.0.0", "new-github-issue-url": "0.2.1", "node-fetch": "3.3.2", "npm-packlist": "5.1.3", open: "7.4.2", "p-map": "4.0.0", resolve: "1.22.10", "string-width": "7.2.0", "strip-indent": "4.0.0", "temp-dir": "2.0.0", tempy: "1.0.1", "terminal-link": "4.0.0", tmp: "0.2.3", "ts-pattern": "5.6.2", "ts-toolbelt": "9.6.0", typescript: "5.4.5", yarn: "1.22.22" }, dependencies: { "@prisma/config": "workspace:*", "@prisma/debug": "workspace:*", "@prisma/dmmf": "workspace:*", "@prisma/driver-adapter-utils": "workspace:*", "@prisma/engines": "workspace:*", "@prisma/fetch-engine": "workspace:*", "@prisma/generator": "workspace:*", "@prisma/generator-helper": "workspace:*", "@prisma/get-platform": "workspace:*", "@prisma/prisma-schema-wasm": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", "@prisma/schema-engine-wasm": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", "@prisma/schema-files-loader": "workspace:*", arg: "5.0.2", prompts: "2.4.2" }, peerDependencies: { typescript: ">=5.1.0" }, peerDependenciesMeta: { typescript: { optional: true } }, sideEffects: false }; + }); + var Ti = ue((gh, Qc) => { + Qc.exports = { name: "@prisma/engines-version", version: "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", main: "index.js", types: "index.d.ts", license: "Apache-2.0", author: "Tim Suchanek ", prisma: { enginesVersion: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7" }, repository: { type: "git", url: "https://github.com/prisma/engines-wrapper.git", directory: "packages/engines-version" }, devDependencies: { "@types/node": "18.19.76", typescript: "4.9.5" }, files: ["index.js", "index.d.ts"], scripts: { build: "tsc -d" } }; + }); + var on = ue((nn) => { + "use strict"; + Object.defineProperty(nn, "__esModule", { value: true }); + nn.enginesVersion = void 0; + nn.enginesVersion = Ti().prisma.enginesVersion; + }); + var hs = ue((Ih, gs) => { + "use strict"; + gs.exports = (e) => { + let r = e.match(/^[ \t]*(?=\S)/gm); + return r ? r.reduce((t, n) => Math.min(t, n.length), 1 / 0) : 0; + }; + }); + var Di = ue((kh, Es) => { + "use strict"; + Es.exports = (e, r = 1, t) => { + if (t = { indent: " ", includeEmptyLines: false, ...t }, typeof e != "string") throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``); + if (typeof r != "number") throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof r}\``); + if (typeof t.indent != "string") throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof t.indent}\``); + if (r === 0) return e; + let n = t.includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; + return e.replace(n, t.indent.repeat(r)); + }; + }); + var vs = ue((jh, tp) => { + tp.exports = { name: "dotenv", version: "16.5.0", description: "Loads environment variables from .env file", main: "lib/main.js", types: "lib/main.d.ts", exports: { ".": { types: "./lib/main.d.ts", require: "./lib/main.js", default: "./lib/main.js" }, "./config": "./config.js", "./config.js": "./config.js", "./lib/env-options": "./lib/env-options.js", "./lib/env-options.js": "./lib/env-options.js", "./lib/cli-options": "./lib/cli-options.js", "./lib/cli-options.js": "./lib/cli-options.js", "./package.json": "./package.json" }, scripts: { "dts-check": "tsc --project tests/types/tsconfig.json", lint: "standard", pretest: "npm run lint && npm run dts-check", test: "tap run --allow-empty-coverage --disable-coverage --timeout=60000", "test:coverage": "tap run --show-full-coverage --timeout=60000 --coverage-report=lcov", prerelease: "npm test", release: "standard-version" }, repository: { type: "git", url: "git://github.com/motdotla/dotenv.git" }, homepage: "https://github.com/motdotla/dotenv#readme", funding: "https://dotenvx.com", keywords: ["dotenv", "env", ".env", "environment", "variables", "config", "settings"], readmeFilename: "README.md", license: "BSD-2-Clause", devDependencies: { "@types/node": "^18.11.3", decache: "^4.6.2", sinon: "^14.0.1", standard: "^17.0.0", "standard-version": "^9.5.0", tap: "^19.2.0", typescript: "^4.8.4" }, engines: { node: ">=12" }, browser: { fs: false } }; + }); + var As = ue((Bh, _e) => { + "use strict"; + var Fi = require("node:fs"), Mi = require("node:path"), np = require("node:os"), ip = require("node:crypto"), op = vs(), Ts = op.version, sp = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg; + function ap(e) { + let r = {}, t = e.toString(); + t = t.replace(/\r\n?/mg, ` +`); + let n; + for (; (n = sp.exec(t)) != null; ) { + let i = n[1], o = n[2] || ""; + o = o.trim(); + let s = o[0]; + o = o.replace(/^(['"`])([\s\S]*)\1$/mg, "$2"), s === '"' && (o = o.replace(/\\n/g, ` +`), o = o.replace(/\\r/g, "\r")), r[i] = o; + } + return r; + } + __name(ap, "ap"); + function lp(e) { + let r = Rs(e), t = B.configDotenv({ path: r }); + if (!t.parsed) { + let s = new Error(`MISSING_DATA: Cannot parse ${r} for an unknown reason`); + throw s.code = "MISSING_DATA", s; + } + let n = Ss(e).split(","), i = n.length, o; + for (let s = 0; s < i; s++) try { + let a = n[s].trim(), l = cp(t, a); + o = B.decrypt(l.ciphertext, l.key); + break; + } catch (a) { + if (s + 1 >= i) throw a; + } + return B.parse(o); + } + __name(lp, "lp"); + function up(e) { + console.log(`[dotenv@${Ts}][WARN] ${e}`); + } + __name(up, "up"); + function ot(e) { + console.log(`[dotenv@${Ts}][DEBUG] ${e}`); + } + __name(ot, "ot"); + function Ss(e) { + return e && e.DOTENV_KEY && e.DOTENV_KEY.length > 0 ? e.DOTENV_KEY : process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0 ? process.env.DOTENV_KEY : ""; + } + __name(Ss, "Ss"); + function cp(e, r) { + let t; + try { + t = new URL(r); + } catch (a) { + if (a.code === "ERR_INVALID_URL") { + let l = new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development"); + throw l.code = "INVALID_DOTENV_KEY", l; + } + throw a; + } + let n = t.password; + if (!n) { + let a = new Error("INVALID_DOTENV_KEY: Missing key part"); + throw a.code = "INVALID_DOTENV_KEY", a; + } + let i = t.searchParams.get("environment"); + if (!i) { + let a = new Error("INVALID_DOTENV_KEY: Missing environment part"); + throw a.code = "INVALID_DOTENV_KEY", a; + } + let o = `DOTENV_VAULT_${i.toUpperCase()}`, s = e.parsed[o]; + if (!s) { + let a = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`); + throw a.code = "NOT_FOUND_DOTENV_ENVIRONMENT", a; + } + return { ciphertext: s, key: n }; + } + __name(cp, "cp"); + function Rs(e) { + let r = null; + if (e && e.path && e.path.length > 0) if (Array.isArray(e.path)) for (let t of e.path) Fi.existsSync(t) && (r = t.endsWith(".vault") ? t : `${t}.vault`); + else r = e.path.endsWith(".vault") ? e.path : `${e.path}.vault`; + else r = Mi.resolve(process.cwd(), ".env.vault"); + return Fi.existsSync(r) ? r : null; + } + __name(Rs, "Rs"); + function Ps(e) { + return e[0] === "~" ? Mi.join(np.homedir(), e.slice(1)) : e; + } + __name(Ps, "Ps"); + function pp(e) { + !!(e && e.debug) && ot("Loading env from encrypted .env.vault"); + let t = B._parseVault(e), n = process.env; + return e && e.processEnv != null && (n = e.processEnv), B.populate(n, t, e), { parsed: t }; + } + __name(pp, "pp"); + function dp(e) { + let r = Mi.resolve(process.cwd(), ".env"), t = "utf8", n = !!(e && e.debug); + e && e.encoding ? t = e.encoding : n && ot("No encoding is specified. UTF-8 is used by default"); + let i = [r]; + if (e && e.path) if (!Array.isArray(e.path)) i = [Ps(e.path)]; + else { + i = []; + for (let l of e.path) i.push(Ps(l)); + } + let o, s = {}; + for (let l of i) try { + let u = B.parse(Fi.readFileSync(l, { encoding: t })); + B.populate(s, u, e); + } catch (u) { + n && ot(`Failed to load ${l} ${u.message}`), o = u; + } + let a = process.env; + return e && e.processEnv != null && (a = e.processEnv), B.populate(a, s, e), o ? { parsed: s, error: o } : { parsed: s }; + } + __name(dp, "dp"); + function mp(e) { + if (Ss(e).length === 0) return B.configDotenv(e); + let r = Rs(e); + return r ? B._configVault(e) : (up(`You set DOTENV_KEY but you are missing a .env.vault file at ${r}. Did you forget to build it?`), B.configDotenv(e)); + } + __name(mp, "mp"); + function fp(e, r) { + let t = Buffer.from(r.slice(-64), "hex"), n = Buffer.from(e, "base64"), i = n.subarray(0, 12), o = n.subarray(-16); + n = n.subarray(12, -16); + try { + let s = ip.createDecipheriv("aes-256-gcm", t, i); + return s.setAuthTag(o), `${s.update(n)}${s.final()}`; + } catch (s) { + let a = s instanceof RangeError, l = s.message === "Invalid key length", u = s.message === "Unsupported state or unable to authenticate data"; + if (a || l) { + let c = new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)"); + throw c.code = "INVALID_DOTENV_KEY", c; + } else if (u) { + let c = new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY"); + throw c.code = "DECRYPTION_FAILED", c; + } else throw s; + } + } + __name(fp, "fp"); + function gp(e, r, t = {}) { + let n = !!(t && t.debug), i = !!(t && t.override); + if (typeof r != "object") { + let o = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate"); + throw o.code = "OBJECT_REQUIRED", o; + } + for (let o of Object.keys(r)) Object.prototype.hasOwnProperty.call(e, o) ? (i === true && (e[o] = r[o]), n && ot(i === true ? `"${o}" is already defined and WAS overwritten` : `"${o}" is already defined and was NOT overwritten`)) : e[o] = r[o]; + } + __name(gp, "gp"); + var B = { configDotenv: dp, _configVault: pp, _parseVault: lp, config: mp, decrypt: fp, parse: ap, populate: gp }; + _e.exports.configDotenv = B.configDotenv; + _e.exports._configVault = B._configVault; + _e.exports._parseVault = B._parseVault; + _e.exports.config = B.config; + _e.exports.decrypt = B.decrypt; + _e.exports.parse = B.parse; + _e.exports.populate = B.populate; + _e.exports = B; + }); + var Os = ue((Kh, cn) => { + "use strict"; + cn.exports = (e = {}) => { + let r; + if (e.repoUrl) r = e.repoUrl; + else if (e.user && e.repo) r = `https://github.com/${e.user}/${e.repo}`; + else throw new Error("You need to specify either the `repoUrl` option or both the `user` and `repo` options"); + let t = new URL(`${r}/issues/new`), n = ["body", "title", "labels", "template", "milestone", "assignee", "projects"]; + for (let i of n) { + let o = e[i]; + if (o !== void 0) { + if (i === "labels" || i === "projects") { + if (!Array.isArray(o)) throw new TypeError(`The \`${i}\` option should be an array`); + o = o.join(","); + } + t.searchParams.set(i, o); + } + } + return t.toString(); + }; + cn.exports.default = cn.exports; + }); + var Ki = ue((vb, ea) => { + "use strict"; + ea.exports = /* @__PURE__ */ (function() { + function e(r, t, n, i, o) { + return r < t || n < t ? r > n ? n + 1 : r + 1 : i === o ? t : t + 1; + } + __name(e, "e"); + return function(r, t) { + if (r === t) return 0; + if (r.length > t.length) { + var n = r; + r = t, t = n; + } + for (var i = r.length, o = t.length; i > 0 && r.charCodeAt(i - 1) === t.charCodeAt(o - 1); ) i--, o--; + for (var s = 0; s < i && r.charCodeAt(s) === t.charCodeAt(s); ) s++; + if (i -= s, o -= s, i === 0 || o < 3) return o; + var a = 0, l, u, c, p, d, f, h, g, I, T, S, b, D = []; + for (l = 0; l < i; l++) D.push(l + 1), D.push(r.charCodeAt(s + l)); + for (var me = D.length - 1; a < o - 3; ) for (I = t.charCodeAt(s + (u = a)), T = t.charCodeAt(s + (c = a + 1)), S = t.charCodeAt(s + (p = a + 2)), b = t.charCodeAt(s + (d = a + 3)), f = a += 4, l = 0; l < me; l += 2) h = D[l], g = D[l + 1], u = e(h, u, c, I, g), c = e(u, c, p, T, g), p = e(c, p, d, S, g), f = e(p, d, f, b, g), D[l] = f, d = p, p = c, c = u, u = h; + for (; a < o; ) for (I = t.charCodeAt(s + (u = a)), f = ++a, l = 0; l < me; l += 2) h = D[l], D[l] = f = e(h, u, f, I, D[l + 1]), u = h; + return f; + }; + })(); + }); + var oa = Do(() => { + "use strict"; + }); + var sa = Do(() => { + "use strict"; + }); + var jf = {}; + tr(jf, { DMMF: /* @__PURE__ */ __name(() => ct, "DMMF"), Debug: /* @__PURE__ */ __name(() => N, "Debug"), Decimal: /* @__PURE__ */ __name(() => Fe, "Decimal"), Extensions: /* @__PURE__ */ __name(() => ni, "Extensions"), MetricsClient: /* @__PURE__ */ __name(() => Lr, "MetricsClient"), PrismaClientInitializationError: /* @__PURE__ */ __name(() => P, "PrismaClientInitializationError"), PrismaClientKnownRequestError: /* @__PURE__ */ __name(() => z, "PrismaClientKnownRequestError"), PrismaClientRustPanicError: /* @__PURE__ */ __name(() => ae, "PrismaClientRustPanicError"), PrismaClientUnknownRequestError: /* @__PURE__ */ __name(() => V, "PrismaClientUnknownRequestError"), PrismaClientValidationError: /* @__PURE__ */ __name(() => Z, "PrismaClientValidationError"), Public: /* @__PURE__ */ __name(() => ii, "Public"), Sql: /* @__PURE__ */ __name(() => ie, "Sql"), createParam: /* @__PURE__ */ __name(() => va, "createParam"), defineDmmfProperty: /* @__PURE__ */ __name(() => Ca, "defineDmmfProperty"), deserializeJsonResponse: /* @__PURE__ */ __name(() => Vr, "deserializeJsonResponse"), deserializeRawResult: /* @__PURE__ */ __name(() => Xn, "deserializeRawResult"), dmmfToRuntimeDataModel: /* @__PURE__ */ __name(() => Ns, "dmmfToRuntimeDataModel"), empty: /* @__PURE__ */ __name(() => Oa, "empty"), getPrismaClient: /* @__PURE__ */ __name(() => fu, "getPrismaClient"), getRuntime: /* @__PURE__ */ __name(() => Kn, "getRuntime"), join: /* @__PURE__ */ __name(() => Da, "join"), makeStrictEnum: /* @__PURE__ */ __name(() => gu, "makeStrictEnum"), makeTypedQueryFactory: /* @__PURE__ */ __name(() => Ia, "makeTypedQueryFactory"), objectEnumValues: /* @__PURE__ */ __name(() => On, "objectEnumValues"), raw: /* @__PURE__ */ __name(() => no, "raw"), serializeJsonQuery: /* @__PURE__ */ __name(() => $n, "serializeJsonQuery"), skip: /* @__PURE__ */ __name(() => Mn, "skip"), sqltag: /* @__PURE__ */ __name(() => io, "sqltag"), warnEnvConflicts: /* @__PURE__ */ __name(() => hu, "warnEnvConflicts"), warnOnce: /* @__PURE__ */ __name(() => at, "warnOnce") }); + module2.exports = vu(jf); + var ni = {}; + tr(ni, { defineExtension: /* @__PURE__ */ __name(() => ko, "defineExtension"), getExtensionContext: /* @__PURE__ */ __name(() => _o, "getExtensionContext") }); + function ko(e) { + return typeof e == "function" ? e : (r) => r.$extends(e); + } + __name(ko, "ko"); + function _o(e) { + return e; + } + __name(_o, "_o"); + var ii = {}; + tr(ii, { validator: /* @__PURE__ */ __name(() => No, "validator") }); + function No(...e) { + return (r) => r; + } + __name(No, "No"); + var Bt = {}; + tr(Bt, { $: /* @__PURE__ */ __name(() => qo, "$"), bgBlack: /* @__PURE__ */ __name(() => ku, "bgBlack"), bgBlue: /* @__PURE__ */ __name(() => Fu, "bgBlue"), bgCyan: /* @__PURE__ */ __name(() => $u, "bgCyan"), bgGreen: /* @__PURE__ */ __name(() => Nu, "bgGreen"), bgMagenta: /* @__PURE__ */ __name(() => Mu, "bgMagenta"), bgRed: /* @__PURE__ */ __name(() => _u, "bgRed"), bgWhite: /* @__PURE__ */ __name(() => qu, "bgWhite"), bgYellow: /* @__PURE__ */ __name(() => Lu, "bgYellow"), black: /* @__PURE__ */ __name(() => Cu, "black"), blue: /* @__PURE__ */ __name(() => nr, "blue"), bold: /* @__PURE__ */ __name(() => W, "bold"), cyan: /* @__PURE__ */ __name(() => De, "cyan"), dim: /* @__PURE__ */ __name(() => Ce, "dim"), gray: /* @__PURE__ */ __name(() => Hr, "gray"), green: /* @__PURE__ */ __name(() => qe, "green"), grey: /* @__PURE__ */ __name(() => Ou, "grey"), hidden: /* @__PURE__ */ __name(() => Ru, "hidden"), inverse: /* @__PURE__ */ __name(() => Su, "inverse"), italic: /* @__PURE__ */ __name(() => Tu, "italic"), magenta: /* @__PURE__ */ __name(() => Iu, "magenta"), red: /* @__PURE__ */ __name(() => ce, "red"), reset: /* @__PURE__ */ __name(() => Pu, "reset"), strikethrough: /* @__PURE__ */ __name(() => Au, "strikethrough"), underline: /* @__PURE__ */ __name(() => Y, "underline"), white: /* @__PURE__ */ __name(() => Du, "white"), yellow: /* @__PURE__ */ __name(() => Ie, "yellow") }); + var oi; + var Lo; + var Fo; + var Mo; + var $o = true; + typeof process < "u" && ({ FORCE_COLOR: oi, NODE_DISABLE_COLORS: Lo, NO_COLOR: Fo, TERM: Mo } = process.env || {}, $o = process.stdout && process.stdout.isTTY); + var qo = { enabled: !Lo && Fo == null && Mo !== "dumb" && (oi != null && oi !== "0" || $o) }; + function F(e, r) { + let t = new RegExp(`\\x1b\\[${r}m`, "g"), n = `\x1B[${e}m`, i = `\x1B[${r}m`; + return function(o) { + return !qo.enabled || o == null ? o : n + (~("" + o).indexOf(i) ? o.replace(t, i + n) : o) + i; + }; + } + __name(F, "F"); + var Pu = F(0, 0); + var W = F(1, 22); + var Ce = F(2, 22); + var Tu = F(3, 23); + var Y = F(4, 24); + var Su = F(7, 27); + var Ru = F(8, 28); + var Au = F(9, 29); + var Cu = F(30, 39); + var ce = F(31, 39); + var qe = F(32, 39); + var Ie = F(33, 39); + var nr = F(34, 39); + var Iu = F(35, 39); + var De = F(36, 39); + var Du = F(37, 39); + var Hr = F(90, 39); + var Ou = F(90, 39); + var ku = F(40, 49); + var _u = F(41, 49); + var Nu = F(42, 49); + var Lu = F(43, 49); + var Fu = F(44, 49); + var Mu = F(45, 49); + var $u = F(46, 49); + var qu = F(47, 49); + var Vu = 100; + var Vo = ["green", "yellow", "blue", "magenta", "cyan", "red"]; + var Yr = []; + var jo = Date.now(); + var ju = 0; + var si = typeof process < "u" ? process.env : {}; + globalThis.DEBUG ??= si.DEBUG ?? ""; + globalThis.DEBUG_COLORS ??= si.DEBUG_COLORS ? si.DEBUG_COLORS === "true" : true; + var zr = { enable(e) { + typeof e == "string" && (globalThis.DEBUG = e); + }, disable() { + let e = globalThis.DEBUG; + return globalThis.DEBUG = "", e; + }, enabled(e) { + let r = globalThis.DEBUG.split(",").map((i) => i.replace(/[.+?^${}()|[\]\\]/g, "\\$&")), t = r.some((i) => i === "" || i[0] === "-" ? false : e.match(RegExp(i.split("*").join(".*") + "$"))), n = r.some((i) => i === "" || i[0] !== "-" ? false : e.match(RegExp(i.slice(1).split("*").join(".*") + "$"))); + return t && !n; + }, log: /* @__PURE__ */ __name((...e) => { + let [r, t, ...n] = e; + (console.warn ?? console.log)(`${r} ${t}`, ...n); + }, "log"), formatters: {} }; + function Bu(e) { + let r = { color: Vo[ju++ % Vo.length], enabled: zr.enabled(e), namespace: e, log: zr.log, extend: /* @__PURE__ */ __name(() => { + }, "extend") }, t = /* @__PURE__ */ __name((...n) => { + let { enabled: i, namespace: o, color: s, log: a } = r; + if (n.length !== 0 && Yr.push([o, ...n]), Yr.length > Vu && Yr.shift(), zr.enabled(o) || i) { + let l = n.map((c) => typeof c == "string" ? c : Uu(c)), u = `+${Date.now() - jo}ms`; + jo = Date.now(), globalThis.DEBUG_COLORS ? a(Bt[s](W(o)), ...l, Bt[s](u)) : a(o, ...l, u); + } + }, "t"); + return new Proxy(t, { get: /* @__PURE__ */ __name((n, i) => r[i], "get"), set: /* @__PURE__ */ __name((n, i, o) => r[i] = o, "set") }); + } + __name(Bu, "Bu"); + var N = new Proxy(Bu, { get: /* @__PURE__ */ __name((e, r) => zr[r], "get"), set: /* @__PURE__ */ __name((e, r, t) => zr[r] = t, "set") }); + function Uu(e, r = 2) { + let t = /* @__PURE__ */ new Set(); + return JSON.stringify(e, (n, i) => { + if (typeof i == "object" && i !== null) { + if (t.has(i)) return "[Circular *]"; + t.add(i); + } else if (typeof i == "bigint") return i.toString(); + return i; + }, r); + } + __name(Uu, "Uu"); + function Bo(e = 7500) { + let r = Yr.map(([t, ...n]) => `${t} ${n.map((i) => typeof i == "string" ? i : JSON.stringify(i)).join(" ")}`).join(` +`); + return r.length < e ? r : r.slice(-e); + } + __name(Bo, "Bo"); + function Uo() { + Yr.length = 0; + } + __name(Uo, "Uo"); + var gr = N; + var Go = O(require("node:fs")); + function ai() { + let e = process.env.PRISMA_QUERY_ENGINE_LIBRARY; + if (!(e && Go.default.existsSync(e)) && process.arch === "ia32") throw new Error('The default query engine type (Node-API, "library") is currently not supported for 32bit Node. Please set `engineType = "binary"` in the "generator" block of your "schema.prisma" file (or use the environment variables "PRISMA_CLIENT_ENGINE_TYPE=binary" and/or "PRISMA_CLI_QUERY_ENGINE_TYPE=binary".)'); + } + __name(ai, "ai"); + var li = ["darwin", "darwin-arm64", "debian-openssl-1.0.x", "debian-openssl-1.1.x", "debian-openssl-3.0.x", "rhel-openssl-1.0.x", "rhel-openssl-1.1.x", "rhel-openssl-3.0.x", "linux-arm64-openssl-1.1.x", "linux-arm64-openssl-1.0.x", "linux-arm64-openssl-3.0.x", "linux-arm-openssl-1.1.x", "linux-arm-openssl-1.0.x", "linux-arm-openssl-3.0.x", "linux-musl", "linux-musl-openssl-3.0.x", "linux-musl-arm64-openssl-1.1.x", "linux-musl-arm64-openssl-3.0.x", "linux-nixos", "linux-static-x64", "linux-static-arm64", "windows", "freebsd11", "freebsd12", "freebsd13", "freebsd14", "freebsd15", "openbsd", "netbsd", "arm"]; + var Ut = "libquery_engine"; + function Gt(e, r) { + let t = r === "url"; + return e.includes("windows") ? t ? "query_engine.dll.node" : `query_engine-${e}.dll.node` : e.includes("darwin") ? t ? `${Ut}.dylib.node` : `${Ut}-${e}.dylib.node` : t ? `${Ut}.so.node` : `${Ut}-${e}.so.node`; + } + __name(Gt, "Gt"); + var Ko = O(require("node:child_process")); + var mi = O(require("node:fs/promises")); + var Ht = O(require("node:os")); + var Oe = /* @__PURE__ */ Symbol.for("@ts-pattern/matcher"); + var Gu = /* @__PURE__ */ Symbol.for("@ts-pattern/isVariadic"); + var Wt = "@ts-pattern/anonymous-select-key"; + var ui = /* @__PURE__ */ __name((e) => !!(e && typeof e == "object"), "ui"); + var Qt = /* @__PURE__ */ __name((e) => e && !!e[Oe], "Qt"); + var Ee = /* @__PURE__ */ __name((e, r, t) => { + if (Qt(e)) { + let n = e[Oe](), { matched: i, selections: o } = n.match(r); + return i && o && Object.keys(o).forEach((s) => t(s, o[s])), i; + } + if (ui(e)) { + if (!ui(r)) return false; + if (Array.isArray(e)) { + if (!Array.isArray(r)) return false; + let n = [], i = [], o = []; + for (let s of e.keys()) { + let a = e[s]; + Qt(a) && a[Gu] ? o.push(a) : o.length ? i.push(a) : n.push(a); + } + if (o.length) { + if (o.length > 1) throw new Error("Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed."); + if (r.length < n.length + i.length) return false; + let s = r.slice(0, n.length), a = i.length === 0 ? [] : r.slice(-i.length), l = r.slice(n.length, i.length === 0 ? 1 / 0 : -i.length); + return n.every((u, c) => Ee(u, s[c], t)) && i.every((u, c) => Ee(u, a[c], t)) && (o.length === 0 || Ee(o[0], l, t)); + } + return e.length === r.length && e.every((s, a) => Ee(s, r[a], t)); + } + return Reflect.ownKeys(e).every((n) => { + let i = e[n]; + return (n in r || Qt(o = i) && o[Oe]().matcherType === "optional") && Ee(i, r[n], t); + var o; + }); + } + return Object.is(r, e); + }, "Ee"); + var Ge = /* @__PURE__ */ __name((e) => { + var r, t, n; + return ui(e) ? Qt(e) ? (r = (t = (n = e[Oe]()).getSelectionKeys) == null ? void 0 : t.call(n)) != null ? r : [] : Array.isArray(e) ? Zr(e, Ge) : Zr(Object.values(e), Ge) : []; + }, "Ge"); + var Zr = /* @__PURE__ */ __name((e, r) => e.reduce((t, n) => t.concat(r(n)), []), "Zr"); + function pe(e) { + return Object.assign(e, { optional: /* @__PURE__ */ __name(() => Qu(e), "optional"), and: /* @__PURE__ */ __name((r) => q(e, r), "and"), or: /* @__PURE__ */ __name((r) => Wu(e, r), "or"), select: /* @__PURE__ */ __name((r) => r === void 0 ? Qo(e) : Qo(r, e), "select") }); + } + __name(pe, "pe"); + function Qu(e) { + return pe({ [Oe]: () => ({ match: /* @__PURE__ */ __name((r) => { + let t = {}, n = /* @__PURE__ */ __name((i, o) => { + t[i] = o; + }, "n"); + return r === void 0 ? (Ge(e).forEach((i) => n(i, void 0)), { matched: true, selections: t }) : { matched: Ee(e, r, n), selections: t }; + }, "match"), getSelectionKeys: /* @__PURE__ */ __name(() => Ge(e), "getSelectionKeys"), matcherType: "optional" }) }); + } + __name(Qu, "Qu"); + function q(...e) { + return pe({ [Oe]: () => ({ match: /* @__PURE__ */ __name((r) => { + let t = {}, n = /* @__PURE__ */ __name((i, o) => { + t[i] = o; + }, "n"); + return { matched: e.every((i) => Ee(i, r, n)), selections: t }; + }, "match"), getSelectionKeys: /* @__PURE__ */ __name(() => Zr(e, Ge), "getSelectionKeys"), matcherType: "and" }) }); + } + __name(q, "q"); + function Wu(...e) { + return pe({ [Oe]: () => ({ match: /* @__PURE__ */ __name((r) => { + let t = {}, n = /* @__PURE__ */ __name((i, o) => { + t[i] = o; + }, "n"); + return Zr(e, Ge).forEach((i) => n(i, void 0)), { matched: e.some((i) => Ee(i, r, n)), selections: t }; + }, "match"), getSelectionKeys: /* @__PURE__ */ __name(() => Zr(e, Ge), "getSelectionKeys"), matcherType: "or" }) }); + } + __name(Wu, "Wu"); + function A(e) { + return { [Oe]: () => ({ match: /* @__PURE__ */ __name((r) => ({ matched: !!e(r) }), "match") }) }; + } + __name(A, "A"); + function Qo(...e) { + let r = typeof e[0] == "string" ? e[0] : void 0, t = e.length === 2 ? e[1] : typeof e[0] == "string" ? void 0 : e[0]; + return pe({ [Oe]: () => ({ match: /* @__PURE__ */ __name((n) => { + let i = { [r ?? Wt]: n }; + return { matched: t === void 0 || Ee(t, n, (o, s) => { + i[o] = s; + }), selections: i }; + }, "match"), getSelectionKeys: /* @__PURE__ */ __name(() => [r ?? Wt].concat(t === void 0 ? [] : Ge(t)), "getSelectionKeys") }) }); + } + __name(Qo, "Qo"); + function ye(e) { + return typeof e == "number"; + } + __name(ye, "ye"); + function Ve(e) { + return typeof e == "string"; + } + __name(Ve, "Ve"); + function je(e) { + return typeof e == "bigint"; + } + __name(je, "je"); + var eg = pe(A(function(e) { + return true; + })); + var Be = /* @__PURE__ */ __name((e) => Object.assign(pe(e), { startsWith: /* @__PURE__ */ __name((r) => { + return Be(q(e, (t = r, A((n) => Ve(n) && n.startsWith(t))))); + var t; + }, "startsWith"), endsWith: /* @__PURE__ */ __name((r) => { + return Be(q(e, (t = r, A((n) => Ve(n) && n.endsWith(t))))); + var t; + }, "endsWith"), minLength: /* @__PURE__ */ __name((r) => Be(q(e, ((t) => A((n) => Ve(n) && n.length >= t))(r))), "minLength"), length: /* @__PURE__ */ __name((r) => Be(q(e, ((t) => A((n) => Ve(n) && n.length === t))(r))), "length"), maxLength: /* @__PURE__ */ __name((r) => Be(q(e, ((t) => A((n) => Ve(n) && n.length <= t))(r))), "maxLength"), includes: /* @__PURE__ */ __name((r) => { + return Be(q(e, (t = r, A((n) => Ve(n) && n.includes(t))))); + var t; + }, "includes"), regex: /* @__PURE__ */ __name((r) => { + return Be(q(e, (t = r, A((n) => Ve(n) && !!n.match(t))))); + var t; + }, "regex") }), "Be"); + var rg = Be(A(Ve)); + var be = /* @__PURE__ */ __name((e) => Object.assign(pe(e), { between: /* @__PURE__ */ __name((r, t) => be(q(e, ((n, i) => A((o) => ye(o) && n <= o && i >= o))(r, t))), "between"), lt: /* @__PURE__ */ __name((r) => be(q(e, ((t) => A((n) => ye(n) && n < t))(r))), "lt"), gt: /* @__PURE__ */ __name((r) => be(q(e, ((t) => A((n) => ye(n) && n > t))(r))), "gt"), lte: /* @__PURE__ */ __name((r) => be(q(e, ((t) => A((n) => ye(n) && n <= t))(r))), "lte"), gte: /* @__PURE__ */ __name((r) => be(q(e, ((t) => A((n) => ye(n) && n >= t))(r))), "gte"), int: /* @__PURE__ */ __name(() => be(q(e, A((r) => ye(r) && Number.isInteger(r)))), "int"), finite: /* @__PURE__ */ __name(() => be(q(e, A((r) => ye(r) && Number.isFinite(r)))), "finite"), positive: /* @__PURE__ */ __name(() => be(q(e, A((r) => ye(r) && r > 0))), "positive"), negative: /* @__PURE__ */ __name(() => be(q(e, A((r) => ye(r) && r < 0))), "negative") }), "be"); + var tg = be(A(ye)); + var Ue = /* @__PURE__ */ __name((e) => Object.assign(pe(e), { between: /* @__PURE__ */ __name((r, t) => Ue(q(e, ((n, i) => A((o) => je(o) && n <= o && i >= o))(r, t))), "between"), lt: /* @__PURE__ */ __name((r) => Ue(q(e, ((t) => A((n) => je(n) && n < t))(r))), "lt"), gt: /* @__PURE__ */ __name((r) => Ue(q(e, ((t) => A((n) => je(n) && n > t))(r))), "gt"), lte: /* @__PURE__ */ __name((r) => Ue(q(e, ((t) => A((n) => je(n) && n <= t))(r))), "lte"), gte: /* @__PURE__ */ __name((r) => Ue(q(e, ((t) => A((n) => je(n) && n >= t))(r))), "gte"), positive: /* @__PURE__ */ __name(() => Ue(q(e, A((r) => je(r) && r > 0))), "positive"), negative: /* @__PURE__ */ __name(() => Ue(q(e, A((r) => je(r) && r < 0))), "negative") }), "Ue"); + var ng = Ue(A(je)); + var ig = pe(A(function(e) { + return typeof e == "boolean"; + })); + var og = pe(A(function(e) { + return typeof e == "symbol"; + })); + var sg = pe(A(function(e) { + return e == null; + })); + var ag = pe(A(function(e) { + return e != null; + })); + var ci = class extends Error { + static { + __name(this, "ci"); + } + constructor(r) { + let t; + try { + t = JSON.stringify(r); + } catch { + t = r; + } + super(`Pattern matching error: no pattern matches value ${t}`), this.input = void 0, this.input = r; + } + }; + var pi = { matched: false, value: void 0 }; + function hr(e) { + return new di(e, pi); + } + __name(hr, "hr"); + var di = class e { + static { + __name(this, "e"); + } + constructor(r, t) { + this.input = void 0, this.state = void 0, this.input = r, this.state = t; + } + with(...r) { + if (this.state.matched) return this; + let t = r[r.length - 1], n = [r[0]], i; + r.length === 3 && typeof r[1] == "function" ? i = r[1] : r.length > 2 && n.push(...r.slice(1, r.length - 1)); + let o = false, s = {}, a = /* @__PURE__ */ __name((u, c) => { + o = true, s[u] = c; + }, "a"), l = !n.some((u) => Ee(u, this.input, a)) || i && !i(this.input) ? pi : { matched: true, value: t(o ? Wt in s ? s[Wt] : s : this.input, this.input) }; + return new e(this.input, l); + } + when(r, t) { + if (this.state.matched) return this; + let n = !!r(this.input); + return new e(this.input, n ? { matched: true, value: t(this.input, this.input) } : pi); + } + otherwise(r) { + return this.state.matched ? this.state.value : r(this.input); + } + exhaustive() { + if (this.state.matched) return this.state.value; + throw new ci(this.input); + } + run() { + return this.exhaustive(); + } + returnType() { + return this; + } + }; + var Ho = require("node:util"); + var Ju = { warn: Ie("prisma:warn") }; + var Ku = { warn: /* @__PURE__ */ __name(() => !process.env.PRISMA_DISABLE_WARNINGS, "warn") }; + function Jt(e, ...r) { + Ku.warn() && console.warn(`${Ju.warn} ${e}`, ...r); + } + __name(Jt, "Jt"); + var Hu = (0, Ho.promisify)(Ko.default.exec); + var ee = gr("prisma:get-platform"); + var Yu = ["1.0.x", "1.1.x", "3.0.x"]; + async function Yo() { + let e = Ht.default.platform(), r = process.arch; + if (e === "freebsd") { + let s = await Yt("freebsd-version"); + if (s && s.trim().length > 0) { + let l = /^(\d+)\.?/.exec(s); + if (l) return { platform: "freebsd", targetDistro: `freebsd${l[1]}`, arch: r }; + } + } + if (e !== "linux") return { platform: e, arch: r }; + let t = await Zu(), n = await sc(), i = ec({ arch: r, archFromUname: n, familyDistro: t.familyDistro }), { libssl: o } = await rc(i); + return { platform: "linux", libssl: o, arch: r, archFromUname: n, ...t }; + } + __name(Yo, "Yo"); + function zu(e) { + let r = /^ID="?([^"\n]*)"?$/im, t = /^ID_LIKE="?([^"\n]*)"?$/im, n = r.exec(e), i = n && n[1] && n[1].toLowerCase() || "", o = t.exec(e), s = o && o[1] && o[1].toLowerCase() || "", a = hr({ id: i, idLike: s }).with({ id: "alpine" }, ({ id: l }) => ({ targetDistro: "musl", familyDistro: l, originalDistro: l })).with({ id: "raspbian" }, ({ id: l }) => ({ targetDistro: "arm", familyDistro: "debian", originalDistro: l })).with({ id: "nixos" }, ({ id: l }) => ({ targetDistro: "nixos", originalDistro: l, familyDistro: "nixos" })).with({ id: "debian" }, { id: "ubuntu" }, ({ id: l }) => ({ targetDistro: "debian", familyDistro: "debian", originalDistro: l })).with({ id: "rhel" }, { id: "centos" }, { id: "fedora" }, ({ id: l }) => ({ targetDistro: "rhel", familyDistro: "rhel", originalDistro: l })).when(({ idLike: l }) => l.includes("debian") || l.includes("ubuntu"), ({ id: l }) => ({ targetDistro: "debian", familyDistro: "debian", originalDistro: l })).when(({ idLike: l }) => i === "arch" || l.includes("arch"), ({ id: l }) => ({ targetDistro: "debian", familyDistro: "arch", originalDistro: l })).when(({ idLike: l }) => l.includes("centos") || l.includes("fedora") || l.includes("rhel") || l.includes("suse"), ({ id: l }) => ({ targetDistro: "rhel", familyDistro: "rhel", originalDistro: l })).otherwise(({ id: l }) => ({ targetDistro: void 0, familyDistro: void 0, originalDistro: l })); + return ee(`Found distro info: +${JSON.stringify(a, null, 2)}`), a; + } + __name(zu, "zu"); + async function Zu() { + let e = "/etc/os-release"; + try { + let r = await mi.default.readFile(e, { encoding: "utf-8" }); + return zu(r); + } catch { + return { targetDistro: void 0, familyDistro: void 0, originalDistro: void 0 }; + } + } + __name(Zu, "Zu"); + function Xu(e) { + let r = /^OpenSSL\s(\d+\.\d+)\.\d+/.exec(e); + if (r) { + let t = `${r[1]}.x`; + return zo(t); + } + } + __name(Xu, "Xu"); + function Wo(e) { + let r = /libssl\.so\.(\d)(\.\d)?/.exec(e); + if (r) { + let t = `${r[1]}${r[2] ?? ".0"}.x`; + return zo(t); + } + } + __name(Wo, "Wo"); + function zo(e) { + let r = (() => { + if (Xo(e)) return e; + let t = e.split("."); + return t[1] = "0", t.join("."); + })(); + if (Yu.includes(r)) return r; + } + __name(zo, "zo"); + function ec(e) { + return hr(e).with({ familyDistro: "musl" }, () => (ee('Trying platform-specific paths for "alpine"'), ["/lib", "/usr/lib"])).with({ familyDistro: "debian" }, ({ archFromUname: r }) => (ee('Trying platform-specific paths for "debian" (and "ubuntu")'), [`/usr/lib/${r}-linux-gnu`, `/lib/${r}-linux-gnu`])).with({ familyDistro: "rhel" }, () => (ee('Trying platform-specific paths for "rhel"'), ["/lib64", "/usr/lib64"])).otherwise(({ familyDistro: r, arch: t, archFromUname: n }) => (ee(`Don't know any platform-specific paths for "${r}" on ${t} (${n})`), [])); + } + __name(ec, "ec"); + async function rc(e) { + let r = 'grep -v "libssl.so.0"', t = await Jo(e); + if (t) { + ee(`Found libssl.so file using platform-specific paths: ${t}`); + let o = Wo(t); + if (ee(`The parsed libssl version is: ${o}`), o) return { libssl: o, strategy: "libssl-specific-path" }; + } + ee('Falling back to "ldconfig" and other generic paths'); + let n = await Yt(`ldconfig -p | sed "s/.*=>s*//" | sed "s|.*/||" | grep libssl | sort | ${r}`); + if (n || (n = await Jo(["/lib64", "/usr/lib64", "/lib", "/usr/lib"])), n) { + ee(`Found libssl.so file using "ldconfig" or other generic paths: ${n}`); + let o = Wo(n); + if (ee(`The parsed libssl version is: ${o}`), o) return { libssl: o, strategy: "ldconfig" }; + } + let i = await Yt("openssl version -v"); + if (i) { + ee(`Found openssl binary with version: ${i}`); + let o = Xu(i); + if (ee(`The parsed openssl version is: ${o}`), o) return { libssl: o, strategy: "openssl-binary" }; + } + return ee("Couldn't find any version of libssl or OpenSSL in the system"), {}; + } + __name(rc, "rc"); + async function Jo(e) { + for (let r of e) { + let t = await tc(r); + if (t) return t; + } + } + __name(Jo, "Jo"); + async function tc(e) { + try { + return (await mi.default.readdir(e)).find((t) => t.startsWith("libssl.so.") && !t.startsWith("libssl.so.0")); + } catch (r) { + if (r.code === "ENOENT") return; + throw r; + } + } + __name(tc, "tc"); + async function ir() { + let { binaryTarget: e } = await Zo(); + return e; + } + __name(ir, "ir"); + function nc(e) { + return e.binaryTarget !== void 0; + } + __name(nc, "nc"); + async function fi() { + let { memoized: e, ...r } = await Zo(); + return r; + } + __name(fi, "fi"); + var Kt = {}; + async function Zo() { + if (nc(Kt)) return Promise.resolve({ ...Kt, memoized: true }); + let e = await Yo(), r = ic(e); + return Kt = { ...e, binaryTarget: r }, { ...Kt, memoized: false }; + } + __name(Zo, "Zo"); + function ic(e) { + let { platform: r, arch: t, archFromUname: n, libssl: i, targetDistro: o, familyDistro: s, originalDistro: a } = e; + r === "linux" && !["x64", "arm64"].includes(t) && Jt(`Prisma only officially supports Linux on amd64 (x86_64) and arm64 (aarch64) system architectures (detected "${t}" instead). If you are using your own custom Prisma engines, you can ignore this warning, as long as you've compiled the engines for your system architecture "${n}".`); + let l = "1.1.x"; + if (r === "linux" && i === void 0) { + let c = hr({ familyDistro: s }).with({ familyDistro: "debian" }, () => "Please manually install OpenSSL via `apt-get update -y && apt-get install -y openssl` and try installing Prisma again. If you're running Prisma on Docker, add this command to your Dockerfile, or switch to an image that already has OpenSSL installed.").otherwise(() => "Please manually install OpenSSL and try installing Prisma again."); + Jt(`Prisma failed to detect the libssl/openssl version to use, and may not work as expected. Defaulting to "openssl-${l}". +${c}`); + } + let u = "debian"; + if (r === "linux" && o === void 0 && ee(`Distro is "${a}". Falling back to Prisma engines built for "${u}".`), r === "darwin" && t === "arm64") return "darwin-arm64"; + if (r === "darwin") return "darwin"; + if (r === "win32") return "windows"; + if (r === "freebsd") return o; + if (r === "openbsd") return "openbsd"; + if (r === "netbsd") return "netbsd"; + if (r === "linux" && o === "nixos") return "linux-nixos"; + if (r === "linux" && t === "arm64") return `${o === "musl" ? "linux-musl-arm64" : "linux-arm64"}-openssl-${i || l}`; + if (r === "linux" && t === "arm") return `linux-arm-openssl-${i || l}`; + if (r === "linux" && o === "musl") { + let c = "linux-musl"; + return !i || Xo(i) ? c : `${c}-openssl-${i}`; + } + return r === "linux" && o && i ? `${o}-openssl-${i}` : (r !== "linux" && Jt(`Prisma detected unknown OS "${r}" and may not work as expected. Defaulting to "linux".`), i ? `${u}-openssl-${i}` : o ? `${o}-openssl-${l}` : `${u}-openssl-${l}`); + } + __name(ic, "ic"); + async function oc(e) { + try { + return await e(); + } catch { + return; + } + } + __name(oc, "oc"); + function Yt(e) { + return oc(async () => { + let r = await Hu(e); + return ee(`Command "${e}" successfully returned "${r.stdout}"`), r.stdout; + }); + } + __name(Yt, "Yt"); + async function sc() { + return typeof Ht.default.machine == "function" ? Ht.default.machine() : (await Yt("uname -m"))?.trim(); + } + __name(sc, "sc"); + function Xo(e) { + return e.startsWith("1."); + } + __name(Xo, "Xo"); + var Xt = {}; + tr(Xt, { beep: /* @__PURE__ */ __name(() => kc, "beep"), clearScreen: /* @__PURE__ */ __name(() => Cc, "clearScreen"), clearTerminal: /* @__PURE__ */ __name(() => Ic, "clearTerminal"), cursorBackward: /* @__PURE__ */ __name(() => mc, "cursorBackward"), cursorDown: /* @__PURE__ */ __name(() => pc, "cursorDown"), cursorForward: /* @__PURE__ */ __name(() => dc, "cursorForward"), cursorGetPosition: /* @__PURE__ */ __name(() => hc, "cursorGetPosition"), cursorHide: /* @__PURE__ */ __name(() => Ec, "cursorHide"), cursorLeft: /* @__PURE__ */ __name(() => ts, "cursorLeft"), cursorMove: /* @__PURE__ */ __name(() => cc, "cursorMove"), cursorNextLine: /* @__PURE__ */ __name(() => yc, "cursorNextLine"), cursorPrevLine: /* @__PURE__ */ __name(() => bc, "cursorPrevLine"), cursorRestorePosition: /* @__PURE__ */ __name(() => gc, "cursorRestorePosition"), cursorSavePosition: /* @__PURE__ */ __name(() => fc, "cursorSavePosition"), cursorShow: /* @__PURE__ */ __name(() => wc, "cursorShow"), cursorTo: /* @__PURE__ */ __name(() => uc, "cursorTo"), cursorUp: /* @__PURE__ */ __name(() => rs, "cursorUp"), enterAlternativeScreen: /* @__PURE__ */ __name(() => Dc, "enterAlternativeScreen"), eraseDown: /* @__PURE__ */ __name(() => Tc, "eraseDown"), eraseEndLine: /* @__PURE__ */ __name(() => vc, "eraseEndLine"), eraseLine: /* @__PURE__ */ __name(() => ns, "eraseLine"), eraseLines: /* @__PURE__ */ __name(() => xc, "eraseLines"), eraseScreen: /* @__PURE__ */ __name(() => gi, "eraseScreen"), eraseStartLine: /* @__PURE__ */ __name(() => Pc, "eraseStartLine"), eraseUp: /* @__PURE__ */ __name(() => Sc, "eraseUp"), exitAlternativeScreen: /* @__PURE__ */ __name(() => Oc, "exitAlternativeScreen"), iTerm: /* @__PURE__ */ __name(() => Lc, "iTerm"), image: /* @__PURE__ */ __name(() => Nc, "image"), link: /* @__PURE__ */ __name(() => _c, "link"), scrollDown: /* @__PURE__ */ __name(() => Ac, "scrollDown"), scrollUp: /* @__PURE__ */ __name(() => Rc, "scrollUp") }); + var Zt = O(require("node:process"), 1); + var zt = globalThis.window?.document !== void 0; + var gg = globalThis.process?.versions?.node !== void 0; + var hg = globalThis.process?.versions?.bun !== void 0; + var yg = globalThis.Deno?.version?.deno !== void 0; + var bg = globalThis.process?.versions?.electron !== void 0; + var Eg = globalThis.navigator?.userAgent?.includes("jsdom") === true; + var wg = typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope; + var xg = typeof DedicatedWorkerGlobalScope < "u" && globalThis instanceof DedicatedWorkerGlobalScope; + var vg = typeof SharedWorkerGlobalScope < "u" && globalThis instanceof SharedWorkerGlobalScope; + var Pg = typeof ServiceWorkerGlobalScope < "u" && globalThis instanceof ServiceWorkerGlobalScope; + var Xr = globalThis.navigator?.userAgentData?.platform; + var Tg = Xr === "macOS" || globalThis.navigator?.platform === "MacIntel" || globalThis.navigator?.userAgent?.includes(" Mac ") === true || globalThis.process?.platform === "darwin"; + var Sg = Xr === "Windows" || globalThis.navigator?.platform === "Win32" || globalThis.process?.platform === "win32"; + var Rg = Xr === "Linux" || globalThis.navigator?.platform?.startsWith("Linux") === true || globalThis.navigator?.userAgent?.includes(" Linux ") === true || globalThis.process?.platform === "linux"; + var Ag = Xr === "iOS" || globalThis.navigator?.platform === "MacIntel" && globalThis.navigator?.maxTouchPoints > 1 || /iPad|iPhone|iPod/.test(globalThis.navigator?.platform); + var Cg = Xr === "Android" || globalThis.navigator?.platform === "Android" || globalThis.navigator?.userAgent?.includes(" Android ") === true || globalThis.process?.platform === "android"; + var C = "\x1B["; + var rt = "\x1B]"; + var yr = "\x07"; + var et = ";"; + var es = !zt && Zt.default.env.TERM_PROGRAM === "Apple_Terminal"; + var ac = !zt && Zt.default.platform === "win32"; + var lc = zt ? () => { + throw new Error("`process.cwd()` only works in Node.js, not the browser."); + } : Zt.default.cwd; + var uc = /* @__PURE__ */ __name((e, r) => { + if (typeof e != "number") throw new TypeError("The `x` argument is required"); + return typeof r != "number" ? C + (e + 1) + "G" : C + (r + 1) + et + (e + 1) + "H"; + }, "uc"); + var cc = /* @__PURE__ */ __name((e, r) => { + if (typeof e != "number") throw new TypeError("The `x` argument is required"); + let t = ""; + return e < 0 ? t += C + -e + "D" : e > 0 && (t += C + e + "C"), r < 0 ? t += C + -r + "A" : r > 0 && (t += C + r + "B"), t; + }, "cc"); + var rs = /* @__PURE__ */ __name((e = 1) => C + e + "A", "rs"); + var pc = /* @__PURE__ */ __name((e = 1) => C + e + "B", "pc"); + var dc = /* @__PURE__ */ __name((e = 1) => C + e + "C", "dc"); + var mc = /* @__PURE__ */ __name((e = 1) => C + e + "D", "mc"); + var ts = C + "G"; + var fc = es ? "\x1B7" : C + "s"; + var gc = es ? "\x1B8" : C + "u"; + var hc = C + "6n"; + var yc = C + "E"; + var bc = C + "F"; + var Ec = C + "?25l"; + var wc = C + "?25h"; + var xc = /* @__PURE__ */ __name((e) => { + let r = ""; + for (let t = 0; t < e; t++) r += ns + (t < e - 1 ? rs() : ""); + return e && (r += ts), r; + }, "xc"); + var vc = C + "K"; + var Pc = C + "1K"; + var ns = C + "2K"; + var Tc = C + "J"; + var Sc = C + "1J"; + var gi = C + "2J"; + var Rc = C + "S"; + var Ac = C + "T"; + var Cc = "\x1Bc"; + var Ic = ac ? `${gi}${C}0f` : `${gi}${C}3J${C}H`; + var Dc = C + "?1049h"; + var Oc = C + "?1049l"; + var kc = yr; + var _c = /* @__PURE__ */ __name((e, r) => [rt, "8", et, et, r, yr, e, rt, "8", et, et, yr].join(""), "_c"); + var Nc = /* @__PURE__ */ __name((e, r = {}) => { + let t = `${rt}1337;File=inline=1`; + return r.width && (t += `;width=${r.width}`), r.height && (t += `;height=${r.height}`), r.preserveAspectRatio === false && (t += ";preserveAspectRatio=0"), t + ":" + Buffer.from(e).toString("base64") + yr; + }, "Nc"); + var Lc = { setCwd: /* @__PURE__ */ __name((e = lc()) => `${rt}50;CurrentDir=${e}${yr}`, "setCwd"), annotation(e, r = {}) { + let t = `${rt}1337;`, n = r.x !== void 0, i = r.y !== void 0; + if ((n || i) && !(n && i && r.length !== void 0)) throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined"); + return e = e.replaceAll("|", ""), t += r.isHidden ? "AddHiddenAnnotation=" : "AddAnnotation=", r.length > 0 ? t += (n ? [e, r.length, r.x, r.y] : [r.length, e]).join("|") : t += e, t + yr; + } }; + var en = O(cs(), 1); + function or(e, r, { target: t = "stdout", ...n } = {}) { + return en.default[t] ? Xt.link(e, r) : n.fallback === false ? e : typeof n.fallback == "function" ? n.fallback(e, r) : `${e} (\u200B${r}\u200B)`; + } + __name(or, "or"); + or.isSupported = en.default.stdout; + or.stderr = (e, r, t = {}) => or(e, r, { target: "stderr", ...t }); + or.stderr.isSupported = en.default.stderr; + function wi(e) { + return or(e, e, { fallback: Y }); + } + __name(wi, "wi"); + var Vc = ps(); + var xi = Vc.version; + function Er(e) { + let r = jc(); + return r || (e?.config.engineType === "library" ? "library" : e?.config.engineType === "binary" ? "binary" : e?.config.engineType === "client" ? "client" : Bc()); + } + __name(Er, "Er"); + function jc() { + let e = process.env.PRISMA_CLIENT_ENGINE_TYPE; + return e === "library" ? "library" : e === "binary" ? "binary" : e === "client" ? "client" : void 0; + } + __name(jc, "jc"); + function Bc() { + return "library"; + } + __name(Bc, "Bc"); + function vi(e) { + return e.name === "DriverAdapterError" && typeof e.cause == "object"; + } + __name(vi, "vi"); + function rn(e) { + return { ok: true, value: e, map(r) { + return rn(r(e)); + }, flatMap(r) { + return r(e); + } }; + } + __name(rn, "rn"); + function sr(e) { + return { ok: false, error: e, map() { + return sr(e); + }, flatMap() { + return sr(e); + } }; + } + __name(sr, "sr"); + var ds = N("driver-adapter-utils"); + var Pi = class { + static { + __name(this, "Pi"); + } + registeredErrors = []; + consumeError(r) { + return this.registeredErrors[r]; + } + registerNewError(r) { + let t = 0; + for (; this.registeredErrors[t] !== void 0; ) t++; + return this.registeredErrors[t] = { error: r }, t; + } + }; + var tn = /* @__PURE__ */ __name((e, r = new Pi()) => { + let t = { adapterName: e.adapterName, errorRegistry: r, queryRaw: ke(r, e.queryRaw.bind(e)), executeRaw: ke(r, e.executeRaw.bind(e)), executeScript: ke(r, e.executeScript.bind(e)), dispose: ke(r, e.dispose.bind(e)), provider: e.provider, startTransaction: /* @__PURE__ */ __name(async (...n) => (await ke(r, e.startTransaction.bind(e))(...n)).map((o) => Uc(r, o)), "startTransaction") }; + return e.getConnectionInfo && (t.getConnectionInfo = Gc(r, e.getConnectionInfo.bind(e))), t; + }, "tn"); + var Uc = /* @__PURE__ */ __name((e, r) => ({ adapterName: r.adapterName, provider: r.provider, options: r.options, queryRaw: ke(e, r.queryRaw.bind(r)), executeRaw: ke(e, r.executeRaw.bind(r)), commit: ke(e, r.commit.bind(r)), rollback: ke(e, r.rollback.bind(r)) }), "Uc"); + function ke(e, r) { + return async (...t) => { + try { + return rn(await r(...t)); + } catch (n) { + if (ds("[error@wrapAsync]", n), vi(n)) return sr(n.cause); + let i = e.registerNewError(n); + return sr({ kind: "GenericJs", id: i }); + } + }; + } + __name(ke, "ke"); + function Gc(e, r) { + return (...t) => { + try { + return rn(r(...t)); + } catch (n) { + if (ds("[error@wrapSync]", n), vi(n)) return sr(n.cause); + let i = e.registerNewError(n); + return sr({ kind: "GenericJs", id: i }); + } + }; + } + __name(Gc, "Gc"); + var Wc = O(on()); + var M = O(require("node:path")); + var Jc = O(on()); + var wh = N("prisma:engines"); + function ms() { + return M.default.join(__dirname, "../"); + } + __name(ms, "ms"); + M.default.join(__dirname, "../query-engine-darwin"); + M.default.join(__dirname, "../query-engine-darwin-arm64"); + M.default.join(__dirname, "../query-engine-debian-openssl-1.0.x"); + M.default.join(__dirname, "../query-engine-debian-openssl-1.1.x"); + M.default.join(__dirname, "../query-engine-debian-openssl-3.0.x"); + M.default.join(__dirname, "../query-engine-linux-static-x64"); + M.default.join(__dirname, "../query-engine-linux-static-arm64"); + M.default.join(__dirname, "../query-engine-rhel-openssl-1.0.x"); + M.default.join(__dirname, "../query-engine-rhel-openssl-1.1.x"); + M.default.join(__dirname, "../query-engine-rhel-openssl-3.0.x"); + M.default.join(__dirname, "../libquery_engine-darwin.dylib.node"); + M.default.join(__dirname, "../libquery_engine-darwin-arm64.dylib.node"); + M.default.join(__dirname, "../libquery_engine-debian-openssl-1.0.x.so.node"); + M.default.join(__dirname, "../libquery_engine-debian-openssl-1.1.x.so.node"); + M.default.join(__dirname, "../libquery_engine-debian-openssl-3.0.x.so.node"); + M.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-1.0.x.so.node"); + M.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-1.1.x.so.node"); + M.default.join(__dirname, "../libquery_engine-linux-arm64-openssl-3.0.x.so.node"); + M.default.join(__dirname, "../libquery_engine-linux-musl.so.node"); + M.default.join(__dirname, "../libquery_engine-linux-musl-openssl-3.0.x.so.node"); + M.default.join(__dirname, "../libquery_engine-rhel-openssl-1.0.x.so.node"); + M.default.join(__dirname, "../libquery_engine-rhel-openssl-1.1.x.so.node"); + M.default.join(__dirname, "../libquery_engine-rhel-openssl-3.0.x.so.node"); + M.default.join(__dirname, "../query_engine-windows.dll.node"); + var Si = O(require("node:fs")); + var fs = gr("chmodPlusX"); + function Ri(e) { + if (process.platform === "win32") return; + let r = Si.default.statSync(e), t = r.mode | 64 | 8 | 1; + if (r.mode === t) { + fs(`Execution permissions of ${e} are fine`); + return; + } + let n = t.toString(8).slice(-3); + fs(`Have to call chmodPlusX on ${e}`), Si.default.chmodSync(e, n); + } + __name(Ri, "Ri"); + function Ai(e) { + let r = e.e, t = /* @__PURE__ */ __name((a) => `Prisma cannot find the required \`${a}\` system library in your system`, "t"), n = r.message.includes("cannot open shared object file"), i = `Please refer to the documentation about Prisma's system requirements: ${wi("https://pris.ly/d/system-requirements")}`, o = `Unable to require(\`${Ce(e.id)}\`).`, s = hr({ message: r.message, code: r.code }).with({ code: "ENOENT" }, () => "File does not exist.").when(({ message: a }) => n && a.includes("libz"), () => `${t("libz")}. Please install it and try again.`).when(({ message: a }) => n && a.includes("libgcc_s"), () => `${t("libgcc_s")}. Please install it and try again.`).when(({ message: a }) => n && a.includes("libssl"), () => { + let a = e.platformInfo.libssl ? `openssl-${e.platformInfo.libssl}` : "openssl"; + return `${t("libssl")}. Please install ${a} and try again.`; + }).when(({ message: a }) => a.includes("GLIBC"), () => `Prisma has detected an incompatible version of the \`glibc\` C standard library installed in your system. This probably means your system may be too old to run Prisma. ${i}`).when(({ message: a }) => e.platformInfo.platform === "linux" && a.includes("symbol not found"), () => `The Prisma engines are not compatible with your system ${e.platformInfo.originalDistro} on (${e.platformInfo.archFromUname}) which uses the \`${e.platformInfo.binaryTarget}\` binaryTarget by default. ${i}`).otherwise(() => `The Prisma engines do not seem to be compatible with your system. ${i}`); + return `${o} +${s} + +Details: ${r.message}`; + } + __name(Ai, "Ai"); + var ys = O(hs(), 1); + function Ci(e) { + let r = (0, ys.default)(e); + if (r === 0) return e; + let t = new RegExp(`^[ \\t]{${r}}`, "gm"); + return e.replace(t, ""); + } + __name(Ci, "Ci"); + var bs = "prisma+postgres"; + var sn = `${bs}:`; + function an(e) { + return e?.toString().startsWith(`${sn}//`) ?? false; + } + __name(an, "an"); + function Ii(e) { + if (!an(e)) return false; + let { host: r } = new URL(e); + return r.includes("localhost") || r.includes("127.0.0.1") || r.includes("[::1]"); + } + __name(Ii, "Ii"); + var ws = O(Di()); + function ki(e) { + return String(new Oi(e)); + } + __name(ki, "ki"); + var Oi = class { + static { + __name(this, "Oi"); + } + constructor(r) { + this.config = r; + } + toString() { + let { config: r } = this, t = r.provider.fromEnvVar ? `env("${r.provider.fromEnvVar}")` : r.provider.value, n = JSON.parse(JSON.stringify({ provider: t, binaryTargets: Kc(r.binaryTargets) })); + return `generator ${r.name} { +${(0, ws.default)(Hc(n), 2)} +}`; + } + }; + function Kc(e) { + let r; + if (e.length > 0) { + let t = e.find((n) => n.fromEnvVar !== null); + t ? r = `env("${t.fromEnvVar}")` : r = e.map((n) => n.native ? "native" : n.value); + } else r = void 0; + return r; + } + __name(Kc, "Kc"); + function Hc(e) { + let r = Object.keys(e).reduce((t, n) => Math.max(t, n.length), 0); + return Object.entries(e).map(([t, n]) => `${t.padEnd(r)} = ${Yc(n)}`).join(` +`); + } + __name(Hc, "Hc"); + function Yc(e) { + return JSON.parse(JSON.stringify(e, (r, t) => Array.isArray(t) ? `[${t.map((n) => JSON.stringify(n)).join(", ")}]` : JSON.stringify(t))); + } + __name(Yc, "Yc"); + var nt = {}; + tr(nt, { error: /* @__PURE__ */ __name(() => Xc, "error"), info: /* @__PURE__ */ __name(() => Zc, "info"), log: /* @__PURE__ */ __name(() => zc, "log"), query: /* @__PURE__ */ __name(() => ep, "query"), should: /* @__PURE__ */ __name(() => xs, "should"), tags: /* @__PURE__ */ __name(() => tt, "tags"), warn: /* @__PURE__ */ __name(() => _i, "warn") }); + var tt = { error: ce("prisma:error"), warn: Ie("prisma:warn"), info: De("prisma:info"), query: nr("prisma:query") }; + var xs = { warn: /* @__PURE__ */ __name(() => !process.env.PRISMA_DISABLE_WARNINGS, "warn") }; + function zc(...e) { + console.log(...e); + } + __name(zc, "zc"); + function _i(e, ...r) { + xs.warn() && console.warn(`${tt.warn} ${e}`, ...r); + } + __name(_i, "_i"); + function Zc(e, ...r) { + console.info(`${tt.info} ${e}`, ...r); + } + __name(Zc, "Zc"); + function Xc(e, ...r) { + console.error(`${tt.error} ${e}`, ...r); + } + __name(Xc, "Xc"); + function ep(e, ...r) { + console.log(`${tt.query} ${e}`, ...r); + } + __name(ep, "ep"); + function ln(e, r) { + if (!e) throw new Error(`${r}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`); + } + __name(ln, "ln"); + function ar(e, r) { + throw new Error(r); + } + __name(ar, "ar"); + function Ni({ onlyFirst: e = false } = {}) { + let t = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|"); + return new RegExp(t, e ? void 0 : "g"); + } + __name(Ni, "Ni"); + var rp = Ni(); + function wr(e) { + if (typeof e != "string") throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``); + return e.replace(rp, ""); + } + __name(wr, "wr"); + var it = O(require("node:path")); + function Li(e) { + return it.default.sep === it.default.posix.sep ? e : e.split(it.default.sep).join(it.default.posix.sep); + } + __name(Li, "Li"); + var qi = O(As()); + var un = O(require("node:fs")); + var xr = O(require("node:path")); + function Cs(e) { + let r = e.ignoreProcessEnv ? {} : process.env, t = /* @__PURE__ */ __name((n) => n.match(/(.?\${(?:[a-zA-Z0-9_]+)?})/g)?.reduce(function(o, s) { + let a = /(.?)\${([a-zA-Z0-9_]+)?}/g.exec(s); + if (!a) return o; + let l = a[1], u, c; + if (l === "\\") c = a[0], u = c.replace("\\$", "$"); + else { + let p = a[2]; + c = a[0].substring(l.length), u = Object.hasOwnProperty.call(r, p) ? r[p] : e.parsed[p] || "", u = t(u); + } + return o.replace(c, u); + }, n) ?? n, "t"); + for (let n in e.parsed) { + let i = Object.hasOwnProperty.call(r, n) ? r[n] : e.parsed[n]; + e.parsed[n] = t(i); + } + for (let n in e.parsed) r[n] = e.parsed[n]; + return e; + } + __name(Cs, "Cs"); + var $i = gr("prisma:tryLoadEnv"); + function st({ rootEnvPath: e, schemaEnvPath: r }, t = { conflictCheck: "none" }) { + let n = Is(e); + t.conflictCheck !== "none" && hp(n, r, t.conflictCheck); + let i = null; + return Ds(n?.path, r) || (i = Is(r)), !n && !i && $i("No Environment variables loaded"), i?.dotenvResult.error ? console.error(ce(W("Schema Env Error: ")) + i.dotenvResult.error) : { message: [n?.message, i?.message].filter(Boolean).join(` +`), parsed: { ...n?.dotenvResult?.parsed, ...i?.dotenvResult?.parsed } }; + } + __name(st, "st"); + function hp(e, r, t) { + let n = e?.dotenvResult.parsed, i = !Ds(e?.path, r); + if (n && r && i && un.default.existsSync(r)) { + let o = qi.default.parse(un.default.readFileSync(r)), s = []; + for (let a in o) n[a] === o[a] && s.push(a); + if (s.length > 0) { + let a = xr.default.relative(process.cwd(), e.path), l = xr.default.relative(process.cwd(), r); + if (t === "error") { + let u = `There is a conflict between env var${s.length > 1 ? "s" : ""} in ${Y(a)} and ${Y(l)} +Conflicting env vars: +${s.map((c) => ` ${W(c)}`).join(` +`)} + +We suggest to move the contents of ${Y(l)} to ${Y(a)} to consolidate your env vars. +`; + throw new Error(u); + } else if (t === "warn") { + let u = `Conflict for env var${s.length > 1 ? "s" : ""} ${s.map((c) => W(c)).join(", ")} in ${Y(a)} and ${Y(l)} +Env vars from ${Y(l)} overwrite the ones from ${Y(a)} + `; + console.warn(`${Ie("warn(prisma)")} ${u}`); + } + } + } + } + __name(hp, "hp"); + function Is(e) { + if (yp(e)) { + $i(`Environment variables loaded from ${e}`); + let r = qi.default.config({ path: e, debug: process.env.DOTENV_CONFIG_DEBUG ? true : void 0 }); + return { dotenvResult: Cs(r), message: Ce(`Environment variables loaded from ${xr.default.relative(process.cwd(), e)}`), path: e }; + } else $i(`Environment variables not found at ${e}`); + return null; + } + __name(Is, "Is"); + function Ds(e, r) { + return e && r && xr.default.resolve(e) === xr.default.resolve(r); + } + __name(Ds, "Ds"); + function yp(e) { + return !!(e && un.default.existsSync(e)); + } + __name(yp, "yp"); + function Vi(e, r) { + return Object.prototype.hasOwnProperty.call(e, r); + } + __name(Vi, "Vi"); + function pn(e, r) { + let t = {}; + for (let n of Object.keys(e)) t[n] = r(e[n], n); + return t; + } + __name(pn, "pn"); + function ji(e, r) { + if (e.length === 0) return; + let t = e[0]; + for (let n = 1; n < e.length; n++) r(t, e[n]) < 0 && (t = e[n]); + return t; + } + __name(ji, "ji"); + function x(e, r) { + Object.defineProperty(e, "name", { value: r, configurable: true }); + } + __name(x, "x"); + var ks = /* @__PURE__ */ new Set(); + var at = /* @__PURE__ */ __name((e, r, ...t) => { + ks.has(e) || (ks.add(e), _i(r, ...t)); + }, "at"); + var P = class e extends Error { + static { + __name(this, "e"); + } + clientVersion; + errorCode; + retryable; + constructor(r, t, n) { + super(r), this.name = "PrismaClientInitializationError", this.clientVersion = t, this.errorCode = n, Error.captureStackTrace(e); + } + get [Symbol.toStringTag]() { + return "PrismaClientInitializationError"; + } + }; + x(P, "PrismaClientInitializationError"); + var z = class extends Error { + static { + __name(this, "z"); + } + code; + meta; + clientVersion; + batchRequestIdx; + constructor(r, { code: t, clientVersion: n, meta: i, batchRequestIdx: o }) { + super(r), this.name = "PrismaClientKnownRequestError", this.code = t, this.clientVersion = n, this.meta = i, Object.defineProperty(this, "batchRequestIdx", { value: o, enumerable: false, writable: true }); + } + get [Symbol.toStringTag]() { + return "PrismaClientKnownRequestError"; + } + }; + x(z, "PrismaClientKnownRequestError"); + var ae = class extends Error { + static { + __name(this, "ae"); + } + clientVersion; + constructor(r, t) { + super(r), this.name = "PrismaClientRustPanicError", this.clientVersion = t; + } + get [Symbol.toStringTag]() { + return "PrismaClientRustPanicError"; + } + }; + x(ae, "PrismaClientRustPanicError"); + var V = class extends Error { + static { + __name(this, "V"); + } + clientVersion; + batchRequestIdx; + constructor(r, { clientVersion: t, batchRequestIdx: n }) { + super(r), this.name = "PrismaClientUnknownRequestError", this.clientVersion = t, Object.defineProperty(this, "batchRequestIdx", { value: n, writable: true, enumerable: false }); + } + get [Symbol.toStringTag]() { + return "PrismaClientUnknownRequestError"; + } + }; + x(V, "PrismaClientUnknownRequestError"); + var Z = class extends Error { + static { + __name(this, "Z"); + } + name = "PrismaClientValidationError"; + clientVersion; + constructor(r, { clientVersion: t }) { + super(r), this.clientVersion = t; + } + get [Symbol.toStringTag]() { + return "PrismaClientValidationError"; + } + }; + x(Z, "PrismaClientValidationError"); + var we = class { + static { + __name(this, "we"); + } + _map = /* @__PURE__ */ new Map(); + get(r) { + return this._map.get(r)?.value; + } + set(r, t) { + this._map.set(r, { value: t }); + } + getOrCreate(r, t) { + let n = this._map.get(r); + if (n) return n.value; + let i = t(); + return this.set(r, i), i; + } + }; + function We(e) { + return e.substring(0, 1).toLowerCase() + e.substring(1); + } + __name(We, "We"); + function _s(e, r) { + let t = {}; + for (let n of e) { + let i = n[r]; + t[i] = n; + } + return t; + } + __name(_s, "_s"); + function lt(e) { + let r; + return { get() { + return r || (r = { value: e() }), r.value; + } }; + } + __name(lt, "lt"); + function Ns(e) { + return { models: Bi(e.models), enums: Bi(e.enums), types: Bi(e.types) }; + } + __name(Ns, "Ns"); + function Bi(e) { + let r = {}; + for (let { name: t, ...n } of e) r[t] = n; + return r; + } + __name(Bi, "Bi"); + function vr(e) { + return e instanceof Date || Object.prototype.toString.call(e) === "[object Date]"; + } + __name(vr, "vr"); + function mn(e) { + return e.toString() !== "Invalid Date"; + } + __name(mn, "mn"); + var Pr = 9e15; + var Ye = 1e9; + var Ui = "0123456789abcdef"; + var hn = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058"; + var yn = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789"; + var Gi = { precision: 20, rounding: 4, modulo: 1, toExpNeg: -7, toExpPos: 21, minE: -Pr, maxE: Pr, crypto: false }; + var $s; + var Ne; + var w = true; + var En = "[DecimalError] "; + var He = En + "Invalid argument: "; + var qs = En + "Precision limit exceeded"; + var Vs = En + "crypto unavailable"; + var js = "[object Decimal]"; + var X = Math.floor; + var U = Math.pow; + var bp = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i; + var Ep = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i; + var wp = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i; + var Bs = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i; + var fe = 1e7; + var E = 7; + var xp = 9007199254740991; + var vp = hn.length - 1; + var Qi = yn.length - 1; + var m = { toStringTag: js }; + m.absoluteValue = m.abs = function() { + var e = new this.constructor(this); + return e.s < 0 && (e.s = 1), y(e); + }; + m.ceil = function() { + return y(new this.constructor(this), this.e + 1, 2); + }; + m.clampedTo = m.clamp = function(e, r) { + var t, n = this, i = n.constructor; + if (e = new i(e), r = new i(r), !e.s || !r.s) return new i(NaN); + if (e.gt(r)) throw Error(He + r); + return t = n.cmp(e), t < 0 ? e : n.cmp(r) > 0 ? r : new i(n); + }; + m.comparedTo = m.cmp = function(e) { + var r, t, n, i, o = this, s = o.d, a = (e = new o.constructor(e)).d, l = o.s, u = e.s; + if (!s || !a) return !l || !u ? NaN : l !== u ? l : s === a ? 0 : !s ^ l < 0 ? 1 : -1; + if (!s[0] || !a[0]) return s[0] ? l : a[0] ? -u : 0; + if (l !== u) return l; + if (o.e !== e.e) return o.e > e.e ^ l < 0 ? 1 : -1; + for (n = s.length, i = a.length, r = 0, t = n < i ? n : i; r < t; ++r) if (s[r] !== a[r]) return s[r] > a[r] ^ l < 0 ? 1 : -1; + return n === i ? 0 : n > i ^ l < 0 ? 1 : -1; + }; + m.cosine = m.cos = function() { + var e, r, t = this, n = t.constructor; + return t.d ? t.d[0] ? (e = n.precision, r = n.rounding, n.precision = e + Math.max(t.e, t.sd()) + E, n.rounding = 1, t = Pp(n, Js(n, t)), n.precision = e, n.rounding = r, y(Ne == 2 || Ne == 3 ? t.neg() : t, e, r, true)) : new n(1) : new n(NaN); + }; + m.cubeRoot = m.cbrt = function() { + var e, r, t, n, i, o, s, a, l, u, c = this, p = c.constructor; + if (!c.isFinite() || c.isZero()) return new p(c); + for (w = false, o = c.s * U(c.s * c, 1 / 3), !o || Math.abs(o) == 1 / 0 ? (t = J(c.d), e = c.e, (o = (e - t.length + 1) % 3) && (t += o == 1 || o == -2 ? "0" : "00"), o = U(t, 1 / 3), e = X((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2)), o == 1 / 0 ? t = "5e" + e : (t = o.toExponential(), t = t.slice(0, t.indexOf("e") + 1) + e), n = new p(t), n.s = c.s) : n = new p(o.toString()), s = (e = p.precision) + 3; ; ) if (a = n, l = a.times(a).times(a), u = l.plus(c), n = L(u.plus(c).times(a), u.plus(l), s + 2, 1), J(a.d).slice(0, s) === (t = J(n.d)).slice(0, s)) if (t = t.slice(s - 3, s + 1), t == "9999" || !i && t == "4999") { + if (!i && (y(a, e + 1, 0), a.times(a).times(a).eq(c))) { + n = a; + break; + } + s += 4, i = 1; + } else { + (!+t || !+t.slice(1) && t.charAt(0) == "5") && (y(n, e + 1, 1), r = !n.times(n).times(n).eq(c)); + break; + } + return w = true, y(n, e, p.rounding, r); + }; + m.decimalPlaces = m.dp = function() { + var e, r = this.d, t = NaN; + if (r) { + if (e = r.length - 1, t = (e - X(this.e / E)) * E, e = r[e], e) for (; e % 10 == 0; e /= 10) t--; + t < 0 && (t = 0); + } + return t; + }; + m.dividedBy = m.div = function(e) { + return L(this, new this.constructor(e)); + }; + m.dividedToIntegerBy = m.divToInt = function(e) { + var r = this, t = r.constructor; + return y(L(r, new t(e), 0, 1, 1), t.precision, t.rounding); + }; + m.equals = m.eq = function(e) { + return this.cmp(e) === 0; + }; + m.floor = function() { + return y(new this.constructor(this), this.e + 1, 3); + }; + m.greaterThan = m.gt = function(e) { + return this.cmp(e) > 0; + }; + m.greaterThanOrEqualTo = m.gte = function(e) { + var r = this.cmp(e); + return r == 1 || r === 0; + }; + m.hyperbolicCosine = m.cosh = function() { + var e, r, t, n, i, o = this, s = o.constructor, a = new s(1); + if (!o.isFinite()) return new s(o.s ? 1 / 0 : NaN); + if (o.isZero()) return a; + t = s.precision, n = s.rounding, s.precision = t + Math.max(o.e, o.sd()) + 4, s.rounding = 1, i = o.d.length, i < 32 ? (e = Math.ceil(i / 3), r = (1 / xn(4, e)).toString()) : (e = 16, r = "2.3283064365386962890625e-10"), o = Tr(s, 1, o.times(r), new s(1), true); + for (var l, u = e, c = new s(8); u--; ) l = o.times(o), o = a.minus(l.times(c.minus(l.times(c)))); + return y(o, s.precision = t, s.rounding = n, true); + }; + m.hyperbolicSine = m.sinh = function() { + var e, r, t, n, i = this, o = i.constructor; + if (!i.isFinite() || i.isZero()) return new o(i); + if (r = o.precision, t = o.rounding, o.precision = r + Math.max(i.e, i.sd()) + 4, o.rounding = 1, n = i.d.length, n < 3) i = Tr(o, 2, i, i, true); + else { + e = 1.4 * Math.sqrt(n), e = e > 16 ? 16 : e | 0, i = i.times(1 / xn(5, e)), i = Tr(o, 2, i, i, true); + for (var s, a = new o(5), l = new o(16), u = new o(20); e--; ) s = i.times(i), i = i.times(a.plus(s.times(l.times(s).plus(u)))); + } + return o.precision = r, o.rounding = t, y(i, r, t, true); + }; + m.hyperbolicTangent = m.tanh = function() { + var e, r, t = this, n = t.constructor; + return t.isFinite() ? t.isZero() ? new n(t) : (e = n.precision, r = n.rounding, n.precision = e + 7, n.rounding = 1, L(t.sinh(), t.cosh(), n.precision = e, n.rounding = r)) : new n(t.s); + }; + m.inverseCosine = m.acos = function() { + var e = this, r = e.constructor, t = e.abs().cmp(1), n = r.precision, i = r.rounding; + return t !== -1 ? t === 0 ? e.isNeg() ? xe(r, n, i) : new r(0) : new r(NaN) : e.isZero() ? xe(r, n + 4, i).times(0.5) : (r.precision = n + 6, r.rounding = 1, e = new r(1).minus(e).div(e.plus(1)).sqrt().atan(), r.precision = n, r.rounding = i, e.times(2)); + }; + m.inverseHyperbolicCosine = m.acosh = function() { + var e, r, t = this, n = t.constructor; + return t.lte(1) ? new n(t.eq(1) ? 0 : NaN) : t.isFinite() ? (e = n.precision, r = n.rounding, n.precision = e + Math.max(Math.abs(t.e), t.sd()) + 4, n.rounding = 1, w = false, t = t.times(t).minus(1).sqrt().plus(t), w = true, n.precision = e, n.rounding = r, t.ln()) : new n(t); + }; + m.inverseHyperbolicSine = m.asinh = function() { + var e, r, t = this, n = t.constructor; + return !t.isFinite() || t.isZero() ? new n(t) : (e = n.precision, r = n.rounding, n.precision = e + 2 * Math.max(Math.abs(t.e), t.sd()) + 6, n.rounding = 1, w = false, t = t.times(t).plus(1).sqrt().plus(t), w = true, n.precision = e, n.rounding = r, t.ln()); + }; + m.inverseHyperbolicTangent = m.atanh = function() { + var e, r, t, n, i = this, o = i.constructor; + return i.isFinite() ? i.e >= 0 ? new o(i.abs().eq(1) ? i.s / 0 : i.isZero() ? i : NaN) : (e = o.precision, r = o.rounding, n = i.sd(), Math.max(n, e) < 2 * -i.e - 1 ? y(new o(i), e, r, true) : (o.precision = t = n - i.e, i = L(i.plus(1), new o(1).minus(i), t + e, 1), o.precision = e + 4, o.rounding = 1, i = i.ln(), o.precision = e, o.rounding = r, i.times(0.5))) : new o(NaN); + }; + m.inverseSine = m.asin = function() { + var e, r, t, n, i = this, o = i.constructor; + return i.isZero() ? new o(i) : (r = i.abs().cmp(1), t = o.precision, n = o.rounding, r !== -1 ? r === 0 ? (e = xe(o, t + 4, n).times(0.5), e.s = i.s, e) : new o(NaN) : (o.precision = t + 6, o.rounding = 1, i = i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(), o.precision = t, o.rounding = n, i.times(2))); + }; + m.inverseTangent = m.atan = function() { + var e, r, t, n, i, o, s, a, l, u = this, c = u.constructor, p = c.precision, d = c.rounding; + if (u.isFinite()) { + if (u.isZero()) return new c(u); + if (u.abs().eq(1) && p + 4 <= Qi) return s = xe(c, p + 4, d).times(0.25), s.s = u.s, s; + } else { + if (!u.s) return new c(NaN); + if (p + 4 <= Qi) return s = xe(c, p + 4, d).times(0.5), s.s = u.s, s; + } + for (c.precision = a = p + 10, c.rounding = 1, t = Math.min(28, a / E + 2 | 0), e = t; e; --e) u = u.div(u.times(u).plus(1).sqrt().plus(1)); + for (w = false, r = Math.ceil(a / E), n = 1, l = u.times(u), s = new c(u), i = u; e !== -1; ) if (i = i.times(l), o = s.minus(i.div(n += 2)), i = i.times(l), s = o.plus(i.div(n += 2)), s.d[r] !== void 0) for (e = r; s.d[e] === o.d[e] && e--; ) ; + return t && (s = s.times(2 << t - 1)), w = true, y(s, c.precision = p, c.rounding = d, true); + }; + m.isFinite = function() { + return !!this.d; + }; + m.isInteger = m.isInt = function() { + return !!this.d && X(this.e / E) > this.d.length - 2; + }; + m.isNaN = function() { + return !this.s; + }; + m.isNegative = m.isNeg = function() { + return this.s < 0; + }; + m.isPositive = m.isPos = function() { + return this.s > 0; + }; + m.isZero = function() { + return !!this.d && this.d[0] === 0; + }; + m.lessThan = m.lt = function(e) { + return this.cmp(e) < 0; + }; + m.lessThanOrEqualTo = m.lte = function(e) { + return this.cmp(e) < 1; + }; + m.logarithm = m.log = function(e) { + var r, t, n, i, o, s, a, l, u = this, c = u.constructor, p = c.precision, d = c.rounding, f = 5; + if (e == null) e = new c(10), r = true; + else { + if (e = new c(e), t = e.d, e.s < 0 || !t || !t[0] || e.eq(1)) return new c(NaN); + r = e.eq(10); + } + if (t = u.d, u.s < 0 || !t || !t[0] || u.eq(1)) return new c(t && !t[0] ? -1 / 0 : u.s != 1 ? NaN : t ? 0 : 1 / 0); + if (r) if (t.length > 1) o = true; + else { + for (i = t[0]; i % 10 === 0; ) i /= 10; + o = i !== 1; + } + if (w = false, a = p + f, s = Ke(u, a), n = r ? bn(c, a + 10) : Ke(e, a), l = L(s, n, a, 1), ut(l.d, i = p, d)) do + if (a += 10, s = Ke(u, a), n = r ? bn(c, a + 10) : Ke(e, a), l = L(s, n, a, 1), !o) { + +J(l.d).slice(i + 1, i + 15) + 1 == 1e14 && (l = y(l, p + 1, 0)); + break; + } + while (ut(l.d, i += 10, d)); + return w = true, y(l, p, d); + }; + m.minus = m.sub = function(e) { + var r, t, n, i, o, s, a, l, u, c, p, d, f = this, h = f.constructor; + if (e = new h(e), !f.d || !e.d) return !f.s || !e.s ? e = new h(NaN) : f.d ? e.s = -e.s : e = new h(e.d || f.s !== e.s ? f : NaN), e; + if (f.s != e.s) return e.s = -e.s, f.plus(e); + if (u = f.d, d = e.d, a = h.precision, l = h.rounding, !u[0] || !d[0]) { + if (d[0]) e.s = -e.s; + else if (u[0]) e = new h(f); + else return new h(l === 3 ? -0 : 0); + return w ? y(e, a, l) : e; + } + if (t = X(e.e / E), c = X(f.e / E), u = u.slice(), o = c - t, o) { + for (p = o < 0, p ? (r = u, o = -o, s = d.length) : (r = d, t = c, s = u.length), n = Math.max(Math.ceil(a / E), s) + 2, o > n && (o = n, r.length = 1), r.reverse(), n = o; n--; ) r.push(0); + r.reverse(); + } else { + for (n = u.length, s = d.length, p = n < s, p && (s = n), n = 0; n < s; n++) if (u[n] != d[n]) { + p = u[n] < d[n]; + break; + } + o = 0; + } + for (p && (r = u, u = d, d = r, e.s = -e.s), s = u.length, n = d.length - s; n > 0; --n) u[s++] = 0; + for (n = d.length; n > o; ) { + if (u[--n] < d[n]) { + for (i = n; i && u[--i] === 0; ) u[i] = fe - 1; + --u[i], u[n] += fe; + } + u[n] -= d[n]; + } + for (; u[--s] === 0; ) u.pop(); + for (; u[0] === 0; u.shift()) --t; + return u[0] ? (e.d = u, e.e = wn(u, t), w ? y(e, a, l) : e) : new h(l === 3 ? -0 : 0); + }; + m.modulo = m.mod = function(e) { + var r, t = this, n = t.constructor; + return e = new n(e), !t.d || !e.s || e.d && !e.d[0] ? new n(NaN) : !e.d || t.d && !t.d[0] ? y(new n(t), n.precision, n.rounding) : (w = false, n.modulo == 9 ? (r = L(t, e.abs(), 0, 3, 1), r.s *= e.s) : r = L(t, e, 0, n.modulo, 1), r = r.times(e), w = true, t.minus(r)); + }; + m.naturalExponential = m.exp = function() { + return Wi(this); + }; + m.naturalLogarithm = m.ln = function() { + return Ke(this); + }; + m.negated = m.neg = function() { + var e = new this.constructor(this); + return e.s = -e.s, y(e); + }; + m.plus = m.add = function(e) { + var r, t, n, i, o, s, a, l, u, c, p = this, d = p.constructor; + if (e = new d(e), !p.d || !e.d) return !p.s || !e.s ? e = new d(NaN) : p.d || (e = new d(e.d || p.s === e.s ? p : NaN)), e; + if (p.s != e.s) return e.s = -e.s, p.minus(e); + if (u = p.d, c = e.d, a = d.precision, l = d.rounding, !u[0] || !c[0]) return c[0] || (e = new d(p)), w ? y(e, a, l) : e; + if (o = X(p.e / E), n = X(e.e / E), u = u.slice(), i = o - n, i) { + for (i < 0 ? (t = u, i = -i, s = c.length) : (t = c, n = o, s = u.length), o = Math.ceil(a / E), s = o > s ? o + 1 : s + 1, i > s && (i = s, t.length = 1), t.reverse(); i--; ) t.push(0); + t.reverse(); + } + for (s = u.length, i = c.length, s - i < 0 && (i = s, t = c, c = u, u = t), r = 0; i; ) r = (u[--i] = u[i] + c[i] + r) / fe | 0, u[i] %= fe; + for (r && (u.unshift(r), ++n), s = u.length; u[--s] == 0; ) u.pop(); + return e.d = u, e.e = wn(u, n), w ? y(e, a, l) : e; + }; + m.precision = m.sd = function(e) { + var r, t = this; + if (e !== void 0 && e !== !!e && e !== 1 && e !== 0) throw Error(He + e); + return t.d ? (r = Us(t.d), e && t.e + 1 > r && (r = t.e + 1)) : r = NaN, r; + }; + m.round = function() { + var e = this, r = e.constructor; + return y(new r(e), e.e + 1, r.rounding); + }; + m.sine = m.sin = function() { + var e, r, t = this, n = t.constructor; + return t.isFinite() ? t.isZero() ? new n(t) : (e = n.precision, r = n.rounding, n.precision = e + Math.max(t.e, t.sd()) + E, n.rounding = 1, t = Sp(n, Js(n, t)), n.precision = e, n.rounding = r, y(Ne > 2 ? t.neg() : t, e, r, true)) : new n(NaN); + }; + m.squareRoot = m.sqrt = function() { + var e, r, t, n, i, o, s = this, a = s.d, l = s.e, u = s.s, c = s.constructor; + if (u !== 1 || !a || !a[0]) return new c(!u || u < 0 && (!a || a[0]) ? NaN : a ? s : 1 / 0); + for (w = false, u = Math.sqrt(+s), u == 0 || u == 1 / 0 ? (r = J(a), (r.length + l) % 2 == 0 && (r += "0"), u = Math.sqrt(r), l = X((l + 1) / 2) - (l < 0 || l % 2), u == 1 / 0 ? r = "5e" + l : (r = u.toExponential(), r = r.slice(0, r.indexOf("e") + 1) + l), n = new c(r)) : n = new c(u.toString()), t = (l = c.precision) + 3; ; ) if (o = n, n = o.plus(L(s, o, t + 2, 1)).times(0.5), J(o.d).slice(0, t) === (r = J(n.d)).slice(0, t)) if (r = r.slice(t - 3, t + 1), r == "9999" || !i && r == "4999") { + if (!i && (y(o, l + 1, 0), o.times(o).eq(s))) { + n = o; + break; + } + t += 4, i = 1; + } else { + (!+r || !+r.slice(1) && r.charAt(0) == "5") && (y(n, l + 1, 1), e = !n.times(n).eq(s)); + break; + } + return w = true, y(n, l, c.rounding, e); + }; + m.tangent = m.tan = function() { + var e, r, t = this, n = t.constructor; + return t.isFinite() ? t.isZero() ? new n(t) : (e = n.precision, r = n.rounding, n.precision = e + 10, n.rounding = 1, t = t.sin(), t.s = 1, t = L(t, new n(1).minus(t.times(t)).sqrt(), e + 10, 0), n.precision = e, n.rounding = r, y(Ne == 2 || Ne == 4 ? t.neg() : t, e, r, true)) : new n(NaN); + }; + m.times = m.mul = function(e) { + var r, t, n, i, o, s, a, l, u, c = this, p = c.constructor, d = c.d, f = (e = new p(e)).d; + if (e.s *= c.s, !d || !d[0] || !f || !f[0]) return new p(!e.s || d && !d[0] && !f || f && !f[0] && !d ? NaN : !d || !f ? e.s / 0 : e.s * 0); + for (t = X(c.e / E) + X(e.e / E), l = d.length, u = f.length, l < u && (o = d, d = f, f = o, s = l, l = u, u = s), o = [], s = l + u, n = s; n--; ) o.push(0); + for (n = u; --n >= 0; ) { + for (r = 0, i = l + n; i > n; ) a = o[i] + f[n] * d[i - n - 1] + r, o[i--] = a % fe | 0, r = a / fe | 0; + o[i] = (o[i] + r) % fe | 0; + } + for (; !o[--s]; ) o.pop(); + return r ? ++t : o.shift(), e.d = o, e.e = wn(o, t), w ? y(e, p.precision, p.rounding) : e; + }; + m.toBinary = function(e, r) { + return Ji(this, 2, e, r); + }; + m.toDecimalPlaces = m.toDP = function(e, r) { + var t = this, n = t.constructor; + return t = new n(t), e === void 0 ? t : (ne(e, 0, Ye), r === void 0 ? r = n.rounding : ne(r, 0, 8), y(t, e + t.e + 1, r)); + }; + m.toExponential = function(e, r) { + var t, n = this, i = n.constructor; + return e === void 0 ? t = ve(n, true) : (ne(e, 0, Ye), r === void 0 ? r = i.rounding : ne(r, 0, 8), n = y(new i(n), e + 1, r), t = ve(n, true, e + 1)), n.isNeg() && !n.isZero() ? "-" + t : t; + }; + m.toFixed = function(e, r) { + var t, n, i = this, o = i.constructor; + return e === void 0 ? t = ve(i) : (ne(e, 0, Ye), r === void 0 ? r = o.rounding : ne(r, 0, 8), n = y(new o(i), e + i.e + 1, r), t = ve(n, false, e + n.e + 1)), i.isNeg() && !i.isZero() ? "-" + t : t; + }; + m.toFraction = function(e) { + var r, t, n, i, o, s, a, l, u, c, p, d, f = this, h = f.d, g = f.constructor; + if (!h) return new g(f); + if (u = t = new g(1), n = l = new g(0), r = new g(n), o = r.e = Us(h) - f.e - 1, s = o % E, r.d[0] = U(10, s < 0 ? E + s : s), e == null) e = o > 0 ? r : u; + else { + if (a = new g(e), !a.isInt() || a.lt(u)) throw Error(He + a); + e = a.gt(r) ? o > 0 ? r : u : a; + } + for (w = false, a = new g(J(h)), c = g.precision, g.precision = o = h.length * E * 2; p = L(a, r, 0, 1, 1), i = t.plus(p.times(n)), i.cmp(e) != 1; ) t = n, n = i, i = u, u = l.plus(p.times(i)), l = i, i = r, r = a.minus(p.times(i)), a = i; + return i = L(e.minus(t), n, 0, 1, 1), l = l.plus(i.times(u)), t = t.plus(i.times(n)), l.s = u.s = f.s, d = L(u, n, o, 1).minus(f).abs().cmp(L(l, t, o, 1).minus(f).abs()) < 1 ? [u, n] : [l, t], g.precision = c, w = true, d; + }; + m.toHexadecimal = m.toHex = function(e, r) { + return Ji(this, 16, e, r); + }; + m.toNearest = function(e, r) { + var t = this, n = t.constructor; + if (t = new n(t), e == null) { + if (!t.d) return t; + e = new n(1), r = n.rounding; + } else { + if (e = new n(e), r === void 0 ? r = n.rounding : ne(r, 0, 8), !t.d) return e.s ? t : e; + if (!e.d) return e.s && (e.s = t.s), e; + } + return e.d[0] ? (w = false, t = L(t, e, 0, r, 1).times(e), w = true, y(t)) : (e.s = t.s, t = e), t; + }; + m.toNumber = function() { + return +this; + }; + m.toOctal = function(e, r) { + return Ji(this, 8, e, r); + }; + m.toPower = m.pow = function(e) { + var r, t, n, i, o, s, a = this, l = a.constructor, u = +(e = new l(e)); + if (!a.d || !e.d || !a.d[0] || !e.d[0]) return new l(U(+a, u)); + if (a = new l(a), a.eq(1)) return a; + if (n = l.precision, o = l.rounding, e.eq(1)) return y(a, n, o); + if (r = X(e.e / E), r >= e.d.length - 1 && (t = u < 0 ? -u : u) <= xp) return i = Gs(l, a, t, n), e.s < 0 ? new l(1).div(i) : y(i, n, o); + if (s = a.s, s < 0) { + if (r < e.d.length - 1) return new l(NaN); + if ((e.d[r] & 1) == 0 && (s = 1), a.e == 0 && a.d[0] == 1 && a.d.length == 1) return a.s = s, a; + } + return t = U(+a, u), r = t == 0 || !isFinite(t) ? X(u * (Math.log("0." + J(a.d)) / Math.LN10 + a.e + 1)) : new l(t + "").e, r > l.maxE + 1 || r < l.minE - 1 ? new l(r > 0 ? s / 0 : 0) : (w = false, l.rounding = a.s = 1, t = Math.min(12, (r + "").length), i = Wi(e.times(Ke(a, n + t)), n), i.d && (i = y(i, n + 5, 1), ut(i.d, n, o) && (r = n + 10, i = y(Wi(e.times(Ke(a, r + t)), r), r + 5, 1), +J(i.d).slice(n + 1, n + 15) + 1 == 1e14 && (i = y(i, n + 1, 0)))), i.s = s, w = true, l.rounding = o, y(i, n, o)); + }; + m.toPrecision = function(e, r) { + var t, n = this, i = n.constructor; + return e === void 0 ? t = ve(n, n.e <= i.toExpNeg || n.e >= i.toExpPos) : (ne(e, 1, Ye), r === void 0 ? r = i.rounding : ne(r, 0, 8), n = y(new i(n), e, r), t = ve(n, e <= n.e || n.e <= i.toExpNeg, e)), n.isNeg() && !n.isZero() ? "-" + t : t; + }; + m.toSignificantDigits = m.toSD = function(e, r) { + var t = this, n = t.constructor; + return e === void 0 ? (e = n.precision, r = n.rounding) : (ne(e, 1, Ye), r === void 0 ? r = n.rounding : ne(r, 0, 8)), y(new n(t), e, r); + }; + m.toString = function() { + var e = this, r = e.constructor, t = ve(e, e.e <= r.toExpNeg || e.e >= r.toExpPos); + return e.isNeg() && !e.isZero() ? "-" + t : t; + }; + m.truncated = m.trunc = function() { + return y(new this.constructor(this), this.e + 1, 1); + }; + m.valueOf = m.toJSON = function() { + var e = this, r = e.constructor, t = ve(e, e.e <= r.toExpNeg || e.e >= r.toExpPos); + return e.isNeg() ? "-" + t : t; + }; + function J(e) { + var r, t, n, i = e.length - 1, o = "", s = e[0]; + if (i > 0) { + for (o += s, r = 1; r < i; r++) n = e[r] + "", t = E - n.length, t && (o += Je(t)), o += n; + s = e[r], n = s + "", t = E - n.length, t && (o += Je(t)); + } else if (s === 0) return "0"; + for (; s % 10 === 0; ) s /= 10; + return o + s; + } + __name(J, "J"); + function ne(e, r, t) { + if (e !== ~~e || e < r || e > t) throw Error(He + e); + } + __name(ne, "ne"); + function ut(e, r, t, n) { + var i, o, s, a; + for (o = e[0]; o >= 10; o /= 10) --r; + return --r < 0 ? (r += E, i = 0) : (i = Math.ceil((r + 1) / E), r %= E), o = U(10, E - r), a = e[i] % o | 0, n == null ? r < 3 ? (r == 0 ? a = a / 100 | 0 : r == 1 && (a = a / 10 | 0), s = t < 4 && a == 99999 || t > 3 && a == 49999 || a == 5e4 || a == 0) : s = (t < 4 && a + 1 == o || t > 3 && a + 1 == o / 2) && (e[i + 1] / o / 100 | 0) == U(10, r - 2) - 1 || (a == o / 2 || a == 0) && (e[i + 1] / o / 100 | 0) == 0 : r < 4 ? (r == 0 ? a = a / 1e3 | 0 : r == 1 ? a = a / 100 | 0 : r == 2 && (a = a / 10 | 0), s = (n || t < 4) && a == 9999 || !n && t > 3 && a == 4999) : s = ((n || t < 4) && a + 1 == o || !n && t > 3 && a + 1 == o / 2) && (e[i + 1] / o / 1e3 | 0) == U(10, r - 3) - 1, s; + } + __name(ut, "ut"); + function fn(e, r, t) { + for (var n, i = [0], o, s = 0, a = e.length; s < a; ) { + for (o = i.length; o--; ) i[o] *= r; + for (i[0] += Ui.indexOf(e.charAt(s++)), n = 0; n < i.length; n++) i[n] > t - 1 && (i[n + 1] === void 0 && (i[n + 1] = 0), i[n + 1] += i[n] / t | 0, i[n] %= t); + } + return i.reverse(); + } + __name(fn, "fn"); + function Pp(e, r) { + var t, n, i; + if (r.isZero()) return r; + n = r.d.length, n < 32 ? (t = Math.ceil(n / 3), i = (1 / xn(4, t)).toString()) : (t = 16, i = "2.3283064365386962890625e-10"), e.precision += t, r = Tr(e, 1, r.times(i), new e(1)); + for (var o = t; o--; ) { + var s = r.times(r); + r = s.times(s).minus(s).times(8).plus(1); + } + return e.precision -= t, r; + } + __name(Pp, "Pp"); + var L = /* @__PURE__ */ (function() { + function e(n, i, o) { + var s, a = 0, l = n.length; + for (n = n.slice(); l--; ) s = n[l] * i + a, n[l] = s % o | 0, a = s / o | 0; + return a && n.unshift(a), n; + } + __name(e, "e"); + function r(n, i, o, s) { + var a, l; + if (o != s) l = o > s ? 1 : -1; + else for (a = l = 0; a < o; a++) if (n[a] != i[a]) { + l = n[a] > i[a] ? 1 : -1; + break; + } + return l; + } + __name(r, "r"); + function t(n, i, o, s) { + for (var a = 0; o--; ) n[o] -= a, a = n[o] < i[o] ? 1 : 0, n[o] = a * s + n[o] - i[o]; + for (; !n[0] && n.length > 1; ) n.shift(); + } + __name(t, "t"); + return function(n, i, o, s, a, l) { + var u, c, p, d, f, h, g, I, T, S, b, D, me, se, Kr, j, te, Ae, K, fr, Vt = n.constructor, ti = n.s == i.s ? 1 : -1, H = n.d, k = i.d; + if (!H || !H[0] || !k || !k[0]) return new Vt(!n.s || !i.s || (H ? k && H[0] == k[0] : !k) ? NaN : H && H[0] == 0 || !k ? ti * 0 : ti / 0); + for (l ? (f = 1, c = n.e - i.e) : (l = fe, f = E, c = X(n.e / f) - X(i.e / f)), K = k.length, te = H.length, T = new Vt(ti), S = T.d = [], p = 0; k[p] == (H[p] || 0); p++) ; + if (k[p] > (H[p] || 0) && c--, o == null ? (se = o = Vt.precision, s = Vt.rounding) : a ? se = o + (n.e - i.e) + 1 : se = o, se < 0) S.push(1), h = true; + else { + if (se = se / f + 2 | 0, p = 0, K == 1) { + for (d = 0, k = k[0], se++; (p < te || d) && se--; p++) Kr = d * l + (H[p] || 0), S[p] = Kr / k | 0, d = Kr % k | 0; + h = d || p < te; + } else { + for (d = l / (k[0] + 1) | 0, d > 1 && (k = e(k, d, l), H = e(H, d, l), K = k.length, te = H.length), j = K, b = H.slice(0, K), D = b.length; D < K; ) b[D++] = 0; + fr = k.slice(), fr.unshift(0), Ae = k[0], k[1] >= l / 2 && ++Ae; + do + d = 0, u = r(k, b, K, D), u < 0 ? (me = b[0], K != D && (me = me * l + (b[1] || 0)), d = me / Ae | 0, d > 1 ? (d >= l && (d = l - 1), g = e(k, d, l), I = g.length, D = b.length, u = r(g, b, I, D), u == 1 && (d--, t(g, K < I ? fr : k, I, l))) : (d == 0 && (u = d = 1), g = k.slice()), I = g.length, I < D && g.unshift(0), t(b, g, D, l), u == -1 && (D = b.length, u = r(k, b, K, D), u < 1 && (d++, t(b, K < D ? fr : k, D, l))), D = b.length) : u === 0 && (d++, b = [0]), S[p++] = d, u && b[0] ? b[D++] = H[j] || 0 : (b = [H[j]], D = 1); + while ((j++ < te || b[0] !== void 0) && se--); + h = b[0] !== void 0; + } + S[0] || S.shift(); + } + if (f == 1) T.e = c, $s = h; + else { + for (p = 1, d = S[0]; d >= 10; d /= 10) p++; + T.e = p + c * f - 1, y(T, a ? o + T.e + 1 : o, s, h); + } + return T; + }; + })(); + function y(e, r, t, n) { + var i, o, s, a, l, u, c, p, d, f = e.constructor; + e: if (r != null) { + if (p = e.d, !p) return e; + for (i = 1, a = p[0]; a >= 10; a /= 10) i++; + if (o = r - i, o < 0) o += E, s = r, c = p[d = 0], l = c / U(10, i - s - 1) % 10 | 0; + else if (d = Math.ceil((o + 1) / E), a = p.length, d >= a) if (n) { + for (; a++ <= d; ) p.push(0); + c = l = 0, i = 1, o %= E, s = o - E + 1; + } else break e; + else { + for (c = a = p[d], i = 1; a >= 10; a /= 10) i++; + o %= E, s = o - E + i, l = s < 0 ? 0 : c / U(10, i - s - 1) % 10 | 0; + } + if (n = n || r < 0 || p[d + 1] !== void 0 || (s < 0 ? c : c % U(10, i - s - 1)), u = t < 4 ? (l || n) && (t == 0 || t == (e.s < 0 ? 3 : 2)) : l > 5 || l == 5 && (t == 4 || n || t == 6 && (o > 0 ? s > 0 ? c / U(10, i - s) : 0 : p[d - 1]) % 10 & 1 || t == (e.s < 0 ? 8 : 7)), r < 1 || !p[0]) return p.length = 0, u ? (r -= e.e + 1, p[0] = U(10, (E - r % E) % E), e.e = -r || 0) : p[0] = e.e = 0, e; + if (o == 0 ? (p.length = d, a = 1, d--) : (p.length = d + 1, a = U(10, E - o), p[d] = s > 0 ? (c / U(10, i - s) % U(10, s) | 0) * a : 0), u) for (; ; ) if (d == 0) { + for (o = 1, s = p[0]; s >= 10; s /= 10) o++; + for (s = p[0] += a, a = 1; s >= 10; s /= 10) a++; + o != a && (e.e++, p[0] == fe && (p[0] = 1)); + break; + } else { + if (p[d] += a, p[d] != fe) break; + p[d--] = 0, a = 1; + } + for (o = p.length; p[--o] === 0; ) p.pop(); + } + return w && (e.e > f.maxE ? (e.d = null, e.e = NaN) : e.e < f.minE && (e.e = 0, e.d = [0])), e; + } + __name(y, "y"); + function ve(e, r, t) { + if (!e.isFinite()) return Ws(e); + var n, i = e.e, o = J(e.d), s = o.length; + return r ? (t && (n = t - s) > 0 ? o = o.charAt(0) + "." + o.slice(1) + Je(n) : s > 1 && (o = o.charAt(0) + "." + o.slice(1)), o = o + (e.e < 0 ? "e" : "e+") + e.e) : i < 0 ? (o = "0." + Je(-i - 1) + o, t && (n = t - s) > 0 && (o += Je(n))) : i >= s ? (o += Je(i + 1 - s), t && (n = t - i - 1) > 0 && (o = o + "." + Je(n))) : ((n = i + 1) < s && (o = o.slice(0, n) + "." + o.slice(n)), t && (n = t - s) > 0 && (i + 1 === s && (o += "."), o += Je(n))), o; + } + __name(ve, "ve"); + function wn(e, r) { + var t = e[0]; + for (r *= E; t >= 10; t /= 10) r++; + return r; + } + __name(wn, "wn"); + function bn(e, r, t) { + if (r > vp) throw w = true, t && (e.precision = t), Error(qs); + return y(new e(hn), r, 1, true); + } + __name(bn, "bn"); + function xe(e, r, t) { + if (r > Qi) throw Error(qs); + return y(new e(yn), r, t, true); + } + __name(xe, "xe"); + function Us(e) { + var r = e.length - 1, t = r * E + 1; + if (r = e[r], r) { + for (; r % 10 == 0; r /= 10) t--; + for (r = e[0]; r >= 10; r /= 10) t++; + } + return t; + } + __name(Us, "Us"); + function Je(e) { + for (var r = ""; e--; ) r += "0"; + return r; + } + __name(Je, "Je"); + function Gs(e, r, t, n) { + var i, o = new e(1), s = Math.ceil(n / E + 4); + for (w = false; ; ) { + if (t % 2 && (o = o.times(r), Fs(o.d, s) && (i = true)), t = X(t / 2), t === 0) { + t = o.d.length - 1, i && o.d[t] === 0 && ++o.d[t]; + break; + } + r = r.times(r), Fs(r.d, s); + } + return w = true, o; + } + __name(Gs, "Gs"); + function Ls(e) { + return e.d[e.d.length - 1] & 1; + } + __name(Ls, "Ls"); + function Qs(e, r, t) { + for (var n, i, o = new e(r[0]), s = 0; ++s < r.length; ) { + if (i = new e(r[s]), !i.s) { + o = i; + break; + } + n = o.cmp(i), (n === t || n === 0 && o.s === t) && (o = i); + } + return o; + } + __name(Qs, "Qs"); + function Wi(e, r) { + var t, n, i, o, s, a, l, u = 0, c = 0, p = 0, d = e.constructor, f = d.rounding, h = d.precision; + if (!e.d || !e.d[0] || e.e > 17) return new d(e.d ? e.d[0] ? e.s < 0 ? 0 : 1 / 0 : 1 : e.s ? e.s < 0 ? 0 : e : NaN); + for (r == null ? (w = false, l = h) : l = r, a = new d(0.03125); e.e > -2; ) e = e.times(a), p += 5; + for (n = Math.log(U(2, p)) / Math.LN10 * 2 + 5 | 0, l += n, t = o = s = new d(1), d.precision = l; ; ) { + if (o = y(o.times(e), l, 1), t = t.times(++c), a = s.plus(L(o, t, l, 1)), J(a.d).slice(0, l) === J(s.d).slice(0, l)) { + for (i = p; i--; ) s = y(s.times(s), l, 1); + if (r == null) if (u < 3 && ut(s.d, l - n, f, u)) d.precision = l += 10, t = o = a = new d(1), c = 0, u++; + else return y(s, d.precision = h, f, w = true); + else return d.precision = h, s; + } + s = a; + } + } + __name(Wi, "Wi"); + function Ke(e, r) { + var t, n, i, o, s, a, l, u, c, p, d, f = 1, h = 10, g = e, I = g.d, T = g.constructor, S = T.rounding, b = T.precision; + if (g.s < 0 || !I || !I[0] || !g.e && I[0] == 1 && I.length == 1) return new T(I && !I[0] ? -1 / 0 : g.s != 1 ? NaN : I ? 0 : g); + if (r == null ? (w = false, c = b) : c = r, T.precision = c += h, t = J(I), n = t.charAt(0), Math.abs(o = g.e) < 15e14) { + for (; n < 7 && n != 1 || n == 1 && t.charAt(1) > 3; ) g = g.times(e), t = J(g.d), n = t.charAt(0), f++; + o = g.e, n > 1 ? (g = new T("0." + t), o++) : g = new T(n + "." + t.slice(1)); + } else return u = bn(T, c + 2, b).times(o + ""), g = Ke(new T(n + "." + t.slice(1)), c - h).plus(u), T.precision = b, r == null ? y(g, b, S, w = true) : g; + for (p = g, l = s = g = L(g.minus(1), g.plus(1), c, 1), d = y(g.times(g), c, 1), i = 3; ; ) { + if (s = y(s.times(d), c, 1), u = l.plus(L(s, new T(i), c, 1)), J(u.d).slice(0, c) === J(l.d).slice(0, c)) if (l = l.times(2), o !== 0 && (l = l.plus(bn(T, c + 2, b).times(o + ""))), l = L(l, new T(f), c, 1), r == null) if (ut(l.d, c - h, S, a)) T.precision = c += h, u = s = g = L(p.minus(1), p.plus(1), c, 1), d = y(g.times(g), c, 1), i = a = 1; + else return y(l, T.precision = b, S, w = true); + else return T.precision = b, l; + l = u, i += 2; + } + } + __name(Ke, "Ke"); + function Ws(e) { + return String(e.s * e.s / 0); + } + __name(Ws, "Ws"); + function gn(e, r) { + var t, n, i; + for ((t = r.indexOf(".")) > -1 && (r = r.replace(".", "")), (n = r.search(/e/i)) > 0 ? (t < 0 && (t = n), t += +r.slice(n + 1), r = r.substring(0, n)) : t < 0 && (t = r.length), n = 0; r.charCodeAt(n) === 48; n++) ; + for (i = r.length; r.charCodeAt(i - 1) === 48; --i) ; + if (r = r.slice(n, i), r) { + if (i -= n, e.e = t = t - n - 1, e.d = [], n = (t + 1) % E, t < 0 && (n += E), n < i) { + for (n && e.d.push(+r.slice(0, n)), i -= E; n < i; ) e.d.push(+r.slice(n, n += E)); + r = r.slice(n), n = E - r.length; + } else n -= i; + for (; n--; ) r += "0"; + e.d.push(+r), w && (e.e > e.constructor.maxE ? (e.d = null, e.e = NaN) : e.e < e.constructor.minE && (e.e = 0, e.d = [0])); + } else e.e = 0, e.d = [0]; + return e; + } + __name(gn, "gn"); + function Tp(e, r) { + var t, n, i, o, s, a, l, u, c; + if (r.indexOf("_") > -1) { + if (r = r.replace(/(\d)_(?=\d)/g, "$1"), Bs.test(r)) return gn(e, r); + } else if (r === "Infinity" || r === "NaN") return +r || (e.s = NaN), e.e = NaN, e.d = null, e; + if (Ep.test(r)) t = 16, r = r.toLowerCase(); + else if (bp.test(r)) t = 2; + else if (wp.test(r)) t = 8; + else throw Error(He + r); + for (o = r.search(/p/i), o > 0 ? (l = +r.slice(o + 1), r = r.substring(2, o)) : r = r.slice(2), o = r.indexOf("."), s = o >= 0, n = e.constructor, s && (r = r.replace(".", ""), a = r.length, o = a - o, i = Gs(n, new n(t), o, o * 2)), u = fn(r, t, fe), c = u.length - 1, o = c; u[o] === 0; --o) u.pop(); + return o < 0 ? new n(e.s * 0) : (e.e = wn(u, c), e.d = u, w = false, s && (e = L(e, i, a * 4)), l && (e = e.times(Math.abs(l) < 54 ? U(2, l) : Le.pow(2, l))), w = true, e); + } + __name(Tp, "Tp"); + function Sp(e, r) { + var t, n = r.d.length; + if (n < 3) return r.isZero() ? r : Tr(e, 2, r, r); + t = 1.4 * Math.sqrt(n), t = t > 16 ? 16 : t | 0, r = r.times(1 / xn(5, t)), r = Tr(e, 2, r, r); + for (var i, o = new e(5), s = new e(16), a = new e(20); t--; ) i = r.times(r), r = r.times(o.plus(i.times(s.times(i).minus(a)))); + return r; + } + __name(Sp, "Sp"); + function Tr(e, r, t, n, i) { + var o, s, a, l, u = 1, c = e.precision, p = Math.ceil(c / E); + for (w = false, l = t.times(t), a = new e(n); ; ) { + if (s = L(a.times(l), new e(r++ * r++), c, 1), a = i ? n.plus(s) : n.minus(s), n = L(s.times(l), new e(r++ * r++), c, 1), s = a.plus(n), s.d[p] !== void 0) { + for (o = p; s.d[o] === a.d[o] && o--; ) ; + if (o == -1) break; + } + o = a, a = n, n = s, s = o, u++; + } + return w = true, s.d.length = p + 1, s; + } + __name(Tr, "Tr"); + function xn(e, r) { + for (var t = e; --r; ) t *= e; + return t; + } + __name(xn, "xn"); + function Js(e, r) { + var t, n = r.s < 0, i = xe(e, e.precision, 1), o = i.times(0.5); + if (r = r.abs(), r.lte(o)) return Ne = n ? 4 : 1, r; + if (t = r.divToInt(i), t.isZero()) Ne = n ? 3 : 2; + else { + if (r = r.minus(t.times(i)), r.lte(o)) return Ne = Ls(t) ? n ? 2 : 3 : n ? 4 : 1, r; + Ne = Ls(t) ? n ? 1 : 4 : n ? 3 : 2; + } + return r.minus(i).abs(); + } + __name(Js, "Js"); + function Ji(e, r, t, n) { + var i, o, s, a, l, u, c, p, d, f = e.constructor, h = t !== void 0; + if (h ? (ne(t, 1, Ye), n === void 0 ? n = f.rounding : ne(n, 0, 8)) : (t = f.precision, n = f.rounding), !e.isFinite()) c = Ws(e); + else { + for (c = ve(e), s = c.indexOf("."), h ? (i = 2, r == 16 ? t = t * 4 - 3 : r == 8 && (t = t * 3 - 2)) : i = r, s >= 0 && (c = c.replace(".", ""), d = new f(1), d.e = c.length - s, d.d = fn(ve(d), 10, i), d.e = d.d.length), p = fn(c, 10, i), o = l = p.length; p[--l] == 0; ) p.pop(); + if (!p[0]) c = h ? "0p+0" : "0"; + else { + if (s < 0 ? o-- : (e = new f(e), e.d = p, e.e = o, e = L(e, d, t, n, 0, i), p = e.d, o = e.e, u = $s), s = p[t], a = i / 2, u = u || p[t + 1] !== void 0, u = n < 4 ? (s !== void 0 || u) && (n === 0 || n === (e.s < 0 ? 3 : 2)) : s > a || s === a && (n === 4 || u || n === 6 && p[t - 1] & 1 || n === (e.s < 0 ? 8 : 7)), p.length = t, u) for (; ++p[--t] > i - 1; ) p[t] = 0, t || (++o, p.unshift(1)); + for (l = p.length; !p[l - 1]; --l) ; + for (s = 0, c = ""; s < l; s++) c += Ui.charAt(p[s]); + if (h) { + if (l > 1) if (r == 16 || r == 8) { + for (s = r == 16 ? 4 : 3, --l; l % s; l++) c += "0"; + for (p = fn(c, i, r), l = p.length; !p[l - 1]; --l) ; + for (s = 1, c = "1."; s < l; s++) c += Ui.charAt(p[s]); + } else c = c.charAt(0) + "." + c.slice(1); + c = c + (o < 0 ? "p" : "p+") + o; + } else if (o < 0) { + for (; ++o; ) c = "0" + c; + c = "0." + c; + } else if (++o > l) for (o -= l; o--; ) c += "0"; + else o < l && (c = c.slice(0, o) + "." + c.slice(o)); + } + c = (r == 16 ? "0x" : r == 2 ? "0b" : r == 8 ? "0o" : "") + c; + } + return e.s < 0 ? "-" + c : c; + } + __name(Ji, "Ji"); + function Fs(e, r) { + if (e.length > r) return e.length = r, true; + } + __name(Fs, "Fs"); + function Rp(e) { + return new this(e).abs(); + } + __name(Rp, "Rp"); + function Ap(e) { + return new this(e).acos(); + } + __name(Ap, "Ap"); + function Cp(e) { + return new this(e).acosh(); + } + __name(Cp, "Cp"); + function Ip(e, r) { + return new this(e).plus(r); + } + __name(Ip, "Ip"); + function Dp(e) { + return new this(e).asin(); + } + __name(Dp, "Dp"); + function Op(e) { + return new this(e).asinh(); + } + __name(Op, "Op"); + function kp(e) { + return new this(e).atan(); + } + __name(kp, "kp"); + function _p(e) { + return new this(e).atanh(); + } + __name(_p, "_p"); + function Np(e, r) { + e = new this(e), r = new this(r); + var t, n = this.precision, i = this.rounding, o = n + 4; + return !e.s || !r.s ? t = new this(NaN) : !e.d && !r.d ? (t = xe(this, o, 1).times(r.s > 0 ? 0.25 : 0.75), t.s = e.s) : !r.d || e.isZero() ? (t = r.s < 0 ? xe(this, n, i) : new this(0), t.s = e.s) : !e.d || r.isZero() ? (t = xe(this, o, 1).times(0.5), t.s = e.s) : r.s < 0 ? (this.precision = o, this.rounding = 1, t = this.atan(L(e, r, o, 1)), r = xe(this, o, 1), this.precision = n, this.rounding = i, t = e.s < 0 ? t.minus(r) : t.plus(r)) : t = this.atan(L(e, r, o, 1)), t; + } + __name(Np, "Np"); + function Lp(e) { + return new this(e).cbrt(); + } + __name(Lp, "Lp"); + function Fp(e) { + return y(e = new this(e), e.e + 1, 2); + } + __name(Fp, "Fp"); + function Mp(e, r, t) { + return new this(e).clamp(r, t); + } + __name(Mp, "Mp"); + function $p(e) { + if (!e || typeof e != "object") throw Error(En + "Object expected"); + var r, t, n, i = e.defaults === true, o = ["precision", 1, Ye, "rounding", 0, 8, "toExpNeg", -Pr, 0, "toExpPos", 0, Pr, "maxE", 0, Pr, "minE", -Pr, 0, "modulo", 0, 9]; + for (r = 0; r < o.length; r += 3) if (t = o[r], i && (this[t] = Gi[t]), (n = e[t]) !== void 0) if (X(n) === n && n >= o[r + 1] && n <= o[r + 2]) this[t] = n; + else throw Error(He + t + ": " + n); + if (t = "crypto", i && (this[t] = Gi[t]), (n = e[t]) !== void 0) if (n === true || n === false || n === 0 || n === 1) if (n) if (typeof crypto < "u" && crypto && (crypto.getRandomValues || crypto.randomBytes)) this[t] = true; + else throw Error(Vs); + else this[t] = false; + else throw Error(He + t + ": " + n); + return this; + } + __name($p, "$p"); + function qp(e) { + return new this(e).cos(); + } + __name(qp, "qp"); + function Vp(e) { + return new this(e).cosh(); + } + __name(Vp, "Vp"); + function Ks(e) { + var r, t, n; + function i(o) { + var s, a, l, u = this; + if (!(u instanceof i)) return new i(o); + if (u.constructor = i, Ms(o)) { + u.s = o.s, w ? !o.d || o.e > i.maxE ? (u.e = NaN, u.d = null) : o.e < i.minE ? (u.e = 0, u.d = [0]) : (u.e = o.e, u.d = o.d.slice()) : (u.e = o.e, u.d = o.d ? o.d.slice() : o.d); + return; + } + if (l = typeof o, l === "number") { + if (o === 0) { + u.s = 1 / o < 0 ? -1 : 1, u.e = 0, u.d = [0]; + return; + } + if (o < 0 ? (o = -o, u.s = -1) : u.s = 1, o === ~~o && o < 1e7) { + for (s = 0, a = o; a >= 10; a /= 10) s++; + w ? s > i.maxE ? (u.e = NaN, u.d = null) : s < i.minE ? (u.e = 0, u.d = [0]) : (u.e = s, u.d = [o]) : (u.e = s, u.d = [o]); + return; + } + if (o * 0 !== 0) { + o || (u.s = NaN), u.e = NaN, u.d = null; + return; + } + return gn(u, o.toString()); + } + if (l === "string") return (a = o.charCodeAt(0)) === 45 ? (o = o.slice(1), u.s = -1) : (a === 43 && (o = o.slice(1)), u.s = 1), Bs.test(o) ? gn(u, o) : Tp(u, o); + if (l === "bigint") return o < 0 ? (o = -o, u.s = -1) : u.s = 1, gn(u, o.toString()); + throw Error(He + o); + } + __name(i, "i"); + if (i.prototype = m, i.ROUND_UP = 0, i.ROUND_DOWN = 1, i.ROUND_CEIL = 2, i.ROUND_FLOOR = 3, i.ROUND_HALF_UP = 4, i.ROUND_HALF_DOWN = 5, i.ROUND_HALF_EVEN = 6, i.ROUND_HALF_CEIL = 7, i.ROUND_HALF_FLOOR = 8, i.EUCLID = 9, i.config = i.set = $p, i.clone = Ks, i.isDecimal = Ms, i.abs = Rp, i.acos = Ap, i.acosh = Cp, i.add = Ip, i.asin = Dp, i.asinh = Op, i.atan = kp, i.atanh = _p, i.atan2 = Np, i.cbrt = Lp, i.ceil = Fp, i.clamp = Mp, i.cos = qp, i.cosh = Vp, i.div = jp, i.exp = Bp, i.floor = Up, i.hypot = Gp, i.ln = Qp, i.log = Wp, i.log10 = Kp, i.log2 = Jp, i.max = Hp, i.min = Yp, i.mod = zp, i.mul = Zp, i.pow = Xp, i.random = ed, i.round = rd, i.sign = td, i.sin = nd, i.sinh = id, i.sqrt = od, i.sub = sd, i.sum = ad, i.tan = ld, i.tanh = ud, i.trunc = cd, e === void 0 && (e = {}), e && e.defaults !== true) for (n = ["precision", "rounding", "toExpNeg", "toExpPos", "maxE", "minE", "modulo", "crypto"], r = 0; r < n.length; ) e.hasOwnProperty(t = n[r++]) || (e[t] = this[t]); + return i.config(e), i; + } + __name(Ks, "Ks"); + function jp(e, r) { + return new this(e).div(r); + } + __name(jp, "jp"); + function Bp(e) { + return new this(e).exp(); + } + __name(Bp, "Bp"); + function Up(e) { + return y(e = new this(e), e.e + 1, 3); + } + __name(Up, "Up"); + function Gp() { + var e, r, t = new this(0); + for (w = false, e = 0; e < arguments.length; ) if (r = new this(arguments[e++]), r.d) t.d && (t = t.plus(r.times(r))); + else { + if (r.s) return w = true, new this(1 / 0); + t = r; + } + return w = true, t.sqrt(); + } + __name(Gp, "Gp"); + function Ms(e) { + return e instanceof Le || e && e.toStringTag === js || false; + } + __name(Ms, "Ms"); + function Qp(e) { + return new this(e).ln(); + } + __name(Qp, "Qp"); + function Wp(e, r) { + return new this(e).log(r); + } + __name(Wp, "Wp"); + function Jp(e) { + return new this(e).log(2); + } + __name(Jp, "Jp"); + function Kp(e) { + return new this(e).log(10); + } + __name(Kp, "Kp"); + function Hp() { + return Qs(this, arguments, -1); + } + __name(Hp, "Hp"); + function Yp() { + return Qs(this, arguments, 1); + } + __name(Yp, "Yp"); + function zp(e, r) { + return new this(e).mod(r); + } + __name(zp, "zp"); + function Zp(e, r) { + return new this(e).mul(r); + } + __name(Zp, "Zp"); + function Xp(e, r) { + return new this(e).pow(r); + } + __name(Xp, "Xp"); + function ed(e) { + var r, t, n, i, o = 0, s = new this(1), a = []; + if (e === void 0 ? e = this.precision : ne(e, 1, Ye), n = Math.ceil(e / E), this.crypto) if (crypto.getRandomValues) for (r = crypto.getRandomValues(new Uint32Array(n)); o < n; ) i = r[o], i >= 429e7 ? r[o] = crypto.getRandomValues(new Uint32Array(1))[0] : a[o++] = i % 1e7; + else if (crypto.randomBytes) { + for (r = crypto.randomBytes(n *= 4); o < n; ) i = r[o] + (r[o + 1] << 8) + (r[o + 2] << 16) + ((r[o + 3] & 127) << 24), i >= 214e7 ? crypto.randomBytes(4).copy(r, o) : (a.push(i % 1e7), o += 4); + o = n / 4; + } else throw Error(Vs); + else for (; o < n; ) a[o++] = Math.random() * 1e7 | 0; + for (n = a[--o], e %= E, n && e && (i = U(10, E - e), a[o] = (n / i | 0) * i); a[o] === 0; o--) a.pop(); + if (o < 0) t = 0, a = [0]; + else { + for (t = -1; a[0] === 0; t -= E) a.shift(); + for (n = 1, i = a[0]; i >= 10; i /= 10) n++; + n < E && (t -= E - n); + } + return s.e = t, s.d = a, s; + } + __name(ed, "ed"); + function rd(e) { + return y(e = new this(e), e.e + 1, this.rounding); + } + __name(rd, "rd"); + function td(e) { + return e = new this(e), e.d ? e.d[0] ? e.s : 0 * e.s : e.s || NaN; + } + __name(td, "td"); + function nd(e) { + return new this(e).sin(); + } + __name(nd, "nd"); + function id(e) { + return new this(e).sinh(); + } + __name(id, "id"); + function od(e) { + return new this(e).sqrt(); + } + __name(od, "od"); + function sd(e, r) { + return new this(e).sub(r); + } + __name(sd, "sd"); + function ad() { + var e = 0, r = arguments, t = new this(r[e]); + for (w = false; t.s && ++e < r.length; ) t = t.plus(r[e]); + return w = true, y(t, this.precision, this.rounding); + } + __name(ad, "ad"); + function ld(e) { + return new this(e).tan(); + } + __name(ld, "ld"); + function ud(e) { + return new this(e).tanh(); + } + __name(ud, "ud"); + function cd(e) { + return y(e = new this(e), e.e + 1, 1); + } + __name(cd, "cd"); + m[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = m.toString; + m[Symbol.toStringTag] = "Decimal"; + var Le = m.constructor = Ks(Gi); + hn = new Le(hn); + yn = new Le(yn); + var Fe = Le; + function Sr(e) { + return Le.isDecimal(e) ? true : e !== null && typeof e == "object" && typeof e.s == "number" && typeof e.e == "number" && typeof e.toFixed == "function" && Array.isArray(e.d); + } + __name(Sr, "Sr"); + var ct = {}; + tr(ct, { ModelAction: /* @__PURE__ */ __name(() => Rr, "ModelAction"), datamodelEnumToSchemaEnum: /* @__PURE__ */ __name(() => pd, "datamodelEnumToSchemaEnum") }); + function pd(e) { + return { name: e.name, values: e.values.map((r) => r.name) }; + } + __name(pd, "pd"); + var Rr = ((b) => (b.findUnique = "findUnique", b.findUniqueOrThrow = "findUniqueOrThrow", b.findFirst = "findFirst", b.findFirstOrThrow = "findFirstOrThrow", b.findMany = "findMany", b.create = "create", b.createMany = "createMany", b.createManyAndReturn = "createManyAndReturn", b.update = "update", b.updateMany = "updateMany", b.updateManyAndReturn = "updateManyAndReturn", b.upsert = "upsert", b.delete = "delete", b.deleteMany = "deleteMany", b.groupBy = "groupBy", b.count = "count", b.aggregate = "aggregate", b.findRaw = "findRaw", b.aggregateRaw = "aggregateRaw", b))(Rr || {}); + var Xs = O(Di()); + var Zs = O(require("node:fs")); + var Hs = { keyword: De, entity: De, value: /* @__PURE__ */ __name((e) => W(nr(e)), "value"), punctuation: nr, directive: De, function: De, variable: /* @__PURE__ */ __name((e) => W(nr(e)), "variable"), string: /* @__PURE__ */ __name((e) => W(qe(e)), "string"), boolean: Ie, number: De, comment: Hr }; + var dd = /* @__PURE__ */ __name((e) => e, "dd"); + var vn = {}; + var md = 0; + var v = { manual: vn.Prism && vn.Prism.manual, disableWorkerMessageHandler: vn.Prism && vn.Prism.disableWorkerMessageHandler, util: { encode: /* @__PURE__ */ __name(function(e) { + if (e instanceof ge) { + let r = e; + return new ge(r.type, v.util.encode(r.content), r.alias); + } else return Array.isArray(e) ? e.map(v.util.encode) : e.replace(/&/g, "&").replace(/ e.length) return; + if (Ae instanceof ge) continue; + if (me && j != r.length - 1) { + S.lastIndex = te; + var p = S.exec(e); + if (!p) break; + var c = p.index + (D ? p[1].length : 0), d = p.index + p[0].length, a = j, l = te; + for (let k = r.length; a < k && (l < d || !r[a].type && !r[a - 1].greedy); ++a) l += r[a].length, c >= l && (++j, te = l); + if (r[j] instanceof ge) continue; + u = a - j, Ae = e.slice(te, l), p.index -= te; + } else { + S.lastIndex = 0; + var p = S.exec(Ae), u = 1; + } + if (!p) { + if (o) break; + continue; + } + D && (se = p[1] ? p[1].length : 0); + var c = p.index + se, p = p[0].slice(se), d = c + p.length, f = Ae.slice(0, c), h = Ae.slice(d); + let K = [j, u]; + f && (++j, te += f.length, K.push(f)); + let fr = new ge(g, b ? v.tokenize(p, b) : p, Kr, p, me); + if (K.push(fr), h && K.push(h), Array.prototype.splice.apply(r, K), u != 1 && v.matchGrammar(e, r, t, j, te, true, g), o) break; + } + } + } + }, "matchGrammar"), tokenize: /* @__PURE__ */ __name(function(e, r) { + let t = [e], n = r.rest; + if (n) { + for (let i in n) r[i] = n[i]; + delete r.rest; + } + return v.matchGrammar(e, t, r, 0, 0, false), t; + }, "tokenize"), hooks: { all: {}, add: /* @__PURE__ */ __name(function(e, r) { + let t = v.hooks.all; + t[e] = t[e] || [], t[e].push(r); + }, "add"), run: /* @__PURE__ */ __name(function(e, r) { + let t = v.hooks.all[e]; + if (!(!t || !t.length)) for (var n = 0, i; i = t[n++]; ) i(r); + }, "run") }, Token: ge }; + v.languages.clike = { comment: [{ pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: true }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: true, greedy: true }], string: { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: true }, "class-name": { pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, lookbehind: true, inside: { punctuation: /[.\\]/ } }, keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, boolean: /\b(?:true|false)\b/, function: /\w+(?=\()/, number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, punctuation: /[{}[\];(),.:]/ }; + v.languages.javascript = v.languages.extend("clike", { "class-name": [v.languages.clike["class-name"], { pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, lookbehind: true }], keyword: [{ pattern: /((?:^|})\s*)(?:catch|finally)\b/, lookbehind: true }, { pattern: /(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, lookbehind: true }], number: /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/, function: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, operator: /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ }); + v.languages.javascript["class-name"][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/; + v.languages.insertBefore("javascript", "keyword", { regex: { pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/, lookbehind: true, greedy: true }, "function-variable": { pattern: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/, alias: "function" }, parameter: [{ pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/, lookbehind: true, inside: v.languages.javascript }, { pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i, inside: v.languages.javascript }, { pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/, lookbehind: true, inside: v.languages.javascript }, { pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/, lookbehind: true, inside: v.languages.javascript }], constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/ }); + v.languages.markup && v.languages.markup.tag.addInlined("script", "javascript"); + v.languages.js = v.languages.javascript; + v.languages.typescript = v.languages.extend("javascript", { keyword: /\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/, builtin: /\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/ }); + v.languages.ts = v.languages.typescript; + function ge(e, r, t, n, i) { + this.type = e, this.content = r, this.alias = t, this.length = (n || "").length | 0, this.greedy = !!i; + } + __name(ge, "ge"); + ge.stringify = function(e, r) { + return typeof e == "string" ? e : Array.isArray(e) ? e.map(function(t) { + return ge.stringify(t, r); + }).join("") : fd(e.type)(e.content); + }; + function fd(e) { + return Hs[e] || dd; + } + __name(fd, "fd"); + function Ys(e) { + return gd(e, v.languages.javascript); + } + __name(Ys, "Ys"); + function gd(e, r) { + return v.tokenize(e, r).map((n) => ge.stringify(n)).join(""); + } + __name(gd, "gd"); + function zs(e) { + return Ci(e); + } + __name(zs, "zs"); + var Pn = class e { + static { + __name(this, "e"); + } + firstLineNumber; + lines; + static read(r) { + let t; + try { + t = Zs.default.readFileSync(r, "utf-8"); + } catch { + return null; + } + return e.fromContent(t); + } + static fromContent(r) { + let t = r.split(/\r?\n/); + return new e(1, t); + } + constructor(r, t) { + this.firstLineNumber = r, this.lines = t; + } + get lastLineNumber() { + return this.firstLineNumber + this.lines.length - 1; + } + mapLineAt(r, t) { + if (r < this.firstLineNumber || r > this.lines.length + this.firstLineNumber) return this; + let n = r - this.firstLineNumber, i = [...this.lines]; + return i[n] = t(i[n]), new e(this.firstLineNumber, i); + } + mapLines(r) { + return new e(this.firstLineNumber, this.lines.map((t, n) => r(t, this.firstLineNumber + n))); + } + lineAt(r) { + return this.lines[r - this.firstLineNumber]; + } + prependSymbolAt(r, t) { + return this.mapLines((n, i) => i === r ? `${t} ${n}` : ` ${n}`); + } + slice(r, t) { + let n = this.lines.slice(r - 1, t).join(` +`); + return new e(r, zs(n).split(` +`)); + } + highlight() { + let r = Ys(this.toString()); + return new e(this.firstLineNumber, r.split(` +`)); + } + toString() { + return this.lines.join(` +`); + } + }; + var hd = { red: ce, gray: Hr, dim: Ce, bold: W, underline: Y, highlightSource: /* @__PURE__ */ __name((e) => e.highlight(), "highlightSource") }; + var yd = { red: /* @__PURE__ */ __name((e) => e, "red"), gray: /* @__PURE__ */ __name((e) => e, "gray"), dim: /* @__PURE__ */ __name((e) => e, "dim"), bold: /* @__PURE__ */ __name((e) => e, "bold"), underline: /* @__PURE__ */ __name((e) => e, "underline"), highlightSource: /* @__PURE__ */ __name((e) => e, "highlightSource") }; + function bd({ message: e, originalMethod: r, isPanic: t, callArguments: n }) { + return { functionName: `prisma.${r}()`, message: e, isPanic: t ?? false, callArguments: n }; + } + __name(bd, "bd"); + function Ed({ callsite: e, message: r, originalMethod: t, isPanic: n, callArguments: i }, o) { + let s = bd({ message: r, originalMethod: t, isPanic: n, callArguments: i }); + if (!e || typeof window < "u" || process.env.NODE_ENV === "production") return s; + let a = e.getLocation(); + if (!a || !a.lineNumber || !a.columnNumber) return s; + let l = Math.max(1, a.lineNumber - 3), u = Pn.read(a.fileName)?.slice(l, a.lineNumber), c = u?.lineAt(a.lineNumber); + if (u && c) { + let p = xd(c), d = wd(c); + if (!d) return s; + s.functionName = `${d.code})`, s.location = a, n || (u = u.mapLineAt(a.lineNumber, (h) => h.slice(0, d.openingBraceIndex))), u = o.highlightSource(u); + let f = String(u.lastLineNumber).length; + if (s.contextLines = u.mapLines((h, g) => o.gray(String(g).padStart(f)) + " " + h).mapLines((h) => o.dim(h)).prependSymbolAt(a.lineNumber, o.bold(o.red("\u2192"))), i) { + let h = p + f + 1; + h += 2, s.callArguments = (0, Xs.default)(i, h).slice(h); + } + } + return s; + } + __name(Ed, "Ed"); + function wd(e) { + let r = Object.keys(Rr).join("|"), n = new RegExp(String.raw`\.(${r})\(`).exec(e); + if (n) { + let i = n.index + n[0].length, o = e.lastIndexOf(" ", n.index) + 1; + return { code: e.slice(o, i), openingBraceIndex: i }; + } + return null; + } + __name(wd, "wd"); + function xd(e) { + let r = 0; + for (let t = 0; t < e.length; t++) { + if (e.charAt(t) !== " ") return r; + r++; + } + return r; + } + __name(xd, "xd"); + function vd({ functionName: e, location: r, message: t, isPanic: n, contextLines: i, callArguments: o }, s) { + let a = [""], l = r ? " in" : ":"; + if (n ? (a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)), a.push(s.red(`It occurred in the ${s.bold(`\`${e}\``)} invocation${l}`))) : a.push(s.red(`Invalid ${s.bold(`\`${e}\``)} invocation${l}`)), r && a.push(s.underline(Pd(r))), i) { + a.push(""); + let u = [i.toString()]; + o && (u.push(o), u.push(s.dim(")"))), a.push(u.join("")), o && a.push(""); + } else a.push(""), o && a.push(o), a.push(""); + return a.push(t), a.join(` +`); + } + __name(vd, "vd"); + function Pd(e) { + let r = [e.fileName]; + return e.lineNumber && r.push(String(e.lineNumber)), e.columnNumber && r.push(String(e.columnNumber)), r.join(":"); + } + __name(Pd, "Pd"); + function Tn(e) { + let r = e.showColors ? hd : yd, t; + return t = Ed(e, r), vd(t, r); + } + __name(Tn, "Tn"); + var la = O(Ki()); + function na(e, r, t) { + let n = ia(e), i = Td(n), o = Rd(i); + o ? Sn(o, r, t) : r.addErrorMessage(() => "Unknown error"); + } + __name(na, "na"); + function ia(e) { + return e.errors.flatMap((r) => r.kind === "Union" ? ia(r) : [r]); + } + __name(ia, "ia"); + function Td(e) { + let r = /* @__PURE__ */ new Map(), t = []; + for (let n of e) { + if (n.kind !== "InvalidArgumentType") { + t.push(n); + continue; + } + let i = `${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`, o = r.get(i); + o ? r.set(i, { ...n, argument: { ...n.argument, typeNames: Sd(o.argument.typeNames, n.argument.typeNames) } }) : r.set(i, n); + } + return t.push(...r.values()), t; + } + __name(Td, "Td"); + function Sd(e, r) { + return [...new Set(e.concat(r))]; + } + __name(Sd, "Sd"); + function Rd(e) { + return ji(e, (r, t) => { + let n = ra(r), i = ra(t); + return n !== i ? n - i : ta(r) - ta(t); + }); + } + __name(Rd, "Rd"); + function ra(e) { + let r = 0; + return Array.isArray(e.selectionPath) && (r += e.selectionPath.length), Array.isArray(e.argumentPath) && (r += e.argumentPath.length), r; + } + __name(ra, "ra"); + function ta(e) { + switch (e.kind) { + case "InvalidArgumentValue": + case "ValueTooLarge": + return 20; + case "InvalidArgumentType": + return 10; + case "RequiredArgumentMissing": + return -10; + default: + return 0; + } + } + __name(ta, "ta"); + var le = class { + static { + __name(this, "le"); + } + constructor(r, t) { + this.name = r; + this.value = t; + } + isRequired = false; + makeRequired() { + return this.isRequired = true, this; + } + write(r) { + let { colors: { green: t } } = r.context; + r.addMarginSymbol(t(this.isRequired ? "+" : "?")), r.write(t(this.name)), this.isRequired || r.write(t("?")), r.write(t(": ")), typeof this.value == "string" ? r.write(t(this.value)) : r.write(this.value); + } + }; + sa(); + var Ar = class { + static { + __name(this, "Ar"); + } + constructor(r = 0, t) { + this.context = t; + this.currentIndent = r; + } + lines = []; + currentLine = ""; + currentIndent = 0; + marginSymbol; + afterNextNewLineCallback; + write(r) { + return typeof r == "string" ? this.currentLine += r : r.write(this), this; + } + writeJoined(r, t, n = (i, o) => o.write(i)) { + let i = t.length - 1; + for (let o = 0; o < t.length; o++) n(t[o], this), o !== i && this.write(r); + return this; + } + writeLine(r) { + return this.write(r).newLine(); + } + newLine() { + this.lines.push(this.indentedCurrentLine()), this.currentLine = "", this.marginSymbol = void 0; + let r = this.afterNextNewLineCallback; + return this.afterNextNewLineCallback = void 0, r?.(), this; + } + withIndent(r) { + return this.indent(), r(this), this.unindent(), this; + } + afterNextNewline(r) { + return this.afterNextNewLineCallback = r, this; + } + indent() { + return this.currentIndent++, this; + } + unindent() { + return this.currentIndent > 0 && this.currentIndent--, this; + } + addMarginSymbol(r) { + return this.marginSymbol = r, this; + } + toString() { + return this.lines.concat(this.indentedCurrentLine()).join(` +`); + } + getCurrentLineLength() { + return this.currentLine.length; + } + indentedCurrentLine() { + let r = this.currentLine.padStart(this.currentLine.length + 2 * this.currentIndent); + return this.marginSymbol ? this.marginSymbol + r.slice(1) : r; + } + }; + oa(); + var Rn = class { + static { + __name(this, "Rn"); + } + constructor(r) { + this.value = r; + } + write(r) { + r.write(this.value); + } + markAsError() { + this.value.markAsError(); + } + }; + var An = /* @__PURE__ */ __name((e) => e, "An"); + var Cn = { bold: An, red: An, green: An, dim: An, enabled: false }; + var aa = { bold: W, red: ce, green: qe, dim: Ce, enabled: true }; + var Cr = { write(e) { + e.writeLine(","); + } }; + var Pe = class { + static { + __name(this, "Pe"); + } + constructor(r) { + this.contents = r; + } + isUnderlined = false; + color = /* @__PURE__ */ __name((r) => r, "color"); + underline() { + return this.isUnderlined = true, this; + } + setColor(r) { + return this.color = r, this; + } + write(r) { + let t = r.getCurrentLineLength(); + r.write(this.color(this.contents)), this.isUnderlined && r.afterNextNewline(() => { + r.write(" ".repeat(t)).writeLine(this.color("~".repeat(this.contents.length))); + }); + } + }; + var ze = class { + static { + __name(this, "ze"); + } + hasError = false; + markAsError() { + return this.hasError = true, this; + } + }; + var Ir = class extends ze { + static { + __name(this, "Ir"); + } + items = []; + addItem(r) { + return this.items.push(new Rn(r)), this; + } + getField(r) { + return this.items[r]; + } + getPrintWidth() { + return this.items.length === 0 ? 2 : Math.max(...this.items.map((t) => t.value.getPrintWidth())) + 2; + } + write(r) { + if (this.items.length === 0) { + this.writeEmpty(r); + return; + } + this.writeWithItems(r); + } + writeEmpty(r) { + let t = new Pe("[]"); + this.hasError && t.setColor(r.context.colors.red).underline(), r.write(t); + } + writeWithItems(r) { + let { colors: t } = r.context; + r.writeLine("[").withIndent(() => r.writeJoined(Cr, this.items).newLine()).write("]"), this.hasError && r.afterNextNewline(() => { + r.writeLine(t.red("~".repeat(this.getPrintWidth()))); + }); + } + asObject() { + } + }; + var Dr = class e extends ze { + static { + __name(this, "e"); + } + fields = {}; + suggestions = []; + addField(r) { + this.fields[r.name] = r; + } + addSuggestion(r) { + this.suggestions.push(r); + } + getField(r) { + return this.fields[r]; + } + getDeepField(r) { + let [t, ...n] = r, i = this.getField(t); + if (!i) return; + let o = i; + for (let s of n) { + let a; + if (o.value instanceof e ? a = o.value.getField(s) : o.value instanceof Ir && (a = o.value.getField(Number(s))), !a) return; + o = a; + } + return o; + } + getDeepFieldValue(r) { + return r.length === 0 ? this : this.getDeepField(r)?.value; + } + hasField(r) { + return !!this.getField(r); + } + removeAllFields() { + this.fields = {}; + } + removeField(r) { + delete this.fields[r]; + } + getFields() { + return this.fields; + } + isEmpty() { + return Object.keys(this.fields).length === 0; + } + getFieldValue(r) { + return this.getField(r)?.value; + } + getDeepSubSelectionValue(r) { + let t = this; + for (let n of r) { + if (!(t instanceof e)) return; + let i = t.getSubSelectionValue(n); + if (!i) return; + t = i; + } + return t; + } + getDeepSelectionParent(r) { + let t = this.getSelectionParent(); + if (!t) return; + let n = t; + for (let i of r) { + let o = n.value.getFieldValue(i); + if (!o || !(o instanceof e)) return; + let s = o.getSelectionParent(); + if (!s) return; + n = s; + } + return n; + } + getSelectionParent() { + let r = this.getField("select")?.value.asObject(); + if (r) return { kind: "select", value: r }; + let t = this.getField("include")?.value.asObject(); + if (t) return { kind: "include", value: t }; + } + getSubSelectionValue(r) { + return this.getSelectionParent()?.value.fields[r].value; + } + getPrintWidth() { + let r = Object.values(this.fields); + return r.length == 0 ? 2 : Math.max(...r.map((n) => n.getPrintWidth())) + 2; + } + write(r) { + let t = Object.values(this.fields); + if (t.length === 0 && this.suggestions.length === 0) { + this.writeEmpty(r); + return; + } + this.writeWithContents(r, t); + } + asObject() { + return this; + } + writeEmpty(r) { + let t = new Pe("{}"); + this.hasError && t.setColor(r.context.colors.red).underline(), r.write(t); + } + writeWithContents(r, t) { + r.writeLine("{").withIndent(() => { + r.writeJoined(Cr, [...t, ...this.suggestions]).newLine(); + }), r.write("}"), this.hasError && r.afterNextNewline(() => { + r.writeLine(r.context.colors.red("~".repeat(this.getPrintWidth()))); + }); + } + }; + var Q = class extends ze { + static { + __name(this, "Q"); + } + constructor(t) { + super(); + this.text = t; + } + getPrintWidth() { + return this.text.length; + } + write(t) { + let n = new Pe(this.text); + this.hasError && n.underline().setColor(t.context.colors.red), t.write(n); + } + asObject() { + } + }; + var pt = class { + static { + __name(this, "pt"); + } + fields = []; + addField(r, t) { + return this.fields.push({ write(n) { + let { green: i, dim: o } = n.context.colors; + n.write(i(o(`${r}: ${t}`))).addMarginSymbol(i(o("+"))); + } }), this; + } + write(r) { + let { colors: { green: t } } = r.context; + r.writeLine(t("{")).withIndent(() => { + r.writeJoined(Cr, this.fields).newLine(); + }).write(t("}")).addMarginSymbol(t("+")); + } + }; + function Sn(e, r, t) { + switch (e.kind) { + case "MutuallyExclusiveFields": + Ad(e, r); + break; + case "IncludeOnScalar": + Cd(e, r); + break; + case "EmptySelection": + Id(e, r, t); + break; + case "UnknownSelectionField": + _d(e, r); + break; + case "InvalidSelectionValue": + Nd(e, r); + break; + case "UnknownArgument": + Ld(e, r); + break; + case "UnknownInputField": + Fd(e, r); + break; + case "RequiredArgumentMissing": + Md(e, r); + break; + case "InvalidArgumentType": + $d(e, r); + break; + case "InvalidArgumentValue": + qd(e, r); + break; + case "ValueTooLarge": + Vd(e, r); + break; + case "SomeFieldsMissing": + jd(e, r); + break; + case "TooManyFieldsGiven": + Bd(e, r); + break; + case "Union": + na(e, r, t); + break; + default: + throw new Error("not implemented: " + e.kind); + } + } + __name(Sn, "Sn"); + function Ad(e, r) { + let t = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(); + t && (t.getField(e.firstField)?.markAsError(), t.getField(e.secondField)?.markAsError()), r.addErrorMessage((n) => `Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`); + } + __name(Ad, "Ad"); + function Cd(e, r) { + let [t, n] = Or(e.selectionPath), i = e.outputType, o = r.arguments.getDeepSelectionParent(t)?.value; + if (o && (o.getField(n)?.markAsError(), i)) for (let s of i.fields) s.isRelation && o.addSuggestion(new le(s.name, "true")); + r.addErrorMessage((s) => { + let a = `Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`; + return i ? a += ` on model ${s.bold(i.name)}. ${dt(s)}` : a += ".", a += ` +Note that ${s.bold("include")} statements only accept relation fields.`, a; + }); + } + __name(Cd, "Cd"); + function Id(e, r, t) { + let n = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(); + if (n) { + let i = n.getField("omit")?.value.asObject(); + if (i) { + Dd(e, r, i); + return; + } + if (n.hasField("select")) { + Od(e, r); + return; + } + } + if (t?.[We(e.outputType.name)]) { + kd(e, r); + return; + } + r.addErrorMessage(() => `Unknown field at "${e.selectionPath.join(".")} selection"`); + } + __name(Id, "Id"); + function Dd(e, r, t) { + t.removeAllFields(); + for (let n of e.outputType.fields) t.addSuggestion(new le(n.name, "false")); + r.addErrorMessage((n) => `The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`); + } + __name(Dd, "Dd"); + function Od(e, r) { + let t = e.outputType, n = r.arguments.getDeepSelectionParent(e.selectionPath)?.value, i = n?.isEmpty() ?? false; + n && (n.removeAllFields(), pa(n, t)), r.addErrorMessage((o) => i ? `The ${o.red("`select`")} statement for type ${o.bold(t.name)} must not be empty. ${dt(o)}` : `The ${o.red("`select`")} statement for type ${o.bold(t.name)} needs ${o.bold("at least one truthy value")}.`); + } + __name(Od, "Od"); + function kd(e, r) { + let t = new pt(); + for (let i of e.outputType.fields) i.isRelation || t.addField(i.name, "false"); + let n = new le("omit", t).makeRequired(); + if (e.selectionPath.length === 0) r.arguments.addSuggestion(n); + else { + let [i, o] = Or(e.selectionPath), a = r.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o); + if (a) { + let l = a?.value.asObject() ?? new Dr(); + l.addSuggestion(n), a.value = l; + } + } + r.addErrorMessage((i) => `The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`); + } + __name(kd, "kd"); + function _d(e, r) { + let t = da(e.selectionPath, r); + if (t.parentKind !== "unknown") { + t.field.markAsError(); + let n = t.parent; + switch (t.parentKind) { + case "select": + pa(n, e.outputType); + break; + case "include": + Ud(n, e.outputType); + break; + case "omit": + Gd(n, e.outputType); + break; + } + } + r.addErrorMessage((n) => { + let i = [`Unknown field ${n.red(`\`${t.fieldName}\``)}`]; + return t.parentKind !== "unknown" && i.push(`for ${n.bold(t.parentKind)} statement`), i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`), i.push(dt(n)), i.join(" "); + }); + } + __name(_d, "_d"); + function Nd(e, r) { + let t = da(e.selectionPath, r); + t.parentKind !== "unknown" && t.field.value.markAsError(), r.addErrorMessage((n) => `Invalid value for selection field \`${n.red(t.fieldName)}\`: ${e.underlyingError}`); + } + __name(Nd, "Nd"); + function Ld(e, r) { + let t = e.argumentPath[0], n = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(); + n && (n.getField(t)?.markAsError(), Qd(n, e.arguments)), r.addErrorMessage((i) => ua(i, t, e.arguments.map((o) => o.name))); + } + __name(Ld, "Ld"); + function Fd(e, r) { + let [t, n] = Or(e.argumentPath), i = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(); + if (i) { + i.getDeepField(e.argumentPath)?.markAsError(); + let o = i.getDeepFieldValue(t)?.asObject(); + o && ma(o, e.inputType); + } + r.addErrorMessage((o) => ua(o, n, e.inputType.fields.map((s) => s.name))); + } + __name(Fd, "Fd"); + function ua(e, r, t) { + let n = [`Unknown argument \`${e.red(r)}\`.`], i = Jd(r, t); + return i && n.push(`Did you mean \`${e.green(i)}\`?`), t.length > 0 && n.push(dt(e)), n.join(" "); + } + __name(ua, "ua"); + function Md(e, r) { + let t; + r.addErrorMessage((l) => t?.value instanceof Q && t.value.text === "null" ? `Argument \`${l.green(o)}\` must not be ${l.red("null")}.` : `Argument \`${l.green(o)}\` is missing.`); + let n = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(); + if (!n) return; + let [i, o] = Or(e.argumentPath), s = new pt(), a = n.getDeepFieldValue(i)?.asObject(); + if (a) { + if (t = a.getField(o), t && a.removeField(o), e.inputTypes.length === 1 && e.inputTypes[0].kind === "object") { + for (let l of e.inputTypes[0].fields) s.addField(l.name, l.typeNames.join(" | ")); + a.addSuggestion(new le(o, s).makeRequired()); + } else { + let l = e.inputTypes.map(ca).join(" | "); + a.addSuggestion(new le(o, l).makeRequired()); + } + if (e.dependentArgumentPath) { + n.getDeepField(e.dependentArgumentPath)?.markAsError(); + let [, l] = Or(e.dependentArgumentPath); + r.addErrorMessage((u) => `Argument \`${u.green(o)}\` is required because argument \`${u.green(l)}\` was provided.`); + } + } + } + __name(Md, "Md"); + function ca(e) { + return e.kind === "list" ? `${ca(e.elementType)}[]` : e.name; + } + __name(ca, "ca"); + function $d(e, r) { + let t = e.argument.name, n = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(); + n && n.getDeepFieldValue(e.argumentPath)?.markAsError(), r.addErrorMessage((i) => { + let o = In("or", e.argument.typeNames.map((s) => i.green(s))); + return `Argument \`${i.bold(t)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`; + }); + } + __name($d, "$d"); + function qd(e, r) { + let t = e.argument.name, n = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(); + n && n.getDeepFieldValue(e.argumentPath)?.markAsError(), r.addErrorMessage((i) => { + let o = [`Invalid value for argument \`${i.bold(t)}\``]; + if (e.underlyingError && o.push(`: ${e.underlyingError}`), o.push("."), e.argument.typeNames.length > 0) { + let s = In("or", e.argument.typeNames.map((a) => i.green(a))); + o.push(` Expected ${s}.`); + } + return o.join(""); + }); + } + __name(qd, "qd"); + function Vd(e, r) { + let t = e.argument.name, n = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(), i; + if (n) { + let s = n.getDeepField(e.argumentPath)?.value; + s?.markAsError(), s instanceof Q && (i = s.text); + } + r.addErrorMessage((o) => { + let s = ["Unable to fit value"]; + return i && s.push(o.red(i)), s.push(`into a 64-bit signed integer for field \`${o.bold(t)}\``), s.join(" "); + }); + } + __name(Vd, "Vd"); + function jd(e, r) { + let t = e.argumentPath[e.argumentPath.length - 1], n = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(); + if (n) { + let i = n.getDeepFieldValue(e.argumentPath)?.asObject(); + i && ma(i, e.inputType); + } + r.addErrorMessage((i) => { + let o = [`Argument \`${i.bold(t)}\` of type ${i.bold(e.inputType.name)} needs`]; + return e.constraints.minFieldCount === 1 ? e.constraints.requiredFields ? o.push(`${i.green("at least one of")} ${In("or", e.constraints.requiredFields.map((s) => `\`${i.bold(s)}\``))} arguments.`) : o.push(`${i.green("at least one")} argument.`) : o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`), o.push(dt(i)), o.join(" "); + }); + } + __name(jd, "jd"); + function Bd(e, r) { + let t = e.argumentPath[e.argumentPath.length - 1], n = r.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(), i = []; + if (n) { + let o = n.getDeepFieldValue(e.argumentPath)?.asObject(); + o && (o.markAsError(), i = Object.keys(o.getFields())); + } + r.addErrorMessage((o) => { + let s = [`Argument \`${o.bold(t)}\` of type ${o.bold(e.inputType.name)} needs`]; + return e.constraints.minFieldCount === 1 && e.constraints.maxFieldCount == 1 ? s.push(`${o.green("exactly one")} argument,`) : e.constraints.maxFieldCount == 1 ? s.push(`${o.green("at most one")} argument,`) : s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`), s.push(`but you provided ${In("and", i.map((a) => o.red(a)))}. Please choose`), e.constraints.maxFieldCount === 1 ? s.push("one.") : s.push(`${e.constraints.maxFieldCount}.`), s.join(" "); + }); + } + __name(Bd, "Bd"); + function pa(e, r) { + for (let t of r.fields) e.hasField(t.name) || e.addSuggestion(new le(t.name, "true")); + } + __name(pa, "pa"); + function Ud(e, r) { + for (let t of r.fields) t.isRelation && !e.hasField(t.name) && e.addSuggestion(new le(t.name, "true")); + } + __name(Ud, "Ud"); + function Gd(e, r) { + for (let t of r.fields) !e.hasField(t.name) && !t.isRelation && e.addSuggestion(new le(t.name, "true")); + } + __name(Gd, "Gd"); + function Qd(e, r) { + for (let t of r) e.hasField(t.name) || e.addSuggestion(new le(t.name, t.typeNames.join(" | "))); + } + __name(Qd, "Qd"); + function da(e, r) { + let [t, n] = Or(e), i = r.arguments.getDeepSubSelectionValue(t)?.asObject(); + if (!i) return { parentKind: "unknown", fieldName: n }; + let o = i.getFieldValue("select")?.asObject(), s = i.getFieldValue("include")?.asObject(), a = i.getFieldValue("omit")?.asObject(), l = o?.getField(n); + return o && l ? { parentKind: "select", parent: o, field: l, fieldName: n } : (l = s?.getField(n), s && l ? { parentKind: "include", field: l, parent: s, fieldName: n } : (l = a?.getField(n), a && l ? { parentKind: "omit", field: l, parent: a, fieldName: n } : { parentKind: "unknown", fieldName: n })); + } + __name(da, "da"); + function ma(e, r) { + if (r.kind === "object") for (let t of r.fields) e.hasField(t.name) || e.addSuggestion(new le(t.name, t.typeNames.join(" | "))); + } + __name(ma, "ma"); + function Or(e) { + let r = [...e], t = r.pop(); + if (!t) throw new Error("unexpected empty path"); + return [r, t]; + } + __name(Or, "Or"); + function dt({ green: e, enabled: r }) { + return "Available options are " + (r ? `listed in ${e("green")}` : "marked with ?") + "."; + } + __name(dt, "dt"); + function In(e, r) { + if (r.length === 1) return r[0]; + let t = [...r], n = t.pop(); + return `${t.join(", ")} ${e} ${n}`; + } + __name(In, "In"); + var Wd = 3; + function Jd(e, r) { + let t = 1 / 0, n; + for (let i of r) { + let o = (0, la.default)(e, i); + o > Wd || o < t && (t = o, n = i); + } + return n; + } + __name(Jd, "Jd"); + var mt = class { + static { + __name(this, "mt"); + } + modelName; + name; + typeName; + isList; + isEnum; + constructor(r, t, n, i, o) { + this.modelName = r, this.name = t, this.typeName = n, this.isList = i, this.isEnum = o; + } + _toGraphQLInputType() { + let r = this.isList ? "List" : "", t = this.isEnum ? "Enum" : ""; + return `${r}${t}${this.typeName}FieldRefInput<${this.modelName}>`; + } + }; + function kr(e) { + return e instanceof mt; + } + __name(kr, "kr"); + var Dn = /* @__PURE__ */ Symbol(); + var Yi = /* @__PURE__ */ new WeakMap(); + var Me = class { + static { + __name(this, "Me"); + } + constructor(r) { + r === Dn ? Yi.set(this, `Prisma.${this._getName()}`) : Yi.set(this, `new Prisma.${this._getNamespace()}.${this._getName()}()`); + } + _getName() { + return this.constructor.name; + } + toString() { + return Yi.get(this); + } + }; + var ft = class extends Me { + static { + __name(this, "ft"); + } + _getNamespace() { + return "NullTypes"; + } + }; + var gt = class extends ft { + static { + __name(this, "gt"); + } + #e; + }; + zi(gt, "DbNull"); + var ht = class extends ft { + static { + __name(this, "ht"); + } + #e; + }; + zi(ht, "JsonNull"); + var yt = class extends ft { + static { + __name(this, "yt"); + } + #e; + }; + zi(yt, "AnyNull"); + var On = { classes: { DbNull: gt, JsonNull: ht, AnyNull: yt }, instances: { DbNull: new gt(Dn), JsonNull: new ht(Dn), AnyNull: new yt(Dn) } }; + function zi(e, r) { + Object.defineProperty(e, "name", { value: r, configurable: true }); + } + __name(zi, "zi"); + var fa = ": "; + var kn = class { + static { + __name(this, "kn"); + } + constructor(r, t) { + this.name = r; + this.value = t; + } + hasError = false; + markAsError() { + this.hasError = true; + } + getPrintWidth() { + return this.name.length + this.value.getPrintWidth() + fa.length; + } + write(r) { + let t = new Pe(this.name); + this.hasError && t.underline().setColor(r.context.colors.red), r.write(t).write(fa).write(this.value); + } + }; + var Zi = class { + static { + __name(this, "Zi"); + } + arguments; + errorMessages = []; + constructor(r) { + this.arguments = r; + } + write(r) { + r.write(this.arguments); + } + addErrorMessage(r) { + this.errorMessages.push(r); + } + renderAllMessages(r) { + return this.errorMessages.map((t) => t(r)).join(` +`); + } + }; + function _r(e) { + return new Zi(ga(e)); + } + __name(_r, "_r"); + function ga(e) { + let r = new Dr(); + for (let [t, n] of Object.entries(e)) { + let i = new kn(t, ha(n)); + r.addField(i); + } + return r; + } + __name(ga, "ga"); + function ha(e) { + if (typeof e == "string") return new Q(JSON.stringify(e)); + if (typeof e == "number" || typeof e == "boolean") return new Q(String(e)); + if (typeof e == "bigint") return new Q(`${e}n`); + if (e === null) return new Q("null"); + if (e === void 0) return new Q("undefined"); + if (Sr(e)) return new Q(`new Prisma.Decimal("${e.toFixed()}")`); + if (e instanceof Uint8Array) return Buffer.isBuffer(e) ? new Q(`Buffer.alloc(${e.byteLength})`) : new Q(`new Uint8Array(${e.byteLength})`); + if (e instanceof Date) { + let r = mn(e) ? e.toISOString() : "Invalid Date"; + return new Q(`new Date("${r}")`); + } + return e instanceof Me ? new Q(`Prisma.${e._getName()}`) : kr(e) ? new Q(`prisma.${We(e.modelName)}.$fields.${e.name}`) : Array.isArray(e) ? Kd(e) : typeof e == "object" ? ga(e) : new Q(Object.prototype.toString.call(e)); + } + __name(ha, "ha"); + function Kd(e) { + let r = new Ir(); + for (let t of e) r.addItem(ha(t)); + return r; + } + __name(Kd, "Kd"); + function _n(e, r) { + let t = r === "pretty" ? aa : Cn, n = e.renderAllMessages(t), i = new Ar(0, { colors: t }).write(e).toString(); + return { message: n, args: i }; + } + __name(_n, "_n"); + function Nn({ args: e, errors: r, errorFormat: t, callsite: n, originalMethod: i, clientVersion: o, globalOmit: s }) { + let a = _r(e); + for (let p of r) Sn(p, a, s); + let { message: l, args: u } = _n(a, t), c = Tn({ message: l, callsite: n, originalMethod: i, showColors: t === "pretty", callArguments: u }); + throw new Z(c, { clientVersion: o }); + } + __name(Nn, "Nn"); + function Te(e) { + return e.replace(/^./, (r) => r.toLowerCase()); + } + __name(Te, "Te"); + function ba(e, r, t) { + let n = Te(t); + return !r.result || !(r.result.$allModels || r.result[n]) ? e : Hd({ ...e, ...ya(r.name, e, r.result.$allModels), ...ya(r.name, e, r.result[n]) }); + } + __name(ba, "ba"); + function Hd(e) { + let r = new we(), t = /* @__PURE__ */ __name((n, i) => r.getOrCreate(n, () => i.has(n) ? [n] : (i.add(n), e[n] ? e[n].needs.flatMap((o) => t(o, i)) : [n])), "t"); + return pn(e, (n) => ({ ...n, needs: t(n.name, /* @__PURE__ */ new Set()) })); + } + __name(Hd, "Hd"); + function ya(e, r, t) { + return t ? pn(t, ({ needs: n, compute: i }, o) => ({ name: o, needs: n ? Object.keys(n).filter((s) => n[s]) : [], compute: Yd(r, o, i) })) : {}; + } + __name(ya, "ya"); + function Yd(e, r, t) { + let n = e?.[r]?.compute; + return n ? (i) => t({ ...i, [r]: n(i) }) : t; + } + __name(Yd, "Yd"); + function Ea(e, r) { + if (!r) return e; + let t = { ...e }; + for (let n of Object.values(r)) if (e[n.name]) for (let i of n.needs) t[i] = true; + return t; + } + __name(Ea, "Ea"); + function wa(e, r) { + if (!r) return e; + let t = { ...e }; + for (let n of Object.values(r)) if (!e[n.name]) for (let i of n.needs) delete t[i]; + return t; + } + __name(wa, "wa"); + var Ln = class { + static { + __name(this, "Ln"); + } + constructor(r, t) { + this.extension = r; + this.previous = t; + } + computedFieldsCache = new we(); + modelExtensionsCache = new we(); + queryCallbacksCache = new we(); + clientExtensions = lt(() => this.extension.client ? { ...this.previous?.getAllClientExtensions(), ...this.extension.client } : this.previous?.getAllClientExtensions()); + batchCallbacks = lt(() => { + let r = this.previous?.getAllBatchQueryCallbacks() ?? [], t = this.extension.query?.$__internalBatch; + return t ? r.concat(t) : r; + }); + getAllComputedFields(r) { + return this.computedFieldsCache.getOrCreate(r, () => ba(this.previous?.getAllComputedFields(r), this.extension, r)); + } + getAllClientExtensions() { + return this.clientExtensions.get(); + } + getAllModelExtensions(r) { + return this.modelExtensionsCache.getOrCreate(r, () => { + let t = Te(r); + return !this.extension.model || !(this.extension.model[t] || this.extension.model.$allModels) ? this.previous?.getAllModelExtensions(r) : { ...this.previous?.getAllModelExtensions(r), ...this.extension.model.$allModels, ...this.extension.model[t] }; + }); + } + getAllQueryCallbacks(r, t) { + return this.queryCallbacksCache.getOrCreate(`${r}:${t}`, () => { + let n = this.previous?.getAllQueryCallbacks(r, t) ?? [], i = [], o = this.extension.query; + return !o || !(o[r] || o.$allModels || o[t] || o.$allOperations) ? n : (o[r] !== void 0 && (o[r][t] !== void 0 && i.push(o[r][t]), o[r].$allOperations !== void 0 && i.push(o[r].$allOperations)), r !== "$none" && o.$allModels !== void 0 && (o.$allModels[t] !== void 0 && i.push(o.$allModels[t]), o.$allModels.$allOperations !== void 0 && i.push(o.$allModels.$allOperations)), o[t] !== void 0 && i.push(o[t]), o.$allOperations !== void 0 && i.push(o.$allOperations), n.concat(i)); + }); + } + getAllBatchQueryCallbacks() { + return this.batchCallbacks.get(); + } + }; + var Nr = class e { + static { + __name(this, "e"); + } + constructor(r) { + this.head = r; + } + static empty() { + return new e(); + } + static single(r) { + return new e(new Ln(r)); + } + isEmpty() { + return this.head === void 0; + } + append(r) { + return new e(new Ln(r, this.head)); + } + getAllComputedFields(r) { + return this.head?.getAllComputedFields(r); + } + getAllClientExtensions() { + return this.head?.getAllClientExtensions(); + } + getAllModelExtensions(r) { + return this.head?.getAllModelExtensions(r); + } + getAllQueryCallbacks(r, t) { + return this.head?.getAllQueryCallbacks(r, t) ?? []; + } + getAllBatchQueryCallbacks() { + return this.head?.getAllBatchQueryCallbacks() ?? []; + } + }; + var Fn = class { + static { + __name(this, "Fn"); + } + constructor(r) { + this.name = r; + } + }; + function xa(e) { + return e instanceof Fn; + } + __name(xa, "xa"); + function va(e) { + return new Fn(e); + } + __name(va, "va"); + var Pa = /* @__PURE__ */ Symbol(); + var bt = class { + static { + __name(this, "bt"); + } + constructor(r) { + if (r !== Pa) throw new Error("Skip instance can not be constructed directly"); + } + ifUndefined(r) { + return r === void 0 ? Mn : r; + } + }; + var Mn = new bt(Pa); + function Se(e) { + return e instanceof bt; + } + __name(Se, "Se"); + var zd = { findUnique: "findUnique", findUniqueOrThrow: "findUniqueOrThrow", findFirst: "findFirst", findFirstOrThrow: "findFirstOrThrow", findMany: "findMany", count: "aggregate", create: "createOne", createMany: "createMany", createManyAndReturn: "createManyAndReturn", update: "updateOne", updateMany: "updateMany", updateManyAndReturn: "updateManyAndReturn", upsert: "upsertOne", delete: "deleteOne", deleteMany: "deleteMany", executeRaw: "executeRaw", queryRaw: "queryRaw", aggregate: "aggregate", groupBy: "groupBy", runCommandRaw: "runCommandRaw", findRaw: "findRaw", aggregateRaw: "aggregateRaw" }; + var Ta = "explicitly `undefined` values are not allowed"; + function $n({ modelName: e, action: r, args: t, runtimeDataModel: n, extensions: i = Nr.empty(), callsite: o, clientMethod: s, errorFormat: a, clientVersion: l, previewFeatures: u, globalOmit: c }) { + let p = new Xi({ runtimeDataModel: n, modelName: e, action: r, rootArgs: t, callsite: o, extensions: i, selectionPath: [], argumentPath: [], originalMethod: s, errorFormat: a, clientVersion: l, previewFeatures: u, globalOmit: c }); + return { modelName: e, action: zd[r], query: Et(t, p) }; + } + __name($n, "$n"); + function Et({ select: e, include: r, ...t } = {}, n) { + let i = t.omit; + return delete t.omit, { arguments: Ra(t, n), selection: Zd(e, r, i, n) }; + } + __name(Et, "Et"); + function Zd(e, r, t, n) { + return e ? (r ? n.throwValidationError({ kind: "MutuallyExclusiveFields", firstField: "include", secondField: "select", selectionPath: n.getSelectionPath() }) : t && n.throwValidationError({ kind: "MutuallyExclusiveFields", firstField: "omit", secondField: "select", selectionPath: n.getSelectionPath() }), tm(e, n)) : Xd(n, r, t); + } + __name(Zd, "Zd"); + function Xd(e, r, t) { + let n = {}; + return e.modelOrType && !e.isRawAction() && (n.$composites = true, n.$scalars = true), r && em(n, r, e), rm(n, t, e), n; + } + __name(Xd, "Xd"); + function em(e, r, t) { + for (let [n, i] of Object.entries(r)) { + if (Se(i)) continue; + let o = t.nestSelection(n); + if (eo(i, o), i === false || i === void 0) { + e[n] = false; + continue; + } + let s = t.findField(n); + if (s && s.kind !== "object" && t.throwValidationError({ kind: "IncludeOnScalar", selectionPath: t.getSelectionPath().concat(n), outputType: t.getOutputTypeDescription() }), s) { + e[n] = Et(i === true ? {} : i, o); + continue; + } + if (i === true) { + e[n] = true; + continue; + } + e[n] = Et(i, o); + } + } + __name(em, "em"); + function rm(e, r, t) { + let n = t.getComputedFields(), i = { ...t.getGlobalOmit(), ...r }, o = wa(i, n); + for (let [s, a] of Object.entries(o)) { + if (Se(a)) continue; + eo(a, t.nestSelection(s)); + let l = t.findField(s); + n?.[s] && !l || (e[s] = !a); + } + } + __name(rm, "rm"); + function tm(e, r) { + let t = {}, n = r.getComputedFields(), i = Ea(e, n); + for (let [o, s] of Object.entries(i)) { + if (Se(s)) continue; + let a = r.nestSelection(o); + eo(s, a); + let l = r.findField(o); + if (!(n?.[o] && !l)) { + if (s === false || s === void 0 || Se(s)) { + t[o] = false; + continue; + } + if (s === true) { + l?.kind === "object" ? t[o] = Et({}, a) : t[o] = true; + continue; + } + t[o] = Et(s, a); + } + } + return t; + } + __name(tm, "tm"); + function Sa(e, r) { + if (e === null) return null; + if (typeof e == "string" || typeof e == "number" || typeof e == "boolean") return e; + if (typeof e == "bigint") return { $type: "BigInt", value: String(e) }; + if (vr(e)) { + if (mn(e)) return { $type: "DateTime", value: e.toISOString() }; + r.throwValidationError({ kind: "InvalidArgumentValue", selectionPath: r.getSelectionPath(), argumentPath: r.getArgumentPath(), argument: { name: r.getArgumentName(), typeNames: ["Date"] }, underlyingError: "Provided Date object is invalid" }); + } + if (xa(e)) return { $type: "Param", value: e.name }; + if (kr(e)) return { $type: "FieldRef", value: { _ref: e.name, _container: e.modelName } }; + if (Array.isArray(e)) return nm(e, r); + if (ArrayBuffer.isView(e)) { + let { buffer: t, byteOffset: n, byteLength: i } = e; + return { $type: "Bytes", value: Buffer.from(t, n, i).toString("base64") }; + } + if (im(e)) return e.values; + if (Sr(e)) return { $type: "Decimal", value: e.toFixed() }; + if (e instanceof Me) { + if (e !== On.instances[e._getName()]) throw new Error("Invalid ObjectEnumValue"); + return { $type: "Enum", value: e._getName() }; + } + if (om(e)) return e.toJSON(); + if (typeof e == "object") return Ra(e, r); + r.throwValidationError({ kind: "InvalidArgumentValue", selectionPath: r.getSelectionPath(), argumentPath: r.getArgumentPath(), argument: { name: r.getArgumentName(), typeNames: [] }, underlyingError: `We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it` }); + } + __name(Sa, "Sa"); + function Ra(e, r) { + if (e.$type) return { $type: "Raw", value: e }; + let t = {}; + for (let n in e) { + let i = e[n], o = r.nestArgument(n); + Se(i) || (i !== void 0 ? t[n] = Sa(i, o) : r.isPreviewFeatureOn("strictUndefinedChecks") && r.throwValidationError({ kind: "InvalidArgumentValue", argumentPath: o.getArgumentPath(), selectionPath: r.getSelectionPath(), argument: { name: r.getArgumentName(), typeNames: [] }, underlyingError: Ta })); + } + return t; + } + __name(Ra, "Ra"); + function nm(e, r) { + let t = []; + for (let n = 0; n < e.length; n++) { + let i = r.nestArgument(String(n)), o = e[n]; + if (o === void 0 || Se(o)) { + let s = o === void 0 ? "undefined" : "Prisma.skip"; + r.throwValidationError({ kind: "InvalidArgumentValue", selectionPath: i.getSelectionPath(), argumentPath: i.getArgumentPath(), argument: { name: `${r.getArgumentName()}[${n}]`, typeNames: [] }, underlyingError: `Can not use \`${s}\` value within array. Use \`null\` or filter out \`${s}\` values` }); + } + t.push(Sa(o, i)); + } + return t; + } + __name(nm, "nm"); + function im(e) { + return typeof e == "object" && e !== null && e.__prismaRawParameters__ === true; + } + __name(im, "im"); + function om(e) { + return typeof e == "object" && e !== null && typeof e.toJSON == "function"; + } + __name(om, "om"); + function eo(e, r) { + e === void 0 && r.isPreviewFeatureOn("strictUndefinedChecks") && r.throwValidationError({ kind: "InvalidSelectionValue", selectionPath: r.getSelectionPath(), underlyingError: Ta }); + } + __name(eo, "eo"); + var Xi = class e { + static { + __name(this, "e"); + } + constructor(r) { + this.params = r; + this.params.modelName && (this.modelOrType = this.params.runtimeDataModel.models[this.params.modelName] ?? this.params.runtimeDataModel.types[this.params.modelName]); + } + modelOrType; + throwValidationError(r) { + Nn({ errors: [r], originalMethod: this.params.originalMethod, args: this.params.rootArgs ?? {}, callsite: this.params.callsite, errorFormat: this.params.errorFormat, clientVersion: this.params.clientVersion, globalOmit: this.params.globalOmit }); + } + getSelectionPath() { + return this.params.selectionPath; + } + getArgumentPath() { + return this.params.argumentPath; + } + getArgumentName() { + return this.params.argumentPath[this.params.argumentPath.length - 1]; + } + getOutputTypeDescription() { + if (!(!this.params.modelName || !this.modelOrType)) return { name: this.params.modelName, fields: this.modelOrType.fields.map((r) => ({ name: r.name, typeName: "boolean", isRelation: r.kind === "object" })) }; + } + isRawAction() { + return ["executeRaw", "queryRaw", "runCommandRaw", "findRaw", "aggregateRaw"].includes(this.params.action); + } + isPreviewFeatureOn(r) { + return this.params.previewFeatures.includes(r); + } + getComputedFields() { + if (this.params.modelName) return this.params.extensions.getAllComputedFields(this.params.modelName); + } + findField(r) { + return this.modelOrType?.fields.find((t) => t.name === r); + } + nestSelection(r) { + let t = this.findField(r), n = t?.kind === "object" ? t.type : void 0; + return new e({ ...this.params, modelName: n, selectionPath: this.params.selectionPath.concat(r) }); + } + getGlobalOmit() { + return this.params.modelName && this.shouldApplyGlobalOmit() ? this.params.globalOmit?.[We(this.params.modelName)] ?? {} : {}; + } + shouldApplyGlobalOmit() { + switch (this.params.action) { + case "findFirst": + case "findFirstOrThrow": + case "findUniqueOrThrow": + case "findMany": + case "upsert": + case "findUnique": + case "createManyAndReturn": + case "create": + case "update": + case "updateManyAndReturn": + case "delete": + return true; + case "executeRaw": + case "aggregateRaw": + case "runCommandRaw": + case "findRaw": + case "createMany": + case "deleteMany": + case "groupBy": + case "updateMany": + case "count": + case "aggregate": + case "queryRaw": + return false; + default: + ar(this.params.action, "Unknown action"); + } + } + nestArgument(r) { + return new e({ ...this.params, argumentPath: this.params.argumentPath.concat(r) }); + } + }; + function Aa(e) { + if (!e._hasPreviewFlag("metrics")) throw new Z("`metrics` preview feature must be enabled in order to access metrics API", { clientVersion: e._clientVersion }); + } + __name(Aa, "Aa"); + var Lr = class { + static { + __name(this, "Lr"); + } + _client; + constructor(r) { + this._client = r; + } + prometheus(r) { + return Aa(this._client), this._client._engine.metrics({ format: "prometheus", ...r }); + } + json(r) { + return Aa(this._client), this._client._engine.metrics({ format: "json", ...r }); + } + }; + function Ca(e, r) { + let t = lt(() => sm(r)); + Object.defineProperty(e, "dmmf", { get: /* @__PURE__ */ __name(() => t.get(), "get") }); + } + __name(Ca, "Ca"); + function sm(e) { + return { datamodel: { models: ro(e.models), enums: ro(e.enums), types: ro(e.types) } }; + } + __name(sm, "sm"); + function ro(e) { + return Object.entries(e).map(([r, t]) => ({ name: r, ...t })); + } + __name(ro, "ro"); + var to = /* @__PURE__ */ new WeakMap(); + var qn = "$$PrismaTypedSql"; + var wt = class { + static { + __name(this, "wt"); + } + constructor(r, t) { + to.set(this, { sql: r, values: t }), Object.defineProperty(this, qn, { value: qn }); + } + get sql() { + return to.get(this).sql; + } + get values() { + return to.get(this).values; + } + }; + function Ia(e) { + return (...r) => new wt(e, r); + } + __name(Ia, "Ia"); + function Vn(e) { + return e != null && e[qn] === qn; + } + __name(Vn, "Vn"); + var cu = O(Ti()); + var pu = require("node:async_hooks"); + var du = require("node:events"); + var mu = O(require("node:fs")); + var ri = O(require("node:path")); + var ie = class e { + static { + __name(this, "e"); + } + constructor(r, t) { + if (r.length - 1 !== t.length) throw r.length === 0 ? new TypeError("Expected at least 1 string") : new TypeError(`Expected ${r.length} strings to have ${r.length - 1} values`); + let n = t.reduce((s, a) => s + (a instanceof e ? a.values.length : 1), 0); + this.values = new Array(n), this.strings = new Array(n + 1), this.strings[0] = r[0]; + let i = 0, o = 0; + for (; i < t.length; ) { + let s = t[i++], a = r[i]; + if (s instanceof e) { + this.strings[o] += s.strings[0]; + let l = 0; + for (; l < s.values.length; ) this.values[o++] = s.values[l++], this.strings[o] = s.strings[l]; + this.strings[o] += a; + } else this.values[o++] = s, this.strings[o] = a; + } + } + get sql() { + let r = this.strings.length, t = 1, n = this.strings[0]; + for (; t < r; ) n += `?${this.strings[t++]}`; + return n; + } + get statement() { + let r = this.strings.length, t = 1, n = this.strings[0]; + for (; t < r; ) n += `:${t}${this.strings[t++]}`; + return n; + } + get text() { + let r = this.strings.length, t = 1, n = this.strings[0]; + for (; t < r; ) n += `$${t}${this.strings[t++]}`; + return n; + } + inspect() { + return { sql: this.sql, statement: this.statement, text: this.text, values: this.values }; + } + }; + function Da(e, r = ",", t = "", n = "") { + if (e.length === 0) throw new TypeError("Expected `join([])` to be called with an array of multiple elements, but got an empty array"); + return new ie([t, ...Array(e.length - 1).fill(r), n], e); + } + __name(Da, "Da"); + function no(e) { + return new ie([e], []); + } + __name(no, "no"); + var Oa = no(""); + function io(e, ...r) { + return new ie(e, r); + } + __name(io, "io"); + function xt(e) { + return { getKeys() { + return Object.keys(e); + }, getPropertyValue(r) { + return e[r]; + } }; + } + __name(xt, "xt"); + function re(e, r) { + return { getKeys() { + return [e]; + }, getPropertyValue() { + return r(); + } }; + } + __name(re, "re"); + function lr(e) { + let r = new we(); + return { getKeys() { + return e.getKeys(); + }, getPropertyValue(t) { + return r.getOrCreate(t, () => e.getPropertyValue(t)); + }, getPropertyDescriptor(t) { + return e.getPropertyDescriptor?.(t); + } }; + } + __name(lr, "lr"); + var jn = { enumerable: true, configurable: true, writable: true }; + function Bn(e) { + let r = new Set(e); + return { getPrototypeOf: /* @__PURE__ */ __name(() => Object.prototype, "getPrototypeOf"), getOwnPropertyDescriptor: /* @__PURE__ */ __name(() => jn, "getOwnPropertyDescriptor"), has: /* @__PURE__ */ __name((t, n) => r.has(n), "has"), set: /* @__PURE__ */ __name((t, n, i) => r.add(n) && Reflect.set(t, n, i), "set"), ownKeys: /* @__PURE__ */ __name(() => [...r], "ownKeys") }; + } + __name(Bn, "Bn"); + var ka = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom"); + function he(e, r) { + let t = am(r), n = /* @__PURE__ */ new Set(), i = new Proxy(e, { get(o, s) { + if (n.has(s)) return o[s]; + let a = t.get(s); + return a ? a.getPropertyValue(s) : o[s]; + }, has(o, s) { + if (n.has(s)) return true; + let a = t.get(s); + return a ? a.has?.(s) ?? true : Reflect.has(o, s); + }, ownKeys(o) { + let s = _a(Reflect.ownKeys(o), t), a = _a(Array.from(t.keys()), t); + return [.../* @__PURE__ */ new Set([...s, ...a, ...n])]; + }, set(o, s, a) { + return t.get(s)?.getPropertyDescriptor?.(s)?.writable === false ? false : (n.add(s), Reflect.set(o, s, a)); + }, getOwnPropertyDescriptor(o, s) { + let a = Reflect.getOwnPropertyDescriptor(o, s); + if (a && !a.configurable) return a; + let l = t.get(s); + return l ? l.getPropertyDescriptor ? { ...jn, ...l?.getPropertyDescriptor(s) } : jn : a; + }, defineProperty(o, s, a) { + return n.add(s), Reflect.defineProperty(o, s, a); + }, getPrototypeOf: /* @__PURE__ */ __name(() => Object.prototype, "getPrototypeOf") }); + return i[ka] = function() { + let o = { ...this }; + return delete o[ka], o; + }, i; + } + __name(he, "he"); + function am(e) { + let r = /* @__PURE__ */ new Map(); + for (let t of e) { + let n = t.getKeys(); + for (let i of n) r.set(i, t); + } + return r; + } + __name(am, "am"); + function _a(e, r) { + return e.filter((t) => r.get(t)?.has?.(t) ?? true); + } + __name(_a, "_a"); + function Fr(e) { + return { getKeys() { + return e; + }, has() { + return false; + }, getPropertyValue() { + } }; + } + __name(Fr, "Fr"); + function Mr(e, r) { + return { batch: e, transaction: r?.kind === "batch" ? { isolationLevel: r.options.isolationLevel } : void 0 }; + } + __name(Mr, "Mr"); + function Na(e) { + if (e === void 0) return ""; + let r = _r(e); + return new Ar(0, { colors: Cn }).write(r).toString(); + } + __name(Na, "Na"); + var lm = "P2037"; + function $r({ error: e, user_facing_error: r }, t, n) { + return r.error_code ? new z(um(r, n), { code: r.error_code, clientVersion: t, meta: r.meta, batchRequestIdx: r.batch_request_idx }) : new V(e, { clientVersion: t, batchRequestIdx: r.batch_request_idx }); + } + __name($r, "$r"); + function um(e, r) { + let t = e.message; + return (r === "postgresql" || r === "postgres" || r === "mysql") && e.error_code === lm && (t += ` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`), t; + } + __name(um, "um"); + var vt = ""; + function La(e) { + var r = e.split(` +`); + return r.reduce(function(t, n) { + var i = dm(n) || fm(n) || ym(n) || xm(n) || Em(n); + return i && t.push(i), t; + }, []); + } + __name(La, "La"); + var cm = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i; + var pm = /\((\S*)(?::(\d+))(?::(\d+))\)/; + function dm(e) { + var r = cm.exec(e); + if (!r) return null; + var t = r[2] && r[2].indexOf("native") === 0, n = r[2] && r[2].indexOf("eval") === 0, i = pm.exec(r[2]); + return n && i != null && (r[2] = i[1], r[3] = i[2], r[4] = i[3]), { file: t ? null : r[2], methodName: r[1] || vt, arguments: t ? [r[2]] : [], lineNumber: r[3] ? +r[3] : null, column: r[4] ? +r[4] : null }; + } + __name(dm, "dm"); + var mm = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i; + function fm(e) { + var r = mm.exec(e); + return r ? { file: r[2], methodName: r[1] || vt, arguments: [], lineNumber: +r[3], column: r[4] ? +r[4] : null } : null; + } + __name(fm, "fm"); + var gm = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i; + var hm = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i; + function ym(e) { + var r = gm.exec(e); + if (!r) return null; + var t = r[3] && r[3].indexOf(" > eval") > -1, n = hm.exec(r[3]); + return t && n != null && (r[3] = n[1], r[4] = n[2], r[5] = null), { file: r[3], methodName: r[1] || vt, arguments: r[2] ? r[2].split(",") : [], lineNumber: r[4] ? +r[4] : null, column: r[5] ? +r[5] : null }; + } + __name(ym, "ym"); + var bm = /^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i; + function Em(e) { + var r = bm.exec(e); + return r ? { file: r[3], methodName: r[1] || vt, arguments: [], lineNumber: +r[4], column: r[5] ? +r[5] : null } : null; + } + __name(Em, "Em"); + var wm = /^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i; + function xm(e) { + var r = wm.exec(e); + return r ? { file: r[2], methodName: r[1] || vt, arguments: [], lineNumber: +r[3], column: r[4] ? +r[4] : null } : null; + } + __name(xm, "xm"); + var oo = class { + static { + __name(this, "oo"); + } + getLocation() { + return null; + } + }; + var so = class { + static { + __name(this, "so"); + } + _error; + constructor() { + this._error = new Error(); + } + getLocation() { + let r = this._error.stack; + if (!r) return null; + let n = La(r).find((i) => { + if (!i.file) return false; + let o = Li(i.file); + return o !== "" && !o.includes("@prisma") && !o.includes("/packages/client/src/runtime/") && !o.endsWith("/runtime/binary.js") && !o.endsWith("/runtime/library.js") && !o.endsWith("/runtime/edge.js") && !o.endsWith("/runtime/edge-esm.js") && !o.startsWith("internal/") && !i.methodName.includes("new ") && !i.methodName.includes("getCallSite") && !i.methodName.includes("Proxy.") && i.methodName.split(".").length < 4; + }); + return !n || !n.file ? null : { fileName: n.file, lineNumber: n.lineNumber, columnNumber: n.column }; + } + }; + function Ze(e) { + return e === "minimal" ? typeof $EnabledCallSite == "function" && e !== "minimal" ? new $EnabledCallSite() : new oo() : new so(); + } + __name(Ze, "Ze"); + var Fa = { _avg: true, _count: true, _sum: true, _min: true, _max: true }; + function qr(e = {}) { + let r = Pm(e); + return Object.entries(r).reduce((n, [i, o]) => (Fa[i] !== void 0 ? n.select[i] = { select: o } : n[i] = o, n), { select: {} }); + } + __name(qr, "qr"); + function Pm(e = {}) { + return typeof e._count == "boolean" ? { ...e, _count: { _all: e._count } } : e; + } + __name(Pm, "Pm"); + function Un(e = {}) { + return (r) => (typeof e._count == "boolean" && (r._count = r._count._all), r); + } + __name(Un, "Un"); + function Ma(e, r) { + let t = Un(e); + return r({ action: "aggregate", unpacker: t, argsMapper: qr })(e); + } + __name(Ma, "Ma"); + function Tm(e = {}) { + let { select: r, ...t } = e; + return typeof r == "object" ? qr({ ...t, _count: r }) : qr({ ...t, _count: { _all: true } }); + } + __name(Tm, "Tm"); + function Sm(e = {}) { + return typeof e.select == "object" ? (r) => Un(e)(r)._count : (r) => Un(e)(r)._count._all; + } + __name(Sm, "Sm"); + function $a(e, r) { + return r({ action: "count", unpacker: Sm(e), argsMapper: Tm })(e); + } + __name($a, "$a"); + function Rm(e = {}) { + let r = qr(e); + if (Array.isArray(r.by)) for (let t of r.by) typeof t == "string" && (r.select[t] = true); + else typeof r.by == "string" && (r.select[r.by] = true); + return r; + } + __name(Rm, "Rm"); + function Am(e = {}) { + return (r) => (typeof e?._count == "boolean" && r.forEach((t) => { + t._count = t._count._all; + }), r); + } + __name(Am, "Am"); + function qa(e, r) { + return r({ action: "groupBy", unpacker: Am(e), argsMapper: Rm })(e); + } + __name(qa, "qa"); + function Va(e, r, t) { + if (r === "aggregate") return (n) => Ma(n, t); + if (r === "count") return (n) => $a(n, t); + if (r === "groupBy") return (n) => qa(n, t); + } + __name(Va, "Va"); + function ja(e, r) { + let t = r.fields.filter((i) => !i.relationName), n = _s(t, "name"); + return new Proxy({}, { get(i, o) { + if (o in i || typeof o == "symbol") return i[o]; + let s = n[o]; + if (s) return new mt(e, o, s.type, s.isList, s.kind === "enum"); + }, ...Bn(Object.keys(n)) }); + } + __name(ja, "ja"); + var Ba = /* @__PURE__ */ __name((e) => Array.isArray(e) ? e : e.split("."), "Ba"); + var ao = /* @__PURE__ */ __name((e, r) => Ba(r).reduce((t, n) => t && t[n], e), "ao"); + var Ua = /* @__PURE__ */ __name((e, r, t) => Ba(r).reduceRight((n, i, o, s) => Object.assign({}, ao(e, s.slice(0, o)), { [i]: n }), t), "Ua"); + function Cm(e, r) { + return e === void 0 || r === void 0 ? [] : [...r, "select", e]; + } + __name(Cm, "Cm"); + function Im(e, r, t) { + return r === void 0 ? e ?? {} : Ua(r, t, e || true); + } + __name(Im, "Im"); + function lo(e, r, t, n, i, o) { + let a = e._runtimeDataModel.models[r].fields.reduce((l, u) => ({ ...l, [u.name]: u }), {}); + return (l) => { + let u = Ze(e._errorFormat), c = Cm(n, i), p = Im(l, o, c), d = t({ dataPath: c, callsite: u })(p), f = Dm(e, r); + return new Proxy(d, { get(h, g) { + if (!f.includes(g)) return h[g]; + let T = [a[g].type, t, g], S = [c, p]; + return lo(e, ...T, ...S); + }, ...Bn([...f, ...Object.getOwnPropertyNames(d)]) }); + }; + } + __name(lo, "lo"); + function Dm(e, r) { + return e._runtimeDataModel.models[r].fields.filter((t) => t.kind === "object").map((t) => t.name); + } + __name(Dm, "Dm"); + var Om = ["findUnique", "findUniqueOrThrow", "findFirst", "findFirstOrThrow", "create", "update", "upsert", "delete"]; + var km = ["aggregate", "count", "groupBy"]; + function uo(e, r) { + let t = e._extensions.getAllModelExtensions(r) ?? {}, n = [_m(e, r), Lm(e, r), xt(t), re("name", () => r), re("$name", () => r), re("$parent", () => e._appliedParent)]; + return he({}, n); + } + __name(uo, "uo"); + function _m(e, r) { + let t = Te(r), n = Object.keys(Rr).concat("count"); + return { getKeys() { + return n; + }, getPropertyValue(i) { + let o = i, s = /* @__PURE__ */ __name((a) => (l) => { + let u = Ze(e._errorFormat); + return e._createPrismaPromise((c) => { + let p = { args: l, dataPath: [], action: o, model: r, clientMethod: `${t}.${i}`, jsModelName: t, transaction: c, callsite: u }; + return e._request({ ...p, ...a }); + }, { action: o, args: l, model: r }); + }, "s"); + return Om.includes(o) ? lo(e, r, s) : Nm(i) ? Va(e, i, s) : s({}); + } }; + } + __name(_m, "_m"); + function Nm(e) { + return km.includes(e); + } + __name(Nm, "Nm"); + function Lm(e, r) { + return lr(re("fields", () => { + let t = e._runtimeDataModel.models[r]; + return ja(r, t); + })); + } + __name(Lm, "Lm"); + function Ga(e) { + return e.replace(/^./, (r) => r.toUpperCase()); + } + __name(Ga, "Ga"); + var co = /* @__PURE__ */ Symbol(); + function Pt(e) { + let r = [Fm(e), Mm(e), re(co, () => e), re("$parent", () => e._appliedParent)], t = e._extensions.getAllClientExtensions(); + return t && r.push(xt(t)), he(e, r); + } + __name(Pt, "Pt"); + function Fm(e) { + let r = Object.getPrototypeOf(e._originalClient), t = [...new Set(Object.getOwnPropertyNames(r))]; + return { getKeys() { + return t; + }, getPropertyValue(n) { + return e[n]; + } }; + } + __name(Fm, "Fm"); + function Mm(e) { + let r = Object.keys(e._runtimeDataModel.models), t = r.map(Te), n = [...new Set(r.concat(t))]; + return lr({ getKeys() { + return n; + }, getPropertyValue(i) { + let o = Ga(i); + if (e._runtimeDataModel.models[o] !== void 0) return uo(e, o); + if (e._runtimeDataModel.models[i] !== void 0) return uo(e, i); + }, getPropertyDescriptor(i) { + if (!t.includes(i)) return { enumerable: false }; + } }); + } + __name(Mm, "Mm"); + function Qa(e) { + return e[co] ? e[co] : e; + } + __name(Qa, "Qa"); + function Wa(e) { + if (typeof e == "function") return e(this); + if (e.client?.__AccelerateEngine) { + let t = e.client.__AccelerateEngine; + this._originalClient._engine = new t(this._originalClient._accelerateEngineConfig); + } + let r = Object.create(this._originalClient, { _extensions: { value: this._extensions.append(e) }, _appliedParent: { value: this, configurable: true }, $on: { value: void 0 } }); + return Pt(r); + } + __name(Wa, "Wa"); + function Ja({ result: e, modelName: r, select: t, omit: n, extensions: i }) { + let o = i.getAllComputedFields(r); + if (!o) return e; + let s = [], a = []; + for (let l of Object.values(o)) { + if (n) { + if (n[l.name]) continue; + let u = l.needs.filter((c) => n[c]); + u.length > 0 && a.push(Fr(u)); + } else if (t) { + if (!t[l.name]) continue; + let u = l.needs.filter((c) => !t[c]); + u.length > 0 && a.push(Fr(u)); + } + $m(e, l.needs) && s.push(qm(l, he(e, s))); + } + return s.length > 0 || a.length > 0 ? he(e, [...s, ...a]) : e; + } + __name(Ja, "Ja"); + function $m(e, r) { + return r.every((t) => Vi(e, t)); + } + __name($m, "$m"); + function qm(e, r) { + return lr(re(e.name, () => e.compute(r))); + } + __name(qm, "qm"); + function Gn({ visitor: e, result: r, args: t, runtimeDataModel: n, modelName: i }) { + if (Array.isArray(r)) { + for (let s = 0; s < r.length; s++) r[s] = Gn({ result: r[s], args: t, modelName: i, runtimeDataModel: n, visitor: e }); + return r; + } + let o = e(r, i, t) ?? r; + return t.include && Ka({ includeOrSelect: t.include, result: o, parentModelName: i, runtimeDataModel: n, visitor: e }), t.select && Ka({ includeOrSelect: t.select, result: o, parentModelName: i, runtimeDataModel: n, visitor: e }), o; + } + __name(Gn, "Gn"); + function Ka({ includeOrSelect: e, result: r, parentModelName: t, runtimeDataModel: n, visitor: i }) { + for (let [o, s] of Object.entries(e)) { + if (!s || r[o] == null || Se(s)) continue; + let l = n.models[t].fields.find((c) => c.name === o); + if (!l || l.kind !== "object" || !l.relationName) continue; + let u = typeof s == "object" ? s : {}; + r[o] = Gn({ visitor: i, result: r[o], args: u, modelName: l.type, runtimeDataModel: n }); + } + } + __name(Ka, "Ka"); + function Ha({ result: e, modelName: r, args: t, extensions: n, runtimeDataModel: i, globalOmit: o }) { + return n.isEmpty() || e == null || typeof e != "object" || !i.models[r] ? e : Gn({ result: e, args: t ?? {}, modelName: r, runtimeDataModel: i, visitor: /* @__PURE__ */ __name((a, l, u) => { + let c = Te(l); + return Ja({ result: a, modelName: c, select: u.select, omit: u.select ? void 0 : { ...o?.[c], ...u.omit }, extensions: n }); + }, "visitor") }); + } + __name(Ha, "Ha"); + var Vm = ["$connect", "$disconnect", "$on", "$transaction", "$extends"]; + var Ya = Vm; + function za(e) { + if (e instanceof ie) return jm(e); + if (Vn(e)) return Bm(e); + if (Array.isArray(e)) { + let t = [e[0]]; + for (let n = 1; n < e.length; n++) t[n] = Tt(e[n]); + return t; + } + let r = {}; + for (let t in e) r[t] = Tt(e[t]); + return r; + } + __name(za, "za"); + function jm(e) { + return new ie(e.strings, e.values); + } + __name(jm, "jm"); + function Bm(e) { + return new wt(e.sql, e.values); + } + __name(Bm, "Bm"); + function Tt(e) { + if (typeof e != "object" || e == null || e instanceof Me || kr(e)) return e; + if (Sr(e)) return new Fe(e.toFixed()); + if (vr(e)) return /* @__PURE__ */ new Date(+e); + if (ArrayBuffer.isView(e)) return e.slice(0); + if (Array.isArray(e)) { + let r = e.length, t; + for (t = Array(r); r--; ) t[r] = Tt(e[r]); + return t; + } + if (typeof e == "object") { + let r = {}; + for (let t in e) t === "__proto__" ? Object.defineProperty(r, t, { value: Tt(e[t]), configurable: true, enumerable: true, writable: true }) : r[t] = Tt(e[t]); + return r; + } + ar(e, "Unknown value"); + } + __name(Tt, "Tt"); + function Xa(e, r, t, n = 0) { + return e._createPrismaPromise((i) => { + let o = r.customDataProxyFetch; + return "transaction" in r && i !== void 0 && (r.transaction?.kind === "batch" && r.transaction.lock.then(), r.transaction = i), n === t.length ? e._executeRequest(r) : t[n]({ model: r.model, operation: r.model ? r.action : r.clientMethod, args: za(r.args ?? {}), __internalParams: r, query: /* @__PURE__ */ __name((s, a = r) => { + let l = a.customDataProxyFetch; + return a.customDataProxyFetch = nl(o, l), a.args = s, Xa(e, a, t, n + 1); + }, "query") }); + }); + } + __name(Xa, "Xa"); + function el(e, r) { + let { jsModelName: t, action: n, clientMethod: i } = r, o = t ? n : i; + if (e._extensions.isEmpty()) return e._executeRequest(r); + let s = e._extensions.getAllQueryCallbacks(t ?? "$none", o); + return Xa(e, r, s); + } + __name(el, "el"); + function rl(e) { + return (r) => { + let t = { requests: r }, n = r[0].extensions.getAllBatchQueryCallbacks(); + return n.length ? tl(t, n, 0, e) : e(t); + }; + } + __name(rl, "rl"); + function tl(e, r, t, n) { + if (t === r.length) return n(e); + let i = e.customDataProxyFetch, o = e.requests[0].transaction; + return r[t]({ args: { queries: e.requests.map((s) => ({ model: s.modelName, operation: s.action, args: s.args })), transaction: o ? { isolationLevel: o.kind === "batch" ? o.isolationLevel : void 0 } : void 0 }, __internalParams: e, query(s, a = e) { + let l = a.customDataProxyFetch; + return a.customDataProxyFetch = nl(i, l), tl(a, r, t + 1, n); + } }); + } + __name(tl, "tl"); + var Za = /* @__PURE__ */ __name((e) => e, "Za"); + function nl(e = Za, r = Za) { + return (t) => e(r(t)); + } + __name(nl, "nl"); + var il = N("prisma:client"); + var ol = { Vercel: "vercel", "Netlify CI": "netlify" }; + function sl({ postinstall: e, ciName: r, clientVersion: t, generator: n }) { + if (il("checkPlatformCaching:postinstall", e), il("checkPlatformCaching:ciName", r), e === true && !(n?.output && typeof (n.output.fromEnvVar ?? n.output.value) == "string") && r && r in ol) { + let i = `Prisma has detected that this project was built on ${r}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${ol[r]}-build`; + throw console.error(i), new P(i, t); + } + } + __name(sl, "sl"); + function al(e, r) { + return e ? e.datasources ? e.datasources : e.datasourceUrl ? { [r[0]]: { url: e.datasourceUrl } } : {} : {}; + } + __name(al, "al"); + var dl = O(require("node:fs")); + var St = O(require("node:path")); + function Qn(e) { + let { runtimeBinaryTarget: r } = e; + return `Add "${r}" to \`binaryTargets\` in the "schema.prisma" file and run \`prisma generate\` after saving it: + +${Um(e)}`; + } + __name(Qn, "Qn"); + function Um(e) { + let { generator: r, generatorBinaryTargets: t, runtimeBinaryTarget: n } = e, i = { fromEnvVar: null, value: n }, o = [...t, i]; + return ki({ ...r, binaryTargets: o }); + } + __name(Um, "Um"); + function Xe(e) { + let { runtimeBinaryTarget: r } = e; + return `Prisma Client could not locate the Query Engine for runtime "${r}".`; + } + __name(Xe, "Xe"); + function er(e) { + let { searchedLocations: r } = e; + return `The following locations have been searched: +${[...new Set(r)].map((i) => ` ${i}`).join(` +`)}`; + } + __name(er, "er"); + function ll(e) { + let { runtimeBinaryTarget: r } = e; + return `${Xe(e)} + +This happened because \`binaryTargets\` have been pinned, but the actual deployment also required "${r}". +${Qn(e)} + +${er(e)}`; + } + __name(ll, "ll"); + function Wn(e) { + return `We would appreciate if you could take the time to share some information with us. +Please help us by answering a few questions: https://pris.ly/${e}`; + } + __name(Wn, "Wn"); + function Jn(e) { + let { errorStack: r } = e; + return r?.match(/\/\.next|\/next@|\/next\//) ? ` + +We detected that you are using Next.js, learn how to fix this: https://pris.ly/d/engine-not-found-nextjs.` : ""; + } + __name(Jn, "Jn"); + function ul(e) { + let { queryEngineName: r } = e; + return `${Xe(e)}${Jn(e)} + +This is likely caused by a bundler that has not copied "${r}" next to the resulting bundle. +Ensure that "${r}" has been copied next to the bundle or in "${e.expectedLocation}". + +${Wn("engine-not-found-bundler-investigation")} + +${er(e)}`; + } + __name(ul, "ul"); + function cl(e) { + let { runtimeBinaryTarget: r, generatorBinaryTargets: t } = e, n = t.find((i) => i.native); + return `${Xe(e)} + +This happened because Prisma Client was generated for "${n?.value ?? "unknown"}", but the actual deployment required "${r}". +${Qn(e)} + +${er(e)}`; + } + __name(cl, "cl"); + function pl(e) { + let { queryEngineName: r } = e; + return `${Xe(e)}${Jn(e)} + +This is likely caused by tooling that has not copied "${r}" to the deployment folder. +Ensure that you ran \`prisma generate\` and that "${r}" has been copied to "${e.expectedLocation}". + +${Wn("engine-not-found-tooling-investigation")} + +${er(e)}`; + } + __name(pl, "pl"); + var Gm = N("prisma:client:engines:resolveEnginePath"); + var Qm = /* @__PURE__ */ __name(() => new RegExp("runtime[\\\\/]library\\.m?js$"), "Qm"); + async function ml(e, r) { + let t = { binary: process.env.PRISMA_QUERY_ENGINE_BINARY, library: process.env.PRISMA_QUERY_ENGINE_LIBRARY }[e] ?? r.prismaPath; + if (t !== void 0) return t; + let { enginePath: n, searchedLocations: i } = await Wm(e, r); + if (Gm("enginePath", n), n !== void 0 && e === "binary" && Ri(n), n !== void 0) return r.prismaPath = n; + let o = await ir(), s = r.generator?.binaryTargets ?? [], a = s.some((d) => d.native), l = !s.some((d) => d.value === o), u = __filename.match(Qm()) === null, c = { searchedLocations: i, generatorBinaryTargets: s, generator: r.generator, runtimeBinaryTarget: o, queryEngineName: fl(e, o), expectedLocation: St.default.relative(process.cwd(), r.dirname), errorStack: new Error().stack }, p; + throw a && l ? p = cl(c) : l ? p = ll(c) : u ? p = ul(c) : p = pl(c), new P(p, r.clientVersion); + } + __name(ml, "ml"); + async function Wm(e, r) { + let t = await ir(), n = [], i = [r.dirname, St.default.resolve(__dirname, ".."), r.generator?.output?.value ?? __dirname, St.default.resolve(__dirname, "../../../.prisma/client"), "/tmp/prisma-engines", r.cwd]; + __filename.includes("resolveEnginePath") && i.push(ms()); + for (let o of i) { + let s = fl(e, t), a = St.default.join(o, s); + if (n.push(o), dl.default.existsSync(a)) return { enginePath: a, searchedLocations: n }; + } + return { enginePath: void 0, searchedLocations: n }; + } + __name(Wm, "Wm"); + function fl(e, r) { + return e === "library" ? Gt(r, "fs") : `query-engine-${r}${r === "windows" ? ".exe" : ""}`; + } + __name(fl, "fl"); + function gl(e) { + return e ? e.replace(/".*"/g, '"X"').replace(/[\s:\[]([+-]?([0-9]*[.])?[0-9]+)/g, (r) => `${r[0]}5`) : ""; + } + __name(gl, "gl"); + function hl(e) { + return e.split(` +`).map((r) => r.replace(/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)\s*/, "").replace(/\+\d+\s*ms$/, "")).join(` +`); + } + __name(hl, "hl"); + var yl = O(Os()); + function bl({ title: e, user: r = "prisma", repo: t = "prisma", template: n = "bug_report.yml", body: i }) { + return (0, yl.default)({ user: r, repo: t, template: n, title: e, body: i }); + } + __name(bl, "bl"); + function El({ version: e, binaryTarget: r, title: t, description: n, engineVersion: i, database: o, query: s }) { + let a = Bo(6e3 - (s?.length ?? 0)), l = hl(wr(a)), u = n ? `# Description +\`\`\` +${n} +\`\`\`` : "", c = wr(`Hi Prisma Team! My Prisma Client just crashed. This is the report: +## Versions + +| Name | Version | +|-----------------|--------------------| +| Node | ${process.version?.padEnd(19)}| +| OS | ${r?.padEnd(19)}| +| Prisma Client | ${e?.padEnd(19)}| +| Query Engine | ${i?.padEnd(19)}| +| Database | ${o?.padEnd(19)}| + +${u} + +## Logs +\`\`\` +${l} +\`\`\` + +## Client Snippet +\`\`\`ts +// PLEASE FILL YOUR CODE SNIPPET HERE +\`\`\` + +## Schema +\`\`\`prisma +// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE +\`\`\` + +## Prisma Engine Query +\`\`\` +${s ? gl(s) : ""} +\`\`\` +`), p = bl({ title: t, body: c }); + return `${t} + +This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. + +${Y(p)} + +If you want the Prisma team to look into it, please open the link above \u{1F64F} +To increase the chance of success, please post your schema and a snippet of +how you used Prisma Client in the issue. +`; + } + __name(El, "El"); + function wl(e, r) { + throw new Error(r); + } + __name(wl, "wl"); + function Jm(e) { + return e !== null && typeof e == "object" && typeof e.$type == "string"; + } + __name(Jm, "Jm"); + function Km(e, r) { + let t = {}; + for (let n of Object.keys(e)) t[n] = r(e[n], n); + return t; + } + __name(Km, "Km"); + function Vr(e) { + return e === null ? e : Array.isArray(e) ? e.map(Vr) : typeof e == "object" ? Jm(e) ? Hm(e) : e.constructor !== null && e.constructor.name !== "Object" ? e : Km(e, Vr) : e; + } + __name(Vr, "Vr"); + function Hm({ $type: e, value: r }) { + switch (e) { + case "BigInt": + return BigInt(r); + case "Bytes": { + let { buffer: t, byteOffset: n, byteLength: i } = Buffer.from(r, "base64"); + return new Uint8Array(t, n, i); + } + case "DateTime": + return new Date(r); + case "Decimal": + return new Le(r); + case "Json": + return JSON.parse(r); + default: + wl(r, "Unknown tagged value"); + } + } + __name(Hm, "Hm"); + var xl = "6.19.3"; + var zm = /* @__PURE__ */ __name(() => globalThis.process?.release?.name === "node", "zm"); + var Zm = /* @__PURE__ */ __name(() => !!globalThis.Bun || !!globalThis.process?.versions?.bun, "Zm"); + var Xm = /* @__PURE__ */ __name(() => !!globalThis.Deno, "Xm"); + var ef = /* @__PURE__ */ __name(() => typeof globalThis.Netlify == "object", "ef"); + var rf = /* @__PURE__ */ __name(() => typeof globalThis.EdgeRuntime == "object", "rf"); + var tf = /* @__PURE__ */ __name(() => globalThis.navigator?.userAgent === "Cloudflare-Workers", "tf"); + function nf() { + return [[ef, "netlify"], [rf, "edge-light"], [tf, "workerd"], [Xm, "deno"], [Zm, "bun"], [zm, "node"]].flatMap((t) => t[0]() ? [t[1]] : []).at(0) ?? ""; + } + __name(nf, "nf"); + var of = { node: "Node.js", workerd: "Cloudflare Workers", deno: "Deno and Deno Deploy", netlify: "Netlify Edge Functions", "edge-light": "Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)" }; + function Kn() { + let e = nf(); + return { id: e, prettyName: of[e] || e, isEdge: ["workerd", "deno", "netlify", "edge-light"].includes(e) }; + } + __name(Kn, "Kn"); + function jr({ inlineDatasources: e, overrideDatasources: r, env: t, clientVersion: n }) { + let i, o = Object.keys(e)[0], s = e[o]?.url, a = r[o]?.url; + if (o === void 0 ? i = void 0 : a ? i = a : s?.value ? i = s.value : s?.fromEnvVar && (i = t[s.fromEnvVar]), s?.fromEnvVar !== void 0 && i === void 0) throw new P(`error: Environment variable not found: ${s.fromEnvVar}.`, n); + if (i === void 0) throw new P("error: Missing URL environment variable, value, or override.", n); + return i; + } + __name(jr, "jr"); + var Hn = class extends Error { + static { + __name(this, "Hn"); + } + clientVersion; + cause; + constructor(r, t) { + super(r), this.clientVersion = t.clientVersion, this.cause = t.cause; + } + get [Symbol.toStringTag]() { + return this.name; + } + }; + var oe = class extends Hn { + static { + __name(this, "oe"); + } + isRetryable; + constructor(r, t) { + super(r, t), this.isRetryable = t.isRetryable ?? true; + } + }; + function R(e, r) { + return { ...e, isRetryable: r }; + } + __name(R, "R"); + var ur = class extends oe { + static { + __name(this, "ur"); + } + name = "InvalidDatasourceError"; + code = "P6001"; + constructor(r, t) { + super(r, R(t, false)); + } + }; + x(ur, "InvalidDatasourceError"); + function vl(e) { + let r = { clientVersion: e.clientVersion }, t = Object.keys(e.inlineDatasources)[0], n = jr({ inlineDatasources: e.inlineDatasources, overrideDatasources: e.overrideDatasources, clientVersion: e.clientVersion, env: { ...e.env, ...typeof process < "u" ? process.env : {} } }), i; + try { + i = new URL(n); + } catch { + throw new ur(`Error validating datasource \`${t}\`: the URL must start with the protocol \`prisma://\``, r); + } + let { protocol: o, searchParams: s } = i; + if (o !== "prisma:" && o !== sn) throw new ur(`Error validating datasource \`${t}\`: the URL must start with the protocol \`prisma://\` or \`prisma+postgres://\``, r); + let a = s.get("api_key"); + if (a === null || a.length < 1) throw new ur(`Error validating datasource \`${t}\`: the URL must contain a valid API key`, r); + let l = Ii(i) ? "http:" : "https:"; + process.env.TEST_CLIENT_ENGINE_REMOTE_EXECUTOR && i.searchParams.has("use_http") && (l = "http:"); + let u = new URL(i.href.replace(o, l)); + return { apiKey: a, url: u }; + } + __name(vl, "vl"); + var Pl = O(on()); + var Yn = class { + static { + __name(this, "Yn"); + } + apiKey; + tracingHelper; + logLevel; + logQueries; + engineHash; + constructor({ apiKey: r, tracingHelper: t, logLevel: n, logQueries: i, engineHash: o }) { + this.apiKey = r, this.tracingHelper = t, this.logLevel = n, this.logQueries = i, this.engineHash = o; + } + build({ traceparent: r, transactionId: t } = {}) { + let n = { Accept: "application/json", Authorization: `Bearer ${this.apiKey}`, "Content-Type": "application/json", "Prisma-Engine-Hash": this.engineHash, "Prisma-Engine-Version": Pl.enginesVersion }; + this.tracingHelper.isEnabled() && (n.traceparent = r ?? this.tracingHelper.getTraceParent()), t && (n["X-Transaction-Id"] = t); + let i = this.#e(); + return i.length > 0 && (n["X-Capture-Telemetry"] = i.join(", ")), n; + } + #e() { + let r = []; + return this.tracingHelper.isEnabled() && r.push("tracing"), this.logLevel && r.push(this.logLevel), this.logQueries && r.push("query"), r; + } + }; + function sf(e) { + return e[0] * 1e3 + e[1] / 1e6; + } + __name(sf, "sf"); + function po(e) { + return new Date(sf(e)); + } + __name(po, "po"); + var Br = class extends oe { + static { + __name(this, "Br"); + } + name = "ForcedRetryError"; + code = "P5001"; + constructor(r) { + super("This request must be retried", R(r, true)); + } + }; + x(Br, "ForcedRetryError"); + var cr = class extends oe { + static { + __name(this, "cr"); + } + name = "NotImplementedYetError"; + code = "P5004"; + constructor(r, t) { + super(r, R(t, false)); + } + }; + x(cr, "NotImplementedYetError"); + var $ = class extends oe { + static { + __name(this, "$"); + } + response; + constructor(r, t) { + super(r, t), this.response = t.response; + let n = this.response.headers.get("prisma-request-id"); + if (n) { + let i = `(The request id was: ${n})`; + this.message = this.message + " " + i; + } + } + }; + var pr = class extends $ { + static { + __name(this, "pr"); + } + name = "SchemaMissingError"; + code = "P5005"; + constructor(r) { + super("Schema needs to be uploaded", R(r, true)); + } + }; + x(pr, "SchemaMissingError"); + var mo = "This request could not be understood by the server"; + var Rt = class extends $ { + static { + __name(this, "Rt"); + } + name = "BadRequestError"; + code = "P5000"; + constructor(r, t, n) { + super(t || mo, R(r, false)), n && (this.code = n); + } + }; + x(Rt, "BadRequestError"); + var At = class extends $ { + static { + __name(this, "At"); + } + name = "HealthcheckTimeoutError"; + code = "P5013"; + logs; + constructor(r, t) { + super("Engine not started: healthcheck timeout", R(r, true)), this.logs = t; + } + }; + x(At, "HealthcheckTimeoutError"); + var Ct = class extends $ { + static { + __name(this, "Ct"); + } + name = "EngineStartupError"; + code = "P5014"; + logs; + constructor(r, t, n) { + super(t, R(r, true)), this.logs = n; + } + }; + x(Ct, "EngineStartupError"); + var It = class extends $ { + static { + __name(this, "It"); + } + name = "EngineVersionNotSupportedError"; + code = "P5012"; + constructor(r) { + super("Engine version is not supported", R(r, false)); + } + }; + x(It, "EngineVersionNotSupportedError"); + var fo = "Request timed out"; + var Dt = class extends $ { + static { + __name(this, "Dt"); + } + name = "GatewayTimeoutError"; + code = "P5009"; + constructor(r, t = fo) { + super(t, R(r, false)); + } + }; + x(Dt, "GatewayTimeoutError"); + var af = "Interactive transaction error"; + var Ot = class extends $ { + static { + __name(this, "Ot"); + } + name = "InteractiveTransactionError"; + code = "P5015"; + constructor(r, t = af) { + super(t, R(r, false)); + } + }; + x(Ot, "InteractiveTransactionError"); + var lf = "Request parameters are invalid"; + var kt = class extends $ { + static { + __name(this, "kt"); + } + name = "InvalidRequestError"; + code = "P5011"; + constructor(r, t = lf) { + super(t, R(r, false)); + } + }; + x(kt, "InvalidRequestError"); + var go = "Requested resource does not exist"; + var _t = class extends $ { + static { + __name(this, "_t"); + } + name = "NotFoundError"; + code = "P5003"; + constructor(r, t = go) { + super(t, R(r, false)); + } + }; + x(_t, "NotFoundError"); + var ho = "Unknown server error"; + var Ur = class extends $ { + static { + __name(this, "Ur"); + } + name = "ServerError"; + code = "P5006"; + logs; + constructor(r, t, n) { + super(t || ho, R(r, true)), this.logs = n; + } + }; + x(Ur, "ServerError"); + var yo = "Unauthorized, check your connection string"; + var Nt = class extends $ { + static { + __name(this, "Nt"); + } + name = "UnauthorizedError"; + code = "P5007"; + constructor(r, t = yo) { + super(t, R(r, false)); + } + }; + x(Nt, "UnauthorizedError"); + var bo = "Usage exceeded, retry again later"; + var Lt = class extends $ { + static { + __name(this, "Lt"); + } + name = "UsageExceededError"; + code = "P5008"; + constructor(r, t = bo) { + super(t, R(r, true)); + } + }; + x(Lt, "UsageExceededError"); + async function uf(e) { + let r; + try { + r = await e.text(); + } catch { + return { type: "EmptyError" }; + } + try { + let t = JSON.parse(r); + if (typeof t == "string") switch (t) { + case "InternalDataProxyError": + return { type: "DataProxyError", body: t }; + default: + return { type: "UnknownTextError", body: t }; + } + if (typeof t == "object" && t !== null) { + if ("is_panic" in t && "message" in t && "error_code" in t) return { type: "QueryEngineError", body: t }; + if ("EngineNotStarted" in t || "InteractiveTransactionMisrouted" in t || "InvalidRequestError" in t) { + let n = Object.values(t)[0].reason; + return typeof n == "string" && !["SchemaMissing", "EngineVersionNotSupported"].includes(n) ? { type: "UnknownJsonError", body: t } : { type: "DataProxyError", body: t }; + } + } + return { type: "UnknownJsonError", body: t }; + } catch { + return r === "" ? { type: "EmptyError" } : { type: "UnknownTextError", body: r }; + } + } + __name(uf, "uf"); + async function Ft(e, r) { + if (e.ok) return; + let t = { clientVersion: r, response: e }, n = await uf(e); + if (n.type === "QueryEngineError") throw new z(n.body.message, { code: n.body.error_code, clientVersion: r }); + if (n.type === "DataProxyError") { + if (n.body === "InternalDataProxyError") throw new Ur(t, "Internal Data Proxy error"); + if ("EngineNotStarted" in n.body) { + if (n.body.EngineNotStarted.reason === "SchemaMissing") return new pr(t); + if (n.body.EngineNotStarted.reason === "EngineVersionNotSupported") throw new It(t); + if ("EngineStartupError" in n.body.EngineNotStarted.reason) { + let { msg: i, logs: o } = n.body.EngineNotStarted.reason.EngineStartupError; + throw new Ct(t, i, o); + } + if ("KnownEngineStartupError" in n.body.EngineNotStarted.reason) { + let { msg: i, error_code: o } = n.body.EngineNotStarted.reason.KnownEngineStartupError; + throw new P(i, r, o); + } + if ("HealthcheckTimeout" in n.body.EngineNotStarted.reason) { + let { logs: i } = n.body.EngineNotStarted.reason.HealthcheckTimeout; + throw new At(t, i); + } + } + if ("InteractiveTransactionMisrouted" in n.body) { + let i = { IDParseError: "Could not parse interactive transaction ID", NoQueryEngineFoundError: "Could not find Query Engine for the specified host and transaction ID", TransactionStartError: "Could not start interactive transaction" }; + throw new Ot(t, i[n.body.InteractiveTransactionMisrouted.reason]); + } + if ("InvalidRequestError" in n.body) throw new kt(t, n.body.InvalidRequestError.reason); + } + if (e.status === 401 || e.status === 403) throw new Nt(t, Gr(yo, n)); + if (e.status === 404) return new _t(t, Gr(go, n)); + if (e.status === 429) throw new Lt(t, Gr(bo, n)); + if (e.status === 504) throw new Dt(t, Gr(fo, n)); + if (e.status >= 500) throw new Ur(t, Gr(ho, n)); + if (e.status >= 400) throw new Rt(t, Gr(mo, n)); + } + __name(Ft, "Ft"); + function Gr(e, r) { + return r.type === "EmptyError" ? e : `${e}: ${JSON.stringify(r)}`; + } + __name(Gr, "Gr"); + function Tl(e) { + let r = Math.pow(2, e) * 50, t = Math.ceil(Math.random() * r) - Math.ceil(r / 2), n = r + t; + return new Promise((i) => setTimeout(() => i(n), n)); + } + __name(Tl, "Tl"); + var $e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + function Sl(e) { + let r = new TextEncoder().encode(e), t = "", n = r.byteLength, i = n % 3, o = n - i, s, a, l, u, c; + for (let p = 0; p < o; p = p + 3) c = r[p] << 16 | r[p + 1] << 8 | r[p + 2], s = (c & 16515072) >> 18, a = (c & 258048) >> 12, l = (c & 4032) >> 6, u = c & 63, t += $e[s] + $e[a] + $e[l] + $e[u]; + return i == 1 ? (c = r[o], s = (c & 252) >> 2, a = (c & 3) << 4, t += $e[s] + $e[a] + "==") : i == 2 && (c = r[o] << 8 | r[o + 1], s = (c & 64512) >> 10, a = (c & 1008) >> 4, l = (c & 15) << 2, t += $e[s] + $e[a] + $e[l] + "="), t; + } + __name(Sl, "Sl"); + function Rl(e) { + if (!!e.generator?.previewFeatures.some((t) => t.toLowerCase().includes("metrics"))) throw new P("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate", e.clientVersion); + } + __name(Rl, "Rl"); + var Al = { "@prisma/debug": "workspace:*", "@prisma/engines-version": "7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7", "@prisma/fetch-engine": "workspace:*", "@prisma/get-platform": "workspace:*" }; + var Mt = class extends oe { + static { + __name(this, "Mt"); + } + name = "RequestError"; + code = "P5010"; + constructor(r, t) { + super(`Cannot fetch data from service: +${r}`, R(t, true)); + } + }; + x(Mt, "RequestError"); + async function dr(e, r, t = (n) => n) { + let { clientVersion: n, ...i } = r, o = t(fetch); + try { + return await o(e, i); + } catch (s) { + let a = s.message ?? "Unknown error"; + throw new Mt(a, { clientVersion: n, cause: s }); + } + } + __name(dr, "dr"); + var pf = /^[1-9][0-9]*\.[0-9]+\.[0-9]+$/; + var Cl = N("prisma:client:dataproxyEngine"); + async function df(e, r) { + let t = Al["@prisma/engines-version"], n = r.clientVersion ?? "unknown"; + if (process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION || globalThis.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION) return process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION || globalThis.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION; + if (e.includes("accelerate") && n !== "0.0.0" && n !== "in-memory") return n; + let [i, o] = n?.split("-") ?? []; + if (o === void 0 && pf.test(i)) return i; + if (o !== void 0 || n === "0.0.0" || n === "in-memory") { + let [s] = t.split("-") ?? [], [a, l, u] = s.split("."), c = mf(`<=${a}.${l}.${u}`), p = await dr(c, { clientVersion: n }); + if (!p.ok) throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${p.status} ${p.statusText}, response body: ${await p.text() || ""}`); + let d = await p.text(); + Cl("length of body fetched from unpkg.com", d.length); + let f; + try { + f = JSON.parse(d); + } catch (h) { + throw console.error("JSON.parse error: body fetched from unpkg.com: ", d), h; + } + return f.version; + } + throw new cr("Only `major.minor.patch` versions are supported by Accelerate.", { clientVersion: n }); + } + __name(df, "df"); + async function Il(e, r) { + let t = await df(e, r); + return Cl("version", t), t; + } + __name(Il, "Il"); + function mf(e) { + return encodeURI(`https://unpkg.com/prisma@${e}/package.json`); + } + __name(mf, "mf"); + var Dl = 3; + var $t = N("prisma:client:dataproxyEngine"); + var qt = class { + static { + __name(this, "qt"); + } + name = "DataProxyEngine"; + inlineSchema; + inlineSchemaHash; + inlineDatasources; + config; + logEmitter; + env; + clientVersion; + engineHash; + tracingHelper; + remoteClientVersion; + host; + headerBuilder; + startPromise; + protocol; + constructor(r) { + Rl(r), this.config = r, this.env = r.env, this.inlineSchema = Sl(r.inlineSchema), this.inlineDatasources = r.inlineDatasources, this.inlineSchemaHash = r.inlineSchemaHash, this.clientVersion = r.clientVersion, this.engineHash = r.engineVersion, this.logEmitter = r.logEmitter, this.tracingHelper = r.tracingHelper; + } + apiKey() { + return this.headerBuilder.apiKey; + } + version() { + return this.engineHash; + } + async start() { + this.startPromise !== void 0 && await this.startPromise, this.startPromise = (async () => { + let { apiKey: r, url: t } = this.getURLAndAPIKey(); + this.host = t.host, this.protocol = t.protocol, this.headerBuilder = new Yn({ apiKey: r, tracingHelper: this.tracingHelper, logLevel: this.config.logLevel ?? "error", logQueries: this.config.logQueries, engineHash: this.engineHash }), this.remoteClientVersion = await Il(this.host, this.config), $t("host", this.host), $t("protocol", this.protocol); + })(), await this.startPromise; + } + async stop() { + } + propagateResponseExtensions(r) { + r?.logs?.length && r.logs.forEach((t) => { + switch (t.level) { + case "debug": + case "trace": + $t(t); + break; + case "error": + case "warn": + case "info": { + this.logEmitter.emit(t.level, { timestamp: po(t.timestamp), message: t.attributes.message ?? "", target: t.target ?? "BinaryEngine" }); + break; + } + case "query": { + this.logEmitter.emit("query", { query: t.attributes.query ?? "", timestamp: po(t.timestamp), duration: t.attributes.duration_ms ?? 0, params: t.attributes.params ?? "", target: t.target ?? "BinaryEngine" }); + break; + } + default: + t.level; + } + }), r?.traces?.length && this.tracingHelper.dispatchEngineSpans(r.traces); + } + onBeforeExit() { + throw new Error('"beforeExit" hook is not applicable to the remote query engine'); + } + async url(r) { + return await this.start(), `${this.protocol}//${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${r}`; + } + async uploadSchema() { + let r = { name: "schemaUpload", internal: true }; + return this.tracingHelper.runInChildSpan(r, async () => { + let t = await dr(await this.url("schema"), { method: "PUT", headers: this.headerBuilder.build(), body: this.inlineSchema, clientVersion: this.clientVersion }); + t.ok || $t("schema response status", t.status); + let n = await Ft(t, this.clientVersion); + if (n) throw this.logEmitter.emit("warn", { message: `Error while uploading schema: ${n.message}`, timestamp: /* @__PURE__ */ new Date(), target: "" }), n; + this.logEmitter.emit("info", { message: `Schema (re)uploaded (hash: ${this.inlineSchemaHash})`, timestamp: /* @__PURE__ */ new Date(), target: "" }); + }); + } + request(r, { traceparent: t, interactiveTransaction: n, customDataProxyFetch: i }) { + return this.requestInternal({ body: r, traceparent: t, interactiveTransaction: n, customDataProxyFetch: i }); + } + async requestBatch(r, { traceparent: t, transaction: n, customDataProxyFetch: i }) { + let o = n?.kind === "itx" ? n.options : void 0, s = Mr(r, n); + return (await this.requestInternal({ body: s, customDataProxyFetch: i, interactiveTransaction: o, traceparent: t })).map((l) => (l.extensions && this.propagateResponseExtensions(l.extensions), "errors" in l ? this.convertProtocolErrorsToClientError(l.errors) : l)); + } + requestInternal({ body: r, traceparent: t, customDataProxyFetch: n, interactiveTransaction: i }) { + return this.withRetry({ actionGerund: "querying", callback: /* @__PURE__ */ __name(async ({ logHttpCall: o }) => { + let s = i ? `${i.payload.endpoint}/graphql` : await this.url("graphql"); + o(s); + let a = await dr(s, { method: "POST", headers: this.headerBuilder.build({ traceparent: t, transactionId: i?.id }), body: JSON.stringify(r), clientVersion: this.clientVersion }, n); + a.ok || $t("graphql response status", a.status), await this.handleError(await Ft(a, this.clientVersion)); + let l = await a.json(); + if (l.extensions && this.propagateResponseExtensions(l.extensions), "errors" in l) throw this.convertProtocolErrorsToClientError(l.errors); + return "batchResult" in l ? l.batchResult : l; + }, "callback") }); + } + async transaction(r, t, n) { + let i = { start: "starting", commit: "committing", rollback: "rolling back" }; + return this.withRetry({ actionGerund: `${i[r]} transaction`, callback: /* @__PURE__ */ __name(async ({ logHttpCall: o }) => { + if (r === "start") { + let s = JSON.stringify({ max_wait: n.maxWait, timeout: n.timeout, isolation_level: n.isolationLevel }), a = await this.url("transaction/start"); + o(a); + let l = await dr(a, { method: "POST", headers: this.headerBuilder.build({ traceparent: t.traceparent }), body: s, clientVersion: this.clientVersion }); + await this.handleError(await Ft(l, this.clientVersion)); + let u = await l.json(), { extensions: c } = u; + c && this.propagateResponseExtensions(c); + let p = u.id, d = u["data-proxy"].endpoint; + return { id: p, payload: { endpoint: d } }; + } else { + let s = `${n.payload.endpoint}/${r}`; + o(s); + let a = await dr(s, { method: "POST", headers: this.headerBuilder.build({ traceparent: t.traceparent }), clientVersion: this.clientVersion }); + await this.handleError(await Ft(a, this.clientVersion)); + let l = await a.json(), { extensions: u } = l; + u && this.propagateResponseExtensions(u); + return; + } + }, "callback") }); + } + getURLAndAPIKey() { + return vl({ clientVersion: this.clientVersion, env: this.env, inlineDatasources: this.inlineDatasources, overrideDatasources: this.config.overrideDatasources }); + } + metrics() { + throw new cr("Metrics are not yet supported for Accelerate", { clientVersion: this.clientVersion }); + } + async withRetry(r) { + for (let t = 0; ; t++) { + let n = /* @__PURE__ */ __name((i) => { + this.logEmitter.emit("info", { message: `Calling ${i} (n=${t})`, timestamp: /* @__PURE__ */ new Date(), target: "" }); + }, "n"); + try { + return await r.callback({ logHttpCall: n }); + } catch (i) { + if (!(i instanceof oe) || !i.isRetryable) throw i; + if (t >= Dl) throw i instanceof Br ? i.cause : i; + this.logEmitter.emit("warn", { message: `Attempt ${t + 1}/${Dl} failed for ${r.actionGerund}: ${i.message ?? "(unknown)"}`, timestamp: /* @__PURE__ */ new Date(), target: "" }); + let o = await Tl(t); + this.logEmitter.emit("warn", { message: `Retrying after ${o}ms`, timestamp: /* @__PURE__ */ new Date(), target: "" }); + } + } + } + async handleError(r) { + if (r instanceof pr) throw await this.uploadSchema(), new Br({ clientVersion: this.clientVersion, cause: r }); + if (r) throw r; + } + convertProtocolErrorsToClientError(r) { + return r.length === 1 ? $r(r[0], this.config.clientVersion, this.config.activeProvider) : new V(JSON.stringify(r), { clientVersion: this.config.clientVersion }); + } + applyPendingMigrations() { + throw new Error("Method not implemented."); + } + }; + function Ol(e) { + if (e?.kind === "itx") return e.options.id; + } + __name(Ol, "Ol"); + var wo = O(require("node:os")); + var kl = O(require("node:path")); + var Eo = /* @__PURE__ */ Symbol("PrismaLibraryEngineCache"); + function ff() { + let e = globalThis; + return e[Eo] === void 0 && (e[Eo] = {}), e[Eo]; + } + __name(ff, "ff"); + function gf(e) { + let r = ff(); + if (r[e] !== void 0) return r[e]; + let t = kl.default.toNamespacedPath(e), n = { exports: {} }, i = 0; + return process.platform !== "win32" && (i = wo.default.constants.dlopen.RTLD_LAZY | wo.default.constants.dlopen.RTLD_DEEPBIND), process.dlopen(n, t, i), r[e] = n.exports, n.exports; + } + __name(gf, "gf"); + var _l = { async loadLibrary(e) { + let r = await fi(), t = await ml("library", e); + try { + return e.tracingHelper.runInChildSpan({ name: "loadLibrary", internal: true }, () => gf(t)); + } catch (n) { + let i = Ai({ e: n, platformInfo: r, id: t }); + throw new P(i, e.clientVersion); + } + } }; + var xo; + var Nl = { async loadLibrary(e) { + let { clientVersion: r, adapter: t, engineWasm: n } = e; + if (t === void 0) throw new P(`The \`adapter\` option for \`PrismaClient\` is required in this context (${Kn().prettyName})`, r); + if (n === void 0) throw new P("WASM engine was unexpectedly `undefined`", r); + xo === void 0 && (xo = (async () => { + let o = await n.getRuntime(), s = await n.getQueryEngineWasmModule(); + if (s == null) throw new P("The loaded wasm module was unexpectedly `undefined` or `null` once loaded", r); + let a = { "./query_engine_bg.js": o }, l = new WebAssembly.Instance(s, a), u = l.exports.__wbindgen_start; + return o.__wbg_set_wasm(l.exports), u(), o.QueryEngine; + })()); + let i = await xo; + return { debugPanic() { + return Promise.reject("{}"); + }, dmmf() { + return Promise.resolve("{}"); + }, version() { + return { commit: "unknown", version: "unknown" }; + }, QueryEngine: i }; + } }; + var hf = "P2036"; + var Re = N("prisma:client:libraryEngine"); + function yf(e) { + return e.item_type === "query" && "query" in e; + } + __name(yf, "yf"); + function bf(e) { + return "level" in e ? e.level === "error" && e.message === "PANIC" : false; + } + __name(bf, "bf"); + var Ll = [...li, "native"]; + var Ef = 0xffffffffffffffffn; + var vo = 1n; + function wf() { + let e = vo++; + return vo > Ef && (vo = 1n), e; + } + __name(wf, "wf"); + var Qr = class { + static { + __name(this, "Qr"); + } + name = "LibraryEngine"; + engine; + libraryInstantiationPromise; + libraryStartingPromise; + libraryStoppingPromise; + libraryStarted; + executingQueryPromise; + config; + QueryEngineConstructor; + libraryLoader; + library; + logEmitter; + libQueryEnginePath; + binaryTarget; + datasourceOverrides; + datamodel; + logQueries; + logLevel; + lastQuery; + loggerRustPanic; + tracingHelper; + adapterPromise; + versionInfo; + constructor(r, t) { + this.libraryLoader = t ?? _l, r.engineWasm !== void 0 && (this.libraryLoader = t ?? Nl), this.config = r, this.libraryStarted = false, this.logQueries = r.logQueries ?? false, this.logLevel = r.logLevel ?? "error", this.logEmitter = r.logEmitter, this.datamodel = r.inlineSchema, this.tracingHelper = r.tracingHelper, r.enableDebugLogs && (this.logLevel = "debug"); + let n = Object.keys(r.overrideDatasources)[0], i = r.overrideDatasources[n]?.url; + n !== void 0 && i !== void 0 && (this.datasourceOverrides = { [n]: i }), this.libraryInstantiationPromise = this.instantiateLibrary(); + } + wrapEngine(r) { + return { applyPendingMigrations: r.applyPendingMigrations?.bind(r), commitTransaction: this.withRequestId(r.commitTransaction.bind(r)), connect: this.withRequestId(r.connect.bind(r)), disconnect: this.withRequestId(r.disconnect.bind(r)), metrics: r.metrics?.bind(r), query: this.withRequestId(r.query.bind(r)), rollbackTransaction: this.withRequestId(r.rollbackTransaction.bind(r)), sdlSchema: r.sdlSchema?.bind(r), startTransaction: this.withRequestId(r.startTransaction.bind(r)), trace: r.trace.bind(r), free: r.free?.bind(r) }; + } + withRequestId(r) { + return async (...t) => { + let n = wf().toString(); + try { + return await r(...t, n); + } finally { + if (this.tracingHelper.isEnabled()) { + let i = await this.engine?.trace(n); + if (i) { + let o = JSON.parse(i); + this.tracingHelper.dispatchEngineSpans(o.spans); + } + } + } + }; + } + async applyPendingMigrations() { + throw new Error("Cannot call this method from this type of engine instance"); + } + async transaction(r, t, n) { + await this.start(); + let i = await this.adapterPromise, o = JSON.stringify(t), s; + if (r === "start") { + let l = JSON.stringify({ max_wait: n.maxWait, timeout: n.timeout, isolation_level: n.isolationLevel }); + s = await this.engine?.startTransaction(l, o); + } else r === "commit" ? s = await this.engine?.commitTransaction(n.id, o) : r === "rollback" && (s = await this.engine?.rollbackTransaction(n.id, o)); + let a = this.parseEngineResponse(s); + if (xf(a)) { + let l = this.getExternalAdapterError(a, i?.errorRegistry); + throw l ? l.error : new z(a.message, { code: a.error_code, clientVersion: this.config.clientVersion, meta: a.meta }); + } else if (typeof a.message == "string") throw new V(a.message, { clientVersion: this.config.clientVersion }); + return a; + } + async instantiateLibrary() { + if (Re("internalSetup"), this.libraryInstantiationPromise) return this.libraryInstantiationPromise; + ai(), this.binaryTarget = await this.getCurrentBinaryTarget(), await this.tracingHelper.runInChildSpan("load_engine", () => this.loadEngine()), this.version(); + } + async getCurrentBinaryTarget() { + { + if (this.binaryTarget) return this.binaryTarget; + let r = await this.tracingHelper.runInChildSpan("detect_platform", () => ir()); + if (!Ll.includes(r)) throw new P(`Unknown ${ce("PRISMA_QUERY_ENGINE_LIBRARY")} ${ce(W(r))}. Possible binaryTargets: ${qe(Ll.join(", "))} or a path to the query engine library. +You may have to run ${qe("prisma generate")} for your changes to take effect.`, this.config.clientVersion); + return r; + } + } + parseEngineResponse(r) { + if (!r) throw new V("Response from the Engine was empty", { clientVersion: this.config.clientVersion }); + try { + return JSON.parse(r); + } catch { + throw new V("Unable to JSON.parse response from engine", { clientVersion: this.config.clientVersion }); + } + } + async loadEngine() { + if (!this.engine) { + this.QueryEngineConstructor || (this.library = await this.libraryLoader.loadLibrary(this.config), this.QueryEngineConstructor = this.library.QueryEngine); + try { + let r = new WeakRef(this); + this.adapterPromise || (this.adapterPromise = this.config.adapter?.connect()?.then(tn)); + let t = await this.adapterPromise; + t && Re("Using driver adapter: %O", t), this.engine = this.wrapEngine(new this.QueryEngineConstructor({ datamodel: this.datamodel, env: process.env, logQueries: this.config.logQueries ?? false, ignoreEnvVarErrors: true, datasourceOverrides: this.datasourceOverrides ?? {}, logLevel: this.logLevel, configDir: this.config.cwd, engineProtocol: "json", enableTracing: this.tracingHelper.isEnabled() }, (n) => { + r.deref()?.logger(n); + }, t)); + } catch (r) { + let t = r, n = this.parseInitError(t.message); + throw typeof n == "string" ? t : new P(n.message, this.config.clientVersion, n.error_code); + } + } + } + logger(r) { + let t = this.parseEngineResponse(r); + t && (t.level = t?.level.toLowerCase() ?? "unknown", yf(t) ? this.logEmitter.emit("query", { timestamp: /* @__PURE__ */ new Date(), query: t.query, params: t.params, duration: Number(t.duration_ms), target: t.module_path }) : bf(t) ? this.loggerRustPanic = new ae(Po(this, `${t.message}: ${t.reason} in ${t.file}:${t.line}:${t.column}`), this.config.clientVersion) : this.logEmitter.emit(t.level, { timestamp: /* @__PURE__ */ new Date(), message: t.message, target: t.module_path })); + } + parseInitError(r) { + try { + return JSON.parse(r); + } catch { + } + return r; + } + parseRequestError(r) { + try { + return JSON.parse(r); + } catch { + } + return r; + } + onBeforeExit() { + throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.'); + } + async start() { + if (this.libraryInstantiationPromise || (this.libraryInstantiationPromise = this.instantiateLibrary()), await this.libraryInstantiationPromise, await this.libraryStoppingPromise, this.libraryStartingPromise) return Re(`library already starting, this.libraryStarted: ${this.libraryStarted}`), this.libraryStartingPromise; + if (this.libraryStarted) return; + let r = /* @__PURE__ */ __name(async () => { + Re("library starting"); + try { + let t = { traceparent: this.tracingHelper.getTraceParent() }; + await this.engine?.connect(JSON.stringify(t)), this.libraryStarted = true, this.adapterPromise || (this.adapterPromise = this.config.adapter?.connect()?.then(tn)), await this.adapterPromise, Re("library started"); + } catch (t) { + let n = this.parseInitError(t.message); + throw typeof n == "string" ? t : new P(n.message, this.config.clientVersion, n.error_code); + } finally { + this.libraryStartingPromise = void 0; + } + }, "r"); + return this.libraryStartingPromise = this.tracingHelper.runInChildSpan("connect", r), this.libraryStartingPromise; + } + async stop() { + if (await this.libraryInstantiationPromise, await this.libraryStartingPromise, await this.executingQueryPromise, this.libraryStoppingPromise) return Re("library is already stopping"), this.libraryStoppingPromise; + if (!this.libraryStarted) { + await (await this.adapterPromise)?.dispose(), this.adapterPromise = void 0; + return; + } + let r = /* @__PURE__ */ __name(async () => { + await new Promise((n) => setImmediate(n)), Re("library stopping"); + let t = { traceparent: this.tracingHelper.getTraceParent() }; + await this.engine?.disconnect(JSON.stringify(t)), this.engine?.free && this.engine.free(), this.engine = void 0, this.libraryStarted = false, this.libraryStoppingPromise = void 0, this.libraryInstantiationPromise = void 0, await (await this.adapterPromise)?.dispose(), this.adapterPromise = void 0, Re("library stopped"); + }, "r"); + return this.libraryStoppingPromise = this.tracingHelper.runInChildSpan("disconnect", r), this.libraryStoppingPromise; + } + version() { + return this.versionInfo = this.library?.version(), this.versionInfo?.version ?? "unknown"; + } + debugPanic(r) { + return this.library?.debugPanic(r); + } + async request(r, { traceparent: t, interactiveTransaction: n }) { + Re(`sending request, this.libraryStarted: ${this.libraryStarted}`); + let i = JSON.stringify({ traceparent: t }), o = JSON.stringify(r); + try { + await this.start(); + let s = await this.adapterPromise; + this.executingQueryPromise = this.engine?.query(o, i, n?.id), this.lastQuery = o; + let a = this.parseEngineResponse(await this.executingQueryPromise); + if (a.errors) throw a.errors.length === 1 ? this.buildQueryError(a.errors[0], s?.errorRegistry) : new V(JSON.stringify(a.errors), { clientVersion: this.config.clientVersion }); + if (this.loggerRustPanic) throw this.loggerRustPanic; + return { data: a }; + } catch (s) { + if (s instanceof P) throw s; + if (s.code === "GenericFailure" && s.message?.startsWith("PANIC:")) throw new ae(Po(this, s.message), this.config.clientVersion); + let a = this.parseRequestError(s.message); + throw typeof a == "string" ? s : new V(`${a.message} +${a.backtrace}`, { clientVersion: this.config.clientVersion }); + } + } + async requestBatch(r, { transaction: t, traceparent: n }) { + Re("requestBatch"); + let i = Mr(r, t); + await this.start(); + let o = await this.adapterPromise; + this.lastQuery = JSON.stringify(i), this.executingQueryPromise = this.engine?.query(this.lastQuery, JSON.stringify({ traceparent: n }), Ol(t)); + let s = await this.executingQueryPromise, a = this.parseEngineResponse(s); + if (a.errors) throw a.errors.length === 1 ? this.buildQueryError(a.errors[0], o?.errorRegistry) : new V(JSON.stringify(a.errors), { clientVersion: this.config.clientVersion }); + let { batchResult: l, errors: u } = a; + if (Array.isArray(l)) return l.map((c) => c.errors && c.errors.length > 0 ? this.loggerRustPanic ?? this.buildQueryError(c.errors[0], o?.errorRegistry) : { data: c }); + throw u && u.length === 1 ? new Error(u[0].error) : new Error(JSON.stringify(a)); + } + buildQueryError(r, t) { + if (r.user_facing_error.is_panic) return new ae(Po(this, r.user_facing_error.message), this.config.clientVersion); + let n = this.getExternalAdapterError(r.user_facing_error, t); + return n ? n.error : $r(r, this.config.clientVersion, this.config.activeProvider); + } + getExternalAdapterError(r, t) { + if (r.error_code === hf && t) { + let n = r.meta?.id; + ln(typeof n == "number", "Malformed external JS error received from the engine"); + let i = t.consumeError(n); + return ln(i, "External error with reported id was not registered"), i; + } + } + async metrics(r) { + await this.start(); + let t = await this.engine.metrics(JSON.stringify(r)); + return r.format === "prometheus" ? t : this.parseEngineResponse(t); + } + }; + function xf(e) { + return typeof e == "object" && e !== null && e.error_code !== void 0; + } + __name(xf, "xf"); + function Po(e, r) { + return El({ binaryTarget: e.binaryTarget, title: r, version: e.config.clientVersion, engineVersion: e.versionInfo?.commit, database: e.config.activeProvider, query: e.lastQuery }); + } + __name(Po, "Po"); + function Fl({ url: e, adapter: r, copyEngine: t, targetBuildType: n }) { + let i = [], o = [], s = /* @__PURE__ */ __name((g) => { + i.push({ _tag: "warning", value: g }); + }, "s"), a = /* @__PURE__ */ __name((g) => { + let I = g.join(` +`); + o.push({ _tag: "error", value: I }); + }, "a"), l = !!e?.startsWith("prisma://"), u = an(e), c = !!r, p = l || u; + !c && t && p && n !== "client" && n !== "wasm-compiler-edge" && s(["recommend--no-engine", "In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)"]); + let d = p || !t; + c && (d || n === "edge") && (n === "edge" ? a(["Prisma Client was configured to use the `adapter` option but it was imported via its `/edge` endpoint.", "Please either remove the `/edge` endpoint or remove the `adapter` from the Prisma Client constructor."]) : p ? a(["You've provided both a driver adapter and an Accelerate database URL. Driver adapters currently cannot connect to Accelerate.", "Please provide either a driver adapter with a direct database URL or an Accelerate URL and no driver adapter."]) : t || a(["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.", "Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."])); + let f = { accelerate: d, ppg: u, driverAdapters: c }; + function h(g) { + return g.length > 0; + } + __name(h, "h"); + return h(o) ? { ok: false, diagnostics: { warnings: i, errors: o }, isUsing: f } : { ok: true, diagnostics: { warnings: i }, isUsing: f }; + } + __name(Fl, "Fl"); + function Ml({ copyEngine: e = true }, r) { + let t; + try { + t = jr({ inlineDatasources: r.inlineDatasources, overrideDatasources: r.overrideDatasources, env: { ...r.env, ...process.env }, clientVersion: r.clientVersion }); + } catch { + } + let { ok: n, isUsing: i, diagnostics: o } = Fl({ url: t, adapter: r.adapter, copyEngine: e, targetBuildType: "library" }); + for (let p of o.warnings) at(...p.value); + if (!n) { + let p = o.errors[0]; + throw new Z(p.value, { clientVersion: r.clientVersion }); + } + let s = Er(r.generator), a = s === "library", l = s === "binary", u = s === "client", c = (i.accelerate || i.ppg) && !i.driverAdapters; + return i.accelerate ? new qt(r) : (i.driverAdapters, a ? new Qr(r) : new Qr(r)); + } + __name(Ml, "Ml"); + function $l({ generator: e }) { + return e?.previewFeatures ?? []; + } + __name($l, "$l"); + var ql = /* @__PURE__ */ __name((e) => ({ command: e }), "ql"); + var Vl = /* @__PURE__ */ __name((e) => e.strings.reduce((r, t, n) => `${r}@P${n}${t}`), "Vl"); + function Wr(e) { + try { + return jl(e, "fast"); + } catch { + return jl(e, "slow"); + } + } + __name(Wr, "Wr"); + function jl(e, r) { + return JSON.stringify(e.map((t) => Ul(t, r))); + } + __name(jl, "jl"); + function Ul(e, r) { + if (Array.isArray(e)) return e.map((t) => Ul(t, r)); + if (typeof e == "bigint") return { prisma__type: "bigint", prisma__value: e.toString() }; + if (vr(e)) return { prisma__type: "date", prisma__value: e.toJSON() }; + if (Fe.isDecimal(e)) return { prisma__type: "decimal", prisma__value: e.toJSON() }; + if (Buffer.isBuffer(e)) return { prisma__type: "bytes", prisma__value: e.toString("base64") }; + if (vf(e)) return { prisma__type: "bytes", prisma__value: Buffer.from(e).toString("base64") }; + if (ArrayBuffer.isView(e)) { + let { buffer: t, byteOffset: n, byteLength: i } = e; + return { prisma__type: "bytes", prisma__value: Buffer.from(t, n, i).toString("base64") }; + } + return typeof e == "object" && r === "slow" ? Gl(e) : e; + } + __name(Ul, "Ul"); + function vf(e) { + return e instanceof ArrayBuffer || e instanceof SharedArrayBuffer ? true : typeof e == "object" && e !== null ? e[Symbol.toStringTag] === "ArrayBuffer" || e[Symbol.toStringTag] === "SharedArrayBuffer" : false; + } + __name(vf, "vf"); + function Gl(e) { + if (typeof e != "object" || e === null) return e; + if (typeof e.toJSON == "function") return e.toJSON(); + if (Array.isArray(e)) return e.map(Bl); + let r = {}; + for (let t of Object.keys(e)) r[t] = Bl(e[t]); + return r; + } + __name(Gl, "Gl"); + function Bl(e) { + return typeof e == "bigint" ? e.toString() : Gl(e); + } + __name(Bl, "Bl"); + var Pf = /^(\s*alter\s)/i; + var Ql = N("prisma:client"); + function To(e, r, t, n) { + if (!(e !== "postgresql" && e !== "cockroachdb") && t.length > 0 && Pf.exec(r)) throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`); + } + __name(To, "To"); + var So = /* @__PURE__ */ __name(({ clientMethod: e, activeProvider: r }) => (t) => { + let n = "", i; + if (Vn(t)) n = t.sql, i = { values: Wr(t.values), __prismaRawParameters__: true }; + else if (Array.isArray(t)) { + let [o, ...s] = t; + n = o, i = { values: Wr(s || []), __prismaRawParameters__: true }; + } else switch (r) { + case "sqlite": + case "mysql": { + n = t.sql, i = { values: Wr(t.values), __prismaRawParameters__: true }; + break; + } + case "cockroachdb": + case "postgresql": + case "postgres": { + n = t.text, i = { values: Wr(t.values), __prismaRawParameters__: true }; + break; + } + case "sqlserver": { + n = Vl(t), i = { values: Wr(t.values), __prismaRawParameters__: true }; + break; + } + default: + throw new Error(`The ${r} provider does not support ${e}`); + } + return i?.values ? Ql(`prisma.${e}(${n}, ${i.values})`) : Ql(`prisma.${e}(${n})`), { query: n, parameters: i }; + }, "So"); + var Wl = { requestArgsToMiddlewareArgs(e) { + return [e.strings, ...e.values]; + }, middlewareArgsToRequestArgs(e) { + let [r, ...t] = e; + return new ie(r, t); + } }; + var Jl = { requestArgsToMiddlewareArgs(e) { + return [e]; + }, middlewareArgsToRequestArgs(e) { + return e[0]; + } }; + function Ro(e) { + return function(t, n) { + let i, o = /* @__PURE__ */ __name((s = e) => { + try { + return s === void 0 || s?.kind === "itx" ? i ??= Kl(t(s)) : Kl(t(s)); + } catch (a) { + return Promise.reject(a); + } + }, "o"); + return { get spec() { + return n; + }, then(s, a) { + return o().then(s, a); + }, catch(s) { + return o().catch(s); + }, finally(s) { + return o().finally(s); + }, requestTransaction(s) { + let a = o(s); + return a.requestTransaction ? a.requestTransaction(s) : a; + }, [Symbol.toStringTag]: "PrismaPromise" }; + }; + } + __name(Ro, "Ro"); + function Kl(e) { + return typeof e.then == "function" ? e : Promise.resolve(e); + } + __name(Kl, "Kl"); + var Tf = xi.split(".")[0]; + var Sf = { isEnabled() { + return false; + }, getTraceParent() { + return "00-10-10-00"; + }, dispatchEngineSpans() { + }, getActiveContext() { + }, runInChildSpan(e, r) { + return r(); + } }; + var Ao = class { + static { + __name(this, "Ao"); + } + isEnabled() { + return this.getGlobalTracingHelper().isEnabled(); + } + getTraceParent(r) { + return this.getGlobalTracingHelper().getTraceParent(r); + } + dispatchEngineSpans(r) { + return this.getGlobalTracingHelper().dispatchEngineSpans(r); + } + getActiveContext() { + return this.getGlobalTracingHelper().getActiveContext(); + } + runInChildSpan(r, t) { + return this.getGlobalTracingHelper().runInChildSpan(r, t); + } + getGlobalTracingHelper() { + let r = globalThis[`V${Tf}_PRISMA_INSTRUMENTATION`], t = globalThis.PRISMA_INSTRUMENTATION; + return r?.helper ?? t?.helper ?? Sf; + } + }; + function Hl() { + return new Ao(); + } + __name(Hl, "Hl"); + function Yl(e, r = () => { + }) { + let t, n = new Promise((i) => t = i); + return { then(i) { + return --e === 0 && t(r()), i?.(n); + } }; + } + __name(Yl, "Yl"); + function zl(e) { + return typeof e == "string" ? e : e.reduce((r, t) => { + let n = typeof t == "string" ? t : t.level; + return n === "query" ? r : r && (t === "info" || r === "info") ? "info" : n; + }, void 0); + } + __name(zl, "zl"); + function zn(e) { + return typeof e.batchRequestIdx == "number"; + } + __name(zn, "zn"); + function Zl(e) { + if (e.action !== "findUnique" && e.action !== "findUniqueOrThrow") return; + let r = []; + return e.modelName && r.push(e.modelName), e.query.arguments && r.push(Co(e.query.arguments)), r.push(Co(e.query.selection)), r.join(""); + } + __name(Zl, "Zl"); + function Co(e) { + return `(${Object.keys(e).sort().map((t) => { + let n = e[t]; + return typeof n == "object" && n !== null ? `(${t} ${Co(n)})` : t; + }).join(" ")})`; + } + __name(Co, "Co"); + var Rf = { aggregate: false, aggregateRaw: false, createMany: true, createManyAndReturn: true, createOne: true, deleteMany: true, deleteOne: true, executeRaw: true, findFirst: false, findFirstOrThrow: false, findMany: false, findRaw: false, findUnique: false, findUniqueOrThrow: false, groupBy: false, queryRaw: false, runCommandRaw: true, updateMany: true, updateManyAndReturn: true, updateOne: true, upsertOne: true }; + function Io(e) { + return Rf[e]; + } + __name(Io, "Io"); + var Zn = class { + static { + __name(this, "Zn"); + } + constructor(r) { + this.options = r; + this.batches = {}; + } + batches; + tickActive = false; + request(r) { + let t = this.options.batchBy(r); + return t ? (this.batches[t] || (this.batches[t] = [], this.tickActive || (this.tickActive = true, process.nextTick(() => { + this.dispatchBatches(), this.tickActive = false; + }))), new Promise((n, i) => { + this.batches[t].push({ request: r, resolve: n, reject: i }); + })) : this.options.singleLoader(r); + } + dispatchBatches() { + for (let r in this.batches) { + let t = this.batches[r]; + delete this.batches[r], t.length === 1 ? this.options.singleLoader(t[0].request).then((n) => { + n instanceof Error ? t[0].reject(n) : t[0].resolve(n); + }).catch((n) => { + t[0].reject(n); + }) : (t.sort((n, i) => this.options.batchOrder(n.request, i.request)), this.options.batchLoader(t.map((n) => n.request)).then((n) => { + if (n instanceof Error) for (let i = 0; i < t.length; i++) t[i].reject(n); + else for (let i = 0; i < t.length; i++) { + let o = n[i]; + o instanceof Error ? t[i].reject(o) : t[i].resolve(o); + } + }).catch((n) => { + for (let i = 0; i < t.length; i++) t[i].reject(n); + })); + } + } + get [Symbol.toStringTag]() { + return "DataLoader"; + } + }; + function mr(e, r) { + if (r === null) return r; + switch (e) { + case "bigint": + return BigInt(r); + case "bytes": { + let { buffer: t, byteOffset: n, byteLength: i } = Buffer.from(r, "base64"); + return new Uint8Array(t, n, i); + } + case "decimal": + return new Fe(r); + case "datetime": + case "date": + return new Date(r); + case "time": + return /* @__PURE__ */ new Date(`1970-01-01T${r}Z`); + case "bigint-array": + return r.map((t) => mr("bigint", t)); + case "bytes-array": + return r.map((t) => mr("bytes", t)); + case "decimal-array": + return r.map((t) => mr("decimal", t)); + case "datetime-array": + return r.map((t) => mr("datetime", t)); + case "date-array": + return r.map((t) => mr("date", t)); + case "time-array": + return r.map((t) => mr("time", t)); + default: + return r; + } + } + __name(mr, "mr"); + function Xn(e) { + let r = [], t = Af(e); + for (let n = 0; n < e.rows.length; n++) { + let i = e.rows[n], o = { ...t }; + for (let s = 0; s < i.length; s++) o[e.columns[s]] = mr(e.types[s], i[s]); + r.push(o); + } + return r; + } + __name(Xn, "Xn"); + function Af(e) { + let r = {}; + for (let t = 0; t < e.columns.length; t++) r[e.columns[t]] = null; + return r; + } + __name(Af, "Af"); + var Cf = N("prisma:client:request_handler"); + var ei = class { + static { + __name(this, "ei"); + } + client; + dataloader; + logEmitter; + constructor(r, t) { + this.logEmitter = t, this.client = r, this.dataloader = new Zn({ batchLoader: rl(async ({ requests: n, customDataProxyFetch: i }) => { + let { transaction: o, otelParentCtx: s } = n[0], a = n.map((p) => p.protocolQuery), l = this.client._tracingHelper.getTraceParent(s), u = n.some((p) => Io(p.protocolQuery.action)); + return (await this.client._engine.requestBatch(a, { traceparent: l, transaction: If(o), containsWrite: u, customDataProxyFetch: i })).map((p, d) => { + if (p instanceof Error) return p; + try { + return this.mapQueryEngineResult(n[d], p); + } catch (f) { + return f; + } + }); + }), singleLoader: /* @__PURE__ */ __name(async (n) => { + let i = n.transaction?.kind === "itx" ? Xl(n.transaction) : void 0, o = await this.client._engine.request(n.protocolQuery, { traceparent: this.client._tracingHelper.getTraceParent(), interactiveTransaction: i, isWrite: Io(n.protocolQuery.action), customDataProxyFetch: n.customDataProxyFetch }); + return this.mapQueryEngineResult(n, o); + }, "singleLoader"), batchBy: /* @__PURE__ */ __name((n) => n.transaction?.id ? `transaction-${n.transaction.id}` : Zl(n.protocolQuery), "batchBy"), batchOrder(n, i) { + return n.transaction?.kind === "batch" && i.transaction?.kind === "batch" ? n.transaction.index - i.transaction.index : 0; + } }); + } + async request(r) { + try { + return await this.dataloader.request(r); + } catch (t) { + let { clientMethod: n, callsite: i, transaction: o, args: s, modelName: a } = r; + this.handleAndLogRequestError({ error: t, clientMethod: n, callsite: i, transaction: o, args: s, modelName: a, globalOmit: r.globalOmit }); + } + } + mapQueryEngineResult({ dataPath: r, unpacker: t }, n) { + let i = n?.data, o = this.unpack(i, r, t); + return process.env.PRISMA_CLIENT_GET_TIME ? { data: o } : o; + } + handleAndLogRequestError(r) { + try { + this.handleRequestError(r); + } catch (t) { + throw this.logEmitter && this.logEmitter.emit("error", { message: t.message, target: r.clientMethod, timestamp: /* @__PURE__ */ new Date() }), t; + } + } + handleRequestError({ error: r, clientMethod: t, callsite: n, transaction: i, args: o, modelName: s, globalOmit: a }) { + if (Cf(r), Df(r, i)) throw r; + if (r instanceof z && Of(r)) { + let u = eu(r.meta); + Nn({ args: o, errors: [u], callsite: n, errorFormat: this.client._errorFormat, originalMethod: t, clientVersion: this.client._clientVersion, globalOmit: a }); + } + let l = r.message; + if (n && (l = Tn({ callsite: n, originalMethod: t, isPanic: r.isPanic, showColors: this.client._errorFormat === "pretty", message: l })), l = this.sanitizeMessage(l), r.code) { + let u = s ? { modelName: s, ...r.meta } : r.meta; + throw new z(l, { code: r.code, clientVersion: this.client._clientVersion, meta: u, batchRequestIdx: r.batchRequestIdx }); + } else { + if (r.isPanic) throw new ae(l, this.client._clientVersion); + if (r instanceof V) throw new V(l, { clientVersion: this.client._clientVersion, batchRequestIdx: r.batchRequestIdx }); + if (r instanceof P) throw new P(l, this.client._clientVersion); + if (r instanceof ae) throw new ae(l, this.client._clientVersion); + } + throw r.clientVersion = this.client._clientVersion, r; + } + sanitizeMessage(r) { + return this.client._errorFormat && this.client._errorFormat !== "pretty" ? wr(r) : r; + } + unpack(r, t, n) { + if (!r || (r.data && (r = r.data), !r)) return r; + let i = Object.keys(r)[0], o = Object.values(r)[0], s = t.filter((u) => u !== "select" && u !== "include"), a = ao(o, s), l = i === "queryRaw" ? Xn(a) : Vr(a); + return n ? n(l) : l; + } + get [Symbol.toStringTag]() { + return "RequestHandler"; + } + }; + function If(e) { + if (e) { + if (e.kind === "batch") return { kind: "batch", options: { isolationLevel: e.isolationLevel } }; + if (e.kind === "itx") return { kind: "itx", options: Xl(e) }; + ar(e, "Unknown transaction kind"); + } + } + __name(If, "If"); + function Xl(e) { + return { id: e.id, payload: e.payload }; + } + __name(Xl, "Xl"); + function Df(e, r) { + return zn(e) && r?.kind === "batch" && e.batchRequestIdx !== r.index; + } + __name(Df, "Df"); + function Of(e) { + return e.code === "P2009" || e.code === "P2012"; + } + __name(Of, "Of"); + function eu(e) { + if (e.kind === "Union") return { kind: "Union", errors: e.errors.map(eu) }; + if (Array.isArray(e.selectionPath)) { + let [, ...r] = e.selectionPath; + return { ...e, selectionPath: r }; + } + return e; + } + __name(eu, "eu"); + var ru = xl; + var su = O(Ki()); + var _ = class extends Error { + static { + __name(this, "_"); + } + constructor(r) { + super(r + ` +Read more at https://pris.ly/d/client-constructor`), this.name = "PrismaClientConstructorValidationError"; + } + get [Symbol.toStringTag]() { + return "PrismaClientConstructorValidationError"; + } + }; + x(_, "PrismaClientConstructorValidationError"); + var tu = ["datasources", "datasourceUrl", "errorFormat", "adapter", "log", "transactionOptions", "omit", "__internal"]; + var nu = ["pretty", "colorless", "minimal"]; + var iu = ["info", "query", "warn", "error"]; + var kf = { datasources: /* @__PURE__ */ __name((e, { datasourceNames: r }) => { + if (e) { + if (typeof e != "object" || Array.isArray(e)) throw new _(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`); + for (let [t, n] of Object.entries(e)) { + if (!r.includes(t)) { + let i = Jr(t, r) || ` Available datasources: ${r.join(", ")}`; + throw new _(`Unknown datasource ${t} provided to PrismaClient constructor.${i}`); + } + if (typeof n != "object" || Array.isArray(n)) throw new _(`Invalid value ${JSON.stringify(e)} for datasource "${t}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`); + if (n && typeof n == "object") for (let [i, o] of Object.entries(n)) { + if (i !== "url") throw new _(`Invalid value ${JSON.stringify(e)} for datasource "${t}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`); + if (typeof o != "string") throw new _(`Invalid value ${JSON.stringify(o)} for datasource "${t}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`); + } + } + } + }, "datasources"), adapter: /* @__PURE__ */ __name((e, r) => { + if (!e && Er(r.generator) === "client") throw new _('Using engine type "client" requires a driver adapter to be provided to PrismaClient constructor.'); + if (e !== null) { + if (e === void 0) throw new _('"adapter" property must not be undefined, use null to conditionally disable driver adapters.'); + if (Er(r.generator) === "binary") throw new _('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.'); + } + }, "adapter"), datasourceUrl: /* @__PURE__ */ __name((e) => { + if (typeof e < "u" && typeof e != "string") throw new _(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`); + }, "datasourceUrl"), errorFormat: /* @__PURE__ */ __name((e) => { + if (e) { + if (typeof e != "string") throw new _(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`); + if (!nu.includes(e)) { + let r = Jr(e, nu); + throw new _(`Invalid errorFormat ${e} provided to PrismaClient constructor.${r}`); + } + } + }, "errorFormat"), log: /* @__PURE__ */ __name((e) => { + if (!e) return; + if (!Array.isArray(e)) throw new _(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`); + function r(t) { + if (typeof t == "string" && !iu.includes(t)) { + let n = Jr(t, iu); + throw new _(`Invalid log level "${t}" provided to PrismaClient constructor.${n}`); + } + } + __name(r, "r"); + for (let t of e) { + r(t); + let n = { level: r, emit: /* @__PURE__ */ __name((i) => { + let o = ["stdout", "event"]; + if (!o.includes(i)) { + let s = Jr(i, o); + throw new _(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`); + } + }, "emit") }; + if (t && typeof t == "object") for (let [i, o] of Object.entries(t)) if (n[i]) n[i](o); + else throw new _(`Invalid property ${i} for "log" provided to PrismaClient constructor`); + } + }, "log"), transactionOptions: /* @__PURE__ */ __name((e) => { + if (!e) return; + let r = e.maxWait; + if (r != null && r <= 0) throw new _(`Invalid value ${r} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`); + let t = e.timeout; + if (t != null && t <= 0) throw new _(`Invalid value ${t} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`); + }, "transactionOptions"), omit: /* @__PURE__ */ __name((e, r) => { + if (typeof e != "object") throw new _('"omit" option is expected to be an object.'); + if (e === null) throw new _('"omit" option can not be `null`'); + let t = []; + for (let [n, i] of Object.entries(e)) { + let o = Nf(n, r.runtimeDataModel); + if (!o) { + t.push({ kind: "UnknownModel", modelKey: n }); + continue; + } + for (let [s, a] of Object.entries(i)) { + let l = o.fields.find((u) => u.name === s); + if (!l) { + t.push({ kind: "UnknownField", modelKey: n, fieldName: s }); + continue; + } + if (l.relationName) { + t.push({ kind: "RelationInOmit", modelKey: n, fieldName: s }); + continue; + } + typeof a != "boolean" && t.push({ kind: "InvalidFieldValue", modelKey: n, fieldName: s }); + } + } + if (t.length > 0) throw new _(Lf(e, t)); + }, "omit"), __internal: /* @__PURE__ */ __name((e) => { + if (!e) return; + let r = ["debug", "engine", "configOverride"]; + if (typeof e != "object") throw new _(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`); + for (let [t] of Object.entries(e)) if (!r.includes(t)) { + let n = Jr(t, r); + throw new _(`Invalid property ${JSON.stringify(t)} for "__internal" provided to PrismaClient constructor.${n}`); + } + }, "__internal") }; + function au(e, r) { + for (let [t, n] of Object.entries(e)) { + if (!tu.includes(t)) { + let i = Jr(t, tu); + throw new _(`Unknown property ${t} provided to PrismaClient constructor.${i}`); + } + kf[t](n, r); + } + if (e.datasourceUrl && e.datasources) throw new _('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them'); + } + __name(au, "au"); + function Jr(e, r) { + if (r.length === 0 || typeof e != "string") return ""; + let t = _f(e, r); + return t ? ` Did you mean "${t}"?` : ""; + } + __name(Jr, "Jr"); + function _f(e, r) { + if (r.length === 0) return null; + let t = r.map((i) => ({ value: i, distance: (0, su.default)(e, i) })); + t.sort((i, o) => i.distance < o.distance ? -1 : 1); + let n = t[0]; + return n.distance < 3 ? n.value : null; + } + __name(_f, "_f"); + function Nf(e, r) { + return ou(r.models, e) ?? ou(r.types, e); + } + __name(Nf, "Nf"); + function ou(e, r) { + let t = Object.keys(e).find((n) => We(n) === r); + if (t) return e[t]; + } + __name(ou, "ou"); + function Lf(e, r) { + let t = _r(e); + for (let o of r) switch (o.kind) { + case "UnknownModel": + t.arguments.getField(o.modelKey)?.markAsError(), t.addErrorMessage(() => `Unknown model name: ${o.modelKey}.`); + break; + case "UnknownField": + t.arguments.getDeepField([o.modelKey, o.fieldName])?.markAsError(), t.addErrorMessage(() => `Model "${o.modelKey}" does not have a field named "${o.fieldName}".`); + break; + case "RelationInOmit": + t.arguments.getDeepField([o.modelKey, o.fieldName])?.markAsError(), t.addErrorMessage(() => 'Relations are already excluded by default and can not be specified in "omit".'); + break; + case "InvalidFieldValue": + t.arguments.getDeepFieldValue([o.modelKey, o.fieldName])?.markAsError(), t.addErrorMessage(() => "Omit field option value must be a boolean."); + break; + } + let { message: n, args: i } = _n(t, "colorless"); + return `Error validating "omit" option: + +${i} + +${n}`; + } + __name(Lf, "Lf"); + function lu(e) { + return e.length === 0 ? Promise.resolve([]) : new Promise((r, t) => { + let n = new Array(e.length), i = null, o = false, s = 0, a = /* @__PURE__ */ __name(() => { + o || (s++, s === e.length && (o = true, i ? t(i) : r(n))); + }, "a"), l = /* @__PURE__ */ __name((u) => { + o || (o = true, t(u)); + }, "l"); + for (let u = 0; u < e.length; u++) e[u].then((c) => { + n[u] = c, a(); + }, (c) => { + if (!zn(c)) { + l(c); + return; + } + c.batchRequestIdx === u ? l(c) : (i || (i = c), a()); + }); + }); + } + __name(lu, "lu"); + var rr = N("prisma:client"); + typeof globalThis == "object" && (globalThis.NODE_CLIENT = true); + var Ff = { requestArgsToMiddlewareArgs: /* @__PURE__ */ __name((e) => e, "requestArgsToMiddlewareArgs"), middlewareArgsToRequestArgs: /* @__PURE__ */ __name((e) => e, "middlewareArgsToRequestArgs") }; + var Mf = /* @__PURE__ */ Symbol.for("prisma.client.transaction.id"); + var $f = { id: 0, nextId() { + return ++this.id; + } }; + function fu(e) { + class r { + static { + __name(this, "r"); + } + _originalClient = this; + _runtimeDataModel; + _requestHandler; + _connectionPromise; + _disconnectionPromise; + _engineConfig; + _accelerateEngineConfig; + _clientVersion; + _errorFormat; + _tracingHelper; + _previewFeatures; + _activeProvider; + _globalOmit; + _extensions; + _engine; + _appliedParent; + _createPrismaPromise = Ro(); + constructor(n) { + e = n?.__internal?.configOverride?.(e) ?? e, sl(e), n && au(n, e); + let i = new du.EventEmitter().on("error", () => { + }); + this._extensions = Nr.empty(), this._previewFeatures = $l(e), this._clientVersion = e.clientVersion ?? ru, this._activeProvider = e.activeProvider, this._globalOmit = n?.omit, this._tracingHelper = Hl(); + let o = e.relativeEnvPaths && { rootEnvPath: e.relativeEnvPaths.rootEnvPath && ri.default.resolve(e.dirname, e.relativeEnvPaths.rootEnvPath), schemaEnvPath: e.relativeEnvPaths.schemaEnvPath && ri.default.resolve(e.dirname, e.relativeEnvPaths.schemaEnvPath) }, s; + if (n?.adapter) { + s = n.adapter; + let l = e.activeProvider === "postgresql" || e.activeProvider === "cockroachdb" ? "postgres" : e.activeProvider; + if (s.provider !== l) throw new P(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`, this._clientVersion); + if (n.datasources || n.datasourceUrl !== void 0) throw new P("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.", this._clientVersion); + } + let a = !s && o && st(o, { conflictCheck: "none" }) || e.injectableEdgeEnv?.(); + try { + let l = n ?? {}, u = l.__internal ?? {}, c = u.debug === true; + c && N.enable("prisma:client"); + let p = ri.default.resolve(e.dirname, e.relativePath); + mu.default.existsSync(p) || (p = e.dirname), rr("dirname", e.dirname), rr("relativePath", e.relativePath), rr("cwd", p); + let d = u.engine || {}; + if (l.errorFormat ? this._errorFormat = l.errorFormat : process.env.NODE_ENV === "production" ? this._errorFormat = "minimal" : process.env.NO_COLOR ? this._errorFormat = "colorless" : this._errorFormat = "colorless", this._runtimeDataModel = e.runtimeDataModel, this._engineConfig = { cwd: p, dirname: e.dirname, enableDebugLogs: c, allowTriggerPanic: d.allowTriggerPanic, prismaPath: d.binaryPath ?? void 0, engineEndpoint: d.endpoint, generator: e.generator, showColors: this._errorFormat === "pretty", logLevel: l.log && zl(l.log), logQueries: l.log && !!(typeof l.log == "string" ? l.log === "query" : l.log.find((f) => typeof f == "string" ? f === "query" : f.level === "query")), env: a?.parsed ?? {}, flags: [], engineWasm: e.engineWasm, compilerWasm: e.compilerWasm, clientVersion: e.clientVersion, engineVersion: e.engineVersion, previewFeatures: this._previewFeatures, activeProvider: e.activeProvider, inlineSchema: e.inlineSchema, overrideDatasources: al(l, e.datasourceNames), inlineDatasources: e.inlineDatasources, inlineSchemaHash: e.inlineSchemaHash, tracingHelper: this._tracingHelper, transactionOptions: { maxWait: l.transactionOptions?.maxWait ?? 2e3, timeout: l.transactionOptions?.timeout ?? 5e3, isolationLevel: l.transactionOptions?.isolationLevel }, logEmitter: i, isBundled: e.isBundled, adapter: s }, this._accelerateEngineConfig = { ...this._engineConfig, accelerateUtils: { resolveDatasourceUrl: jr, getBatchRequestPayload: Mr, prismaGraphQLToJSError: $r, PrismaClientUnknownRequestError: V, PrismaClientInitializationError: P, PrismaClientKnownRequestError: z, debug: N("prisma:client:accelerateEngine"), engineVersion: cu.version, clientVersion: e.clientVersion } }, rr("clientVersion", e.clientVersion), this._engine = Ml(e, this._engineConfig), this._requestHandler = new ei(this, i), l.log) for (let f of l.log) { + let h = typeof f == "string" ? f : f.emit === "stdout" ? f.level : null; + h && this.$on(h, (g) => { + nt.log(`${nt.tags[h] ?? ""}`, g.message || g.query); + }); + } + } catch (l) { + throw l.clientVersion = this._clientVersion, l; + } + return this._appliedParent = Pt(this); + } + get [Symbol.toStringTag]() { + return "PrismaClient"; + } + $on(n, i) { + return n === "beforeExit" ? this._engine.onBeforeExit(i) : n && this._engineConfig.logEmitter.on(n, i), this; + } + $connect() { + try { + return this._engine.start(); + } catch (n) { + throw n.clientVersion = this._clientVersion, n; + } + } + async $disconnect() { + try { + await this._engine.stop(); + } catch (n) { + throw n.clientVersion = this._clientVersion, n; + } finally { + Uo(); + } + } + $executeRawInternal(n, i, o, s) { + let a = this._activeProvider; + return this._request({ action: "executeRaw", args: o, transaction: n, clientMethod: i, argsMapper: So({ clientMethod: i, activeProvider: a }), callsite: Ze(this._errorFormat), dataPath: [], middlewareArgsMapper: s }); + } + $executeRaw(n, ...i) { + return this._createPrismaPromise((o) => { + if (n.raw !== void 0 || n.sql !== void 0) { + let [s, a] = uu(n, i); + return To(this._activeProvider, s.text, s.values, Array.isArray(n) ? "prisma.$executeRaw``" : "prisma.$executeRaw(sql``)"), this.$executeRawInternal(o, "$executeRaw", s, a); + } + throw new Z("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n", { clientVersion: this._clientVersion }); + }); + } + $executeRawUnsafe(n, ...i) { + return this._createPrismaPromise((o) => (To(this._activeProvider, n, i, "prisma.$executeRawUnsafe(, [...values])"), this.$executeRawInternal(o, "$executeRawUnsafe", [n, ...i]))); + } + $runCommandRaw(n) { + if (e.activeProvider !== "mongodb") throw new Z(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`, { clientVersion: this._clientVersion }); + return this._createPrismaPromise((i) => this._request({ args: n, clientMethod: "$runCommandRaw", dataPath: [], action: "runCommandRaw", argsMapper: ql, callsite: Ze(this._errorFormat), transaction: i })); + } + async $queryRawInternal(n, i, o, s) { + let a = this._activeProvider; + return this._request({ action: "queryRaw", args: o, transaction: n, clientMethod: i, argsMapper: So({ clientMethod: i, activeProvider: a }), callsite: Ze(this._errorFormat), dataPath: [], middlewareArgsMapper: s }); + } + $queryRaw(n, ...i) { + return this._createPrismaPromise((o) => { + if (n.raw !== void 0 || n.sql !== void 0) return this.$queryRawInternal(o, "$queryRaw", ...uu(n, i)); + throw new Z("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n", { clientVersion: this._clientVersion }); + }); + } + $queryRawTyped(n) { + return this._createPrismaPromise((i) => { + if (!this._hasPreviewFlag("typedSql")) throw new Z("`typedSql` preview feature must be enabled in order to access $queryRawTyped API", { clientVersion: this._clientVersion }); + return this.$queryRawInternal(i, "$queryRawTyped", n); + }); + } + $queryRawUnsafe(n, ...i) { + return this._createPrismaPromise((o) => this.$queryRawInternal(o, "$queryRawUnsafe", [n, ...i])); + } + _transactionWithArray({ promises: n, options: i }) { + let o = $f.nextId(), s = Yl(n.length), a = n.map((l, u) => { + if (l?.[Symbol.toStringTag] !== "PrismaPromise") throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function."); + let c = i?.isolationLevel ?? this._engineConfig.transactionOptions.isolationLevel, p = { kind: "batch", id: o, index: u, isolationLevel: c, lock: s }; + return l.requestTransaction?.(p) ?? l; + }); + return lu(a); + } + async _transactionWithCallback({ callback: n, options: i }) { + let o = { traceparent: this._tracingHelper.getTraceParent() }, s = { maxWait: i?.maxWait ?? this._engineConfig.transactionOptions.maxWait, timeout: i?.timeout ?? this._engineConfig.transactionOptions.timeout, isolationLevel: i?.isolationLevel ?? this._engineConfig.transactionOptions.isolationLevel }, a = await this._engine.transaction("start", o, s), l; + try { + let u = { kind: "itx", ...a }; + l = await n(this._createItxClient(u)), await this._engine.transaction("commit", o, a); + } catch (u) { + throw await this._engine.transaction("rollback", o, a).catch(() => { + }), u; + } + return l; + } + _createItxClient(n) { + return he(Pt(he(Qa(this), [re("_appliedParent", () => this._appliedParent._createItxClient(n)), re("_createPrismaPromise", () => Ro(n)), re(Mf, () => n.id)])), [Fr(Ya)]); + } + $transaction(n, i) { + let o; + typeof n == "function" ? this._engineConfig.adapter?.adapterName === "@prisma/adapter-d1" ? o = /* @__PURE__ */ __name(() => { + throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable."); + }, "o") : o = /* @__PURE__ */ __name(() => this._transactionWithCallback({ callback: n, options: i }), "o") : o = /* @__PURE__ */ __name(() => this._transactionWithArray({ promises: n, options: i }), "o"); + let s = { name: "transaction", attributes: { method: "$transaction" } }; + return this._tracingHelper.runInChildSpan(s, o); + } + _request(n) { + n.otelParentCtx = this._tracingHelper.getActiveContext(); + let i = n.middlewareArgsMapper ?? Ff, o = { args: i.requestArgsToMiddlewareArgs(n.args), dataPath: n.dataPath, runInTransaction: !!n.transaction, action: n.action, model: n.model }, s = { operation: { name: "operation", attributes: { method: o.action, model: o.model, name: o.model ? `${o.model}.${o.action}` : o.action } } }, a = /* @__PURE__ */ __name(async (l) => { + let { runInTransaction: u, args: c, ...p } = l, d = { ...n, ...p }; + c && (d.args = i.middlewareArgsToRequestArgs(c)), n.transaction !== void 0 && u === false && delete d.transaction; + let f = await el(this, d); + return d.model ? Ha({ result: f, modelName: d.model, args: d.args, extensions: this._extensions, runtimeDataModel: this._runtimeDataModel, globalOmit: this._globalOmit }) : f; + }, "a"); + return this._tracingHelper.runInChildSpan(s.operation, () => new pu.AsyncResource("prisma-client-request").runInAsyncScope(() => a(o))); + } + async _executeRequest({ args: n, clientMethod: i, dataPath: o, callsite: s, action: a, model: l, argsMapper: u, transaction: c, unpacker: p, otelParentCtx: d, customDataProxyFetch: f }) { + try { + n = u ? u(n) : n; + let h = { name: "serialize" }, g = this._tracingHelper.runInChildSpan(h, () => $n({ modelName: l, runtimeDataModel: this._runtimeDataModel, action: a, args: n, clientMethod: i, callsite: s, extensions: this._extensions, errorFormat: this._errorFormat, clientVersion: this._clientVersion, previewFeatures: this._previewFeatures, globalOmit: this._globalOmit })); + return N.enabled("prisma:client") && (rr("Prisma Client call:"), rr(`prisma.${i}(${Na(n)})`), rr("Generated request:"), rr(JSON.stringify(g, null, 2) + ` +`)), c?.kind === "batch" && await c.lock, this._requestHandler.request({ protocolQuery: g, modelName: l, action: a, clientMethod: i, dataPath: o, callsite: s, args: n, extensions: this._extensions, transaction: c, unpacker: p, otelParentCtx: d, otelChildCtx: this._tracingHelper.getActiveContext(), globalOmit: this._globalOmit, customDataProxyFetch: f }); + } catch (h) { + throw h.clientVersion = this._clientVersion, h; + } + } + $metrics = new Lr(this); + _hasPreviewFlag(n) { + return !!this._engineConfig.previewFeatures?.includes(n); + } + $applyPendingMigrations() { + return this._engine.applyPendingMigrations(); + } + $extends = Wa; + } + return r; + } + __name(fu, "fu"); + function uu(e, r) { + return qf(e) ? [new ie(e, r), Wl] : [e, Jl]; + } + __name(uu, "uu"); + function qf(e) { + return Array.isArray(e) && Array.isArray(e.raw); + } + __name(qf, "qf"); + var Vf = /* @__PURE__ */ new Set(["toJSON", "$$typeof", "asymmetricMatch", Symbol.iterator, Symbol.toStringTag, Symbol.isConcatSpreadable, Symbol.toPrimitive]); + function gu(e) { + return new Proxy(e, { get(r, t) { + if (t in r) return r[t]; + if (!Vf.has(t)) throw new TypeError(`Invalid enum value: ${String(t)}`); + } }); + } + __name(gu, "gu"); + function hu(e) { + st(e, { conflictCheck: "warn" }); + } + __name(hu, "hu"); + } +}); + +// node_modules/.prisma/client/index.js +var require_client = __commonJS({ + "node_modules/.prisma/client/index.js"(exports2) { + Object.defineProperty(exports2, "__esModule", { value: true }); + var { + PrismaClientKnownRequestError: PrismaClientKnownRequestError2, + PrismaClientUnknownRequestError: PrismaClientUnknownRequestError2, + PrismaClientRustPanicError: PrismaClientRustPanicError2, + PrismaClientInitializationError: PrismaClientInitializationError2, + PrismaClientValidationError: PrismaClientValidationError2, + getPrismaClient: getPrismaClient2, + sqltag: sqltag2, + empty: empty2, + join: join2, + raw: raw2, + skip: skip2, + Decimal: Decimal2, + Debug: Debug2, + objectEnumValues: objectEnumValues2, + makeStrictEnum: makeStrictEnum2, + Extensions: Extensions2, + warnOnce: warnOnce2, + defineDmmfProperty: defineDmmfProperty2, + Public: Public2, + getRuntime: getRuntime2, + createParam: createParam2 + } = require_library(); + var Prisma = {}; + exports2.Prisma = Prisma; + exports2.$Enums = {}; + Prisma.prismaVersion = { + client: "6.19.3", + engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7" + }; + Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError2; + Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError2; + Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError2; + Prisma.PrismaClientInitializationError = PrismaClientInitializationError2; + Prisma.PrismaClientValidationError = PrismaClientValidationError2; + Prisma.Decimal = Decimal2; + Prisma.sql = sqltag2; + Prisma.empty = empty2; + Prisma.join = join2; + Prisma.raw = raw2; + Prisma.validator = Public2.validator; + Prisma.getExtensionContext = Extensions2.getExtensionContext; + Prisma.defineExtension = Extensions2.defineExtension; + Prisma.DbNull = objectEnumValues2.instances.DbNull; + Prisma.JsonNull = objectEnumValues2.instances.JsonNull; + Prisma.AnyNull = objectEnumValues2.instances.AnyNull; + Prisma.NullTypes = { + DbNull: objectEnumValues2.classes.DbNull, + JsonNull: objectEnumValues2.classes.JsonNull, + AnyNull: objectEnumValues2.classes.AnyNull + }; + var path = require("path"); + exports2.Prisma.TransactionIsolationLevel = makeStrictEnum2({ + ReadUncommitted: "ReadUncommitted", + ReadCommitted: "ReadCommitted", + RepeatableRead: "RepeatableRead", + Serializable: "Serializable" + }); + exports2.Prisma.CompanyScalarFieldEnum = { + id: "id", + name: "name", + slug: "slug", + description: "description", + logoUrl: "logoUrl", + isActive: "isActive", + displayOrder: "displayOrder", + maxMeteragePerInvoice: "maxMeteragePerInvoice", + cashInvoiceValidityHours: "cashInvoiceValidityHours", + cashInvoiceValidUntilHour: "cashInvoiceValidUntilHour", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.BankAccountScalarFieldEnum = { + id: "id", + companyId: "companyId", + bankName: "bankName", + accountHolder: "accountHolder", + accountNumber: "accountNumber", + cardNumber: "cardNumber", + iban: "iban", + notes: "notes", + isActive: "isActive", + displayOrder: "displayOrder", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.CatalogScalarFieldEnum = { + id: "id", + companyId: "companyId", + name: "name", + code: "code", + description: "description", + displayOrder: "displayOrder", + isActive: "isActive", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.ProductScalarFieldEnum = { + id: "id", + companyId: "companyId", + catalogId: "catalogId", + name: "name", + code: "code", + color: "color", + description: "description", + minMeterage: "minMeterage", + orderMultiplier: "orderMultiplier", + basePrice: "basePrice", + stock: "stock", + isActive: "isActive", + usageCategory: "usageCategory", + season: "season", + widthCm: "widthCm", + composition: "composition", + weightGrams: "weightGrams", + weaveType: "weaveType", + colorsJson: "colorsJson", + tagsJson: "tagsJson", + imageUrlsJson: "imageUrlsJson", + subtitle: "subtitle", + rollMeters: "rollMeters", + isNew: "isNew", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.CustomerScalarFieldEnum = { + id: "id", + firstName: "firstName", + lastName: "lastName", + phone: "phone", + nationalId: "nationalId", + customerType: "customerType", + appRole: "appRole", + agentCode: "agentCode", + businessName: "businessName", + levelLabel: "levelLabel", + nextLevelLabel: "nextLevelLabel", + pointsToNext: "pointsToNext", + levelProgress: "levelProgress", + assignedAgentId: "assignedAgentId", + avatarLetter: "avatarLetter", + avatarColor: "avatarColor", + avatarUrl: "avatarUrl", + companyId: "companyId", + levelDefId: "levelDefId", + isActive: "isActive", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.AdminUserScalarFieldEnum = { + id: "id", + fullName: "fullName", + phone: "phone", + email: "email", + passwordHash: "passwordHash", + role: "role", + isActive: "isActive", + lastLoginAt: "lastLoginAt", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.OtpChallengeScalarFieldEnum = { + id: "id", + phone: "phone", + code: "code", + firstName: "firstName", + lastName: "lastName", + isRegister: "isRegister", + attempts: "attempts", + expiresAt: "expiresAt", + createdAt: "createdAt" + }; + exports2.Prisma.CartScalarFieldEnum = { + id: "id", + userId: "userId", + companyId: "companyId", + notes: "notes", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.CartItemScalarFieldEnum = { + id: "id", + cartId: "cartId", + productId: "productId", + catalogCode: "catalogCode", + productName: "productName", + productCode: "productCode", + color: "color", + meterage: "meterage", + unitPrice: "unitPrice", + notes: "notes", + companyId: "companyId", + companyName: "companyName" + }; + exports2.Prisma.OrderScalarFieldEnum = { + id: "id", + orderNumber: "orderNumber", + userId: "userId", + companyId: "companyId", + companyName: "companyName", + settlementType: "settlementType", + checkMode: "checkMode", + status: "status", + totalMeterage: "totalMeterage", + totalAmount: "totalAmount", + shippingCost: "shippingCost", + totalDiscount: "totalDiscount", + finalAmount: "finalAmount", + notes: "notes", + checkRassDays: "checkRassDays", + checkRassDate: "checkRassDate", + cashInvoiceExpiresAt: "cashInvoiceExpiresAt", + cashReminderSentAt: "cashReminderSentAt", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.OrderItemScalarFieldEnum = { + id: "id", + orderId: "orderId", + productId: "productId", + catalogCode: "catalogCode", + productName: "productName", + productCode: "productCode", + color: "color", + requestedMeterage: "requestedMeterage", + confirmedMeterage: "confirmedMeterage", + unitPrice: "unitPrice", + unitDiscount: "unitDiscount", + lineTotal: "lineTotal", + notes: "notes", + companyId: "companyId", + companyName: "companyName" + }; + exports2.Prisma.OrderStatusHistoryScalarFieldEnum = { + id: "id", + orderId: "orderId", + fromStatus: "fromStatus", + toStatus: "toStatus", + changedBy: "changedBy", + note: "note", + reason: "reason", + changedAt: "changedAt" + }; + exports2.Prisma.CheckScalarFieldEnum = { + id: "id", + orderId: "orderId", + row: "row", + amount: "amount", + dueDate: "dueDate", + sayadId: "sayadId", + checkNumber: "checkNumber", + ownerNationalId: "ownerNationalId", + ownerFirstName: "ownerFirstName", + ownerLastName: "ownerLastName", + bankName: "bankName", + branchName: "branchName", + frontImage: "frontImage", + backImage: "backImage", + notes: "notes", + mode: "mode", + status: "status", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.CashPaymentReceiptScalarFieldEnum = { + id: "id", + orderId: "orderId", + amount: "amount", + paidAmount: "paidAmount", + transferDate: "transferDate", + transferTime: "transferTime", + trackingNumber: "trackingNumber", + destinationAccountId: "destinationAccountId", + receiptImage: "receiptImage", + notes: "notes", + expiresAt: "expiresAt", + status: "status", + submittedAt: "submittedAt", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.ShipmentScalarFieldEnum = { + id: "id", + orderId: "orderId", + carrier: "carrier", + trackingNumber: "trackingNumber", + meterage: "meterage", + status: "status", + shippedAt: "shippedAt", + deliveredAt: "deliveredAt", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.SystemSettingsScalarFieldEnum = { + id: "id", + maxMeteragePerInvoice: "maxMeteragePerInvoice", + cashInvoiceValidityHours: "cashInvoiceValidityHours", + defaultSettlementCheck: "defaultSettlementCheck", + defaultSettlementCash: "defaultSettlementCash", + minOrderRollsPerProduct: "minOrderRollsPerProduct", + showCatalogPublicPrice: "showCatalogPublicPrice", + allowAgentPricing: "allowAgentPricing", + agentMinUnitPrice: "agentMinUnitPrice", + smsOrderRegistered: "smsOrderRegistered", + smsPricingReady: "smsPricingReady", + smsPaymentReminder: "smsPaymentReminder", + smsCheckReview: "smsCheckReview", + smsShippingUpdate: "smsShippingUpdate", + supportPhone: "supportPhone", + supportEmail: "supportEmail", + categoryImagesJson: "categoryImagesJson", + updatedAt: "updatedAt" + }; + exports2.Prisma.AppBannerScalarFieldEnum = { + id: "id", + slot: "slot", + title: "title", + subtitle: "subtitle", + ctaLabel: "ctaLabel", + ctaLink: "ctaLink", + imageUrl: "imageUrl", + displayOrder: "displayOrder", + isActive: "isActive", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.AdminNotificationScalarFieldEnum = { + id: "id", + title: "title", + body: "body", + tone: "tone", + link: "link", + isRead: "isRead", + sentAt: "sentAt" + }; + exports2.Prisma.CustomerNotificationScalarFieldEnum = { + id: "id", + customerId: "customerId", + orderId: "orderId", + event: "event", + title: "title", + body: "body", + tone: "tone", + link: "link", + isRead: "isRead", + smsSent: "smsSent", + sentAt: "sentAt" + }; + exports2.Prisma.InternalMessageScalarFieldEnum = { + id: "id", + senderName: "senderName", + subject: "subject", + preview: "preview", + isRead: "isRead", + sentAt: "sentAt" + }; + exports2.Prisma.MeetingInteractionScalarFieldEnum = { + id: "id", + customerId: "customerId", + agentId: "agentId", + type: "type", + title: "title", + description: "description", + subject: "subject", + content: "content", + date: "date", + time: "time", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.ReminderScalarFieldEnum = { + id: "id", + ownerId: "ownerId", + customerId: "customerId", + title: "title", + description: "description", + note: "note", + date: "date", + time: "time", + interactionType: "interactionType", + completed: "completed", + completedAt: "completedAt", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.ProductFavoriteScalarFieldEnum = { + id: "id", + customerId: "customerId", + productId: "productId", + createdAt: "createdAt" + }; + exports2.Prisma.BrandScalarFieldEnum = { + id: "id", + name: "name", + slug: "slug", + description: "description", + isActive: "isActive", + displayOrder: "displayOrder", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.CustomerBrandScalarFieldEnum = { + customerId: "customerId", + brandId: "brandId", + createdAt: "createdAt" + }; + exports2.Prisma.CustomerLevelDefScalarFieldEnum = { + id: "id", + code: "code", + label: "label", + sortOrder: "sortOrder", + criteriaJson: "criteriaJson", + isActive: "isActive", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.LevelBenefitScalarFieldEnum = { + id: "id", + levelId: "levelId", + title: "title", + description: "description" + }; + exports2.Prisma.CatalogRequestScalarFieldEnum = { + id: "id", + customerId: "customerId", + status: "status", + note: "note", + createdAt: "createdAt", + updatedAt: "updatedAt" + }; + exports2.Prisma.CatalogRequestItemScalarFieldEnum = { + id: "id", + requestId: "requestId", + productId: "productId", + quantity: "quantity", + holderType: "holderType", + holderCustomerId: "holderCustomerId" + }; + exports2.Prisma.CatalogItemMovementScalarFieldEnum = { + id: "id", + itemId: "itemId", + fromHolder: "fromHolder", + toHolder: "toHolder", + note: "note", + movedAt: "movedAt" + }; + exports2.Prisma.StockNotifyRequestScalarFieldEnum = { + id: "id", + customerId: "customerId", + productId: "productId", + active: "active", + createdAt: "createdAt", + notifiedAt: "notifiedAt" + }; + exports2.Prisma.ProductSuggestionScalarFieldEnum = { + id: "id", + customerId: "customerId", + productId: "productId", + note: "note", + createdByAdminId: "createdByAdminId", + isActive: "isActive", + createdAt: "createdAt" + }; + exports2.Prisma.SortOrder = { + asc: "asc", + desc: "desc" + }; + exports2.Prisma.NullableJsonNullValueInput = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull + }; + exports2.Prisma.QueryMode = { + default: "default", + insensitive: "insensitive" + }; + exports2.Prisma.NullsOrder = { + first: "first", + last: "last" + }; + exports2.Prisma.JsonNullValueFilter = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull, + AnyNull: Prisma.AnyNull + }; + exports2.SettlementType = exports2.$Enums.SettlementType = { + cash: "cash", + check: "check" + }; + exports2.CheckRegistrationMode = exports2.$Enums.CheckRegistrationMode = { + full: "full", + brief: "brief" + }; + exports2.OrderStatus = exports2.$Enums.OrderStatus = { + cart: "cart", + awaiting_settlement: "awaiting_settlement", + cash_in_progress: "cash_in_progress", + check_in_progress: "check_in_progress", + submitted: "submitted", + awaiting_review: "awaiting_review", + pricing: "pricing", + needs_correction: "needs_correction", + awaiting_settlement_fix: "awaiting_settlement_fix", + cash_invoice_issued: "cash_invoice_issued", + awaiting_cash_payment: "awaiting_cash_payment", + cash_payment_submitted: "cash_payment_submitted", + awaiting_cash_confirmation: "awaiting_cash_confirmation", + cash_confirmed: "cash_confirmed", + awaiting_check_review: "awaiting_check_review", + check_needs_fix: "check_needs_fix", + check_rejected: "check_rejected", + checks_approved: "checks_approved", + final_approved: "final_approved", + preparing: "preparing", + ready_to_ship: "ready_to_ship", + shipped: "shipped", + delivered: "delivered", + cancelled: "cancelled", + rejected: "rejected", + expired: "expired" + }; + exports2.CheckStatus = exports2.$Enums.CheckStatus = { + pending_review: "pending_review", + approved: "approved", + rejected: "rejected" + }; + exports2.CashPaymentStatus = exports2.$Enums.CashPaymentStatus = { + pending_review: "pending_review", + approved: "approved", + rejected: "rejected", + expired: "expired" + }; + exports2.ShipmentStatus = exports2.$Enums.ShipmentStatus = { + preparing: "preparing", + ready: "ready", + shipped: "shipped", + delivered: "delivered" + }; + exports2.CustomerType = exports2.$Enums.CustomerType = { + wholesale: "wholesale", + retail: "retail" + }; + exports2.AppUserRole = exports2.$Enums.AppUserRole = { + customer: "customer", + agent: "agent" + }; + exports2.InteractionType = exports2.$Enums.InteractionType = { + in_person: "in_person", + call: "call", + message: "message", + note: "note" + }; + exports2.ProductSeason = exports2.$Enums.ProductSeason = { + summer: "summer", + winter: "winter", + all_season: "all_season" + }; + exports2.ProductUsageCategory = exports2.$Enums.ProductUsageCategory = { + trousers: "trousers", + suit: "suit", + shirt: "shirt", + other: "other" + }; + exports2.AdminRole = exports2.$Enums.AdminRole = { + admin: "admin", + sales: "sales", + finance: "finance", + warehouse: "warehouse" + }; + exports2.NotificationTone = exports2.$Enums.NotificationTone = { + info: "info", + warning: "warning", + success: "success", + danger: "danger" + }; + exports2.CatalogRequestStatus = exports2.$Enums.CatalogRequestStatus = { + new: "new", + approved: "approved", + ready_to_ship: "ready_to_ship", + delivered: "delivered", + returned: "returned", + cancelled: "cancelled" + }; + exports2.CatalogItemHolderType = exports2.$Enums.CatalogItemHolderType = { + warehouse: "warehouse", + customer: "customer", + agent: "agent" + }; + exports2.Prisma.ModelName = { + Company: "Company", + BankAccount: "BankAccount", + Catalog: "Catalog", + Product: "Product", + Customer: "Customer", + AdminUser: "AdminUser", + OtpChallenge: "OtpChallenge", + Cart: "Cart", + CartItem: "CartItem", + Order: "Order", + OrderItem: "OrderItem", + OrderStatusHistory: "OrderStatusHistory", + Check: "Check", + CashPaymentReceipt: "CashPaymentReceipt", + Shipment: "Shipment", + SystemSettings: "SystemSettings", + AppBanner: "AppBanner", + AdminNotification: "AdminNotification", + CustomerNotification: "CustomerNotification", + InternalMessage: "InternalMessage", + MeetingInteraction: "MeetingInteraction", + Reminder: "Reminder", + ProductFavorite: "ProductFavorite", + Brand: "Brand", + CustomerBrand: "CustomerBrand", + CustomerLevelDef: "CustomerLevelDef", + LevelBenefit: "LevelBenefit", + CatalogRequest: "CatalogRequest", + CatalogRequestItem: "CatalogRequestItem", + CatalogItemMovement: "CatalogItemMovement", + StockNotifyRequest: "StockNotifyRequest", + ProductSuggestion: "ProductSuggestion" + }; + var config = { + "generator": { + "name": "client", + "provider": { + "fromEnvVar": null, + "value": "prisma-client-js" + }, + "output": { + "value": "E:\\fabric-nademitex\\fabric_nademitex_server\\node_modules\\@prisma\\client", + "fromEnvVar": null + }, + "config": { + "engineType": "library" + }, + "binaryTargets": [ + { + "fromEnvVar": null, + "value": "windows", + "native": true + }, + { + "fromEnvVar": null, + "value": "debian-openssl-3.0.x" + } + ], + "previewFeatures": [], + "sourceFilePath": "E:\\fabric-nademitex\\fabric_nademitex_server\\prisma\\schema.prisma" + }, + "relativeEnvPaths": { + "rootEnvPath": null + }, + "relativePath": "../../../prisma", + "clientVersion": "6.19.3", + "engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7", + "datasourceNames": [ + "db" + ], + "activeProvider": "postgresql", + "postinstall": false, + "inlineDatasources": { + "db": { + "url": { + "fromEnvVar": "DATABASE_URL", + "value": null + } + } + }, + "inlineSchema": 'generator client {\n provider = "prisma-client-js"\n binaryTargets = ["native", "debian-openssl-3.0.x"]\n}\n\ndatasource db {\n provider = "postgresql"\n url = env("DATABASE_URL")\n}\n\nenum SettlementType {\n cash\n check\n}\n\nenum CheckRegistrationMode {\n full\n brief\n}\n\nenum OrderStatus {\n cart\n awaiting_settlement\n cash_in_progress\n check_in_progress\n submitted\n awaiting_review\n pricing\n needs_correction\n awaiting_settlement_fix\n cash_invoice_issued\n awaiting_cash_payment\n cash_payment_submitted\n awaiting_cash_confirmation\n cash_confirmed\n awaiting_check_review\n check_needs_fix\n check_rejected\n checks_approved\n final_approved\n preparing\n ready_to_ship\n shipped\n delivered\n cancelled\n rejected\n expired\n}\n\nenum CheckStatus {\n pending_review\n approved\n rejected\n}\n\nenum CashPaymentStatus {\n pending_review\n approved\n rejected\n expired\n}\n\nenum ShipmentStatus {\n preparing\n ready\n shipped\n delivered\n}\n\nenum CustomerType {\n wholesale\n retail\n}\n\nenum AppUserRole {\n customer\n agent\n}\n\nenum InteractionType {\n in_person\n call\n message\n note\n}\n\nenum ProductSeason {\n summer\n winter\n all_season\n}\n\nenum ProductUsageCategory {\n trousers\n suit\n shirt\n other\n}\n\nenum AdminRole {\n admin\n sales\n finance\n warehouse\n}\n\nenum NotificationTone {\n info\n warning\n success\n danger\n}\n\n/// \u06AF\u0631\u062F\u0634 \u06A9\u0627\u0644\u06CC\u062A\u0647 \u0641\u06CC\u0632\u06CC\u06A9\u06CC (\xA7\u06F7 \u0633\u0646\u062F)\nenum CatalogRequestStatus {\n new\n approved\n ready_to_ship\n delivered\n returned\n cancelled\n}\n\nenum CatalogItemHolderType {\n warehouse\n customer\n agent\n}\n\nmodel Company {\n id String @id @default(cuid())\n name String\n slug String @unique\n description String?\n logoUrl String?\n isActive Boolean @default(true)\n displayOrder Int @default(0)\n /// \u062E\u0627\u0644\u06CC \u06CC\u0639\u0646\u06CC \u0627\u0632 \u062A\u0646\u0638\u06CC\u0645\u0627\u062A \u0633\u06CC\u0633\u062A\u0645 \u0627\u0631\u062B \u0645\u06CC\u200C\u0628\u0631\u062F\n maxMeteragePerInvoice Int?\n cashInvoiceValidityHours Int @default(8)\n cashInvoiceValidUntilHour Int?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n bankAccounts BankAccount[]\n catalogs Catalog[]\n products Product[]\n orders Order[]\n customers Customer[]\n}\n\nmodel BankAccount {\n id String @id @default(cuid())\n companyId String\n bankName String\n accountHolder String\n accountNumber String\n cardNumber String\n iban String\n notes String?\n isActive Boolean @default(true)\n displayOrder Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n company Company @relation(fields: [companyId], references: [id], onDelete: Cascade)\n cashReceipts CashPaymentReceipt[]\n\n @@index([companyId])\n}\n\nmodel Catalog {\n id String @id @default(cuid())\n companyId String\n name String\n code String\n description String?\n displayOrder Int @default(0)\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n company Company @relation(fields: [companyId], references: [id], onDelete: Cascade)\n products Product[]\n\n @@unique([companyId, code])\n @@index([companyId])\n}\n\nmodel Product {\n id String @id @default(cuid())\n companyId String\n catalogId String\n name String\n code String\n color String\n description String?\n minMeterage Float @default(30)\n orderMultiplier Float @default(10)\n basePrice Float?\n stock Float?\n isActive Boolean @default(true)\n /// \u0641\u06CC\u0644\u062F\u0647\u0627\u06CC \u0646\u0645\u0627\u06CC\u0634 \u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u0645\u0648\u06A9\u0627\u067E (\u0627\u067E \u06A9\u0627\u0631\u0628\u0631)\n usageCategory ProductUsageCategory @default(other)\n season ProductSeason @default(all_season)\n widthCm Float?\n composition String?\n weightGrams Float?\n weaveType String?\n colorsJson Json?\n tagsJson Json?\n imageUrlsJson Json?\n subtitle String?\n rollMeters Float @default(50)\n isNew Boolean @default(false)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n company Company @relation(fields: [companyId], references: [id], onDelete: Cascade)\n catalog Catalog @relation(fields: [catalogId], references: [id], onDelete: Cascade)\n cartItems CartItem[]\n orderItems OrderItem[]\n favorites ProductFavorite[]\n catalogRequestItems CatalogRequestItem[]\n stockNotifyRequests StockNotifyRequest[]\n productSuggestions ProductSuggestion[]\n\n @@unique([companyId, code])\n @@index([catalogId])\n @@index([companyId])\n @@index([usageCategory])\n @@index([season])\n}\n\nmodel Customer {\n id String @id @default(cuid())\n firstName String\n lastName String\n phone String @unique\n nationalId String?\n customerType CustomerType @default(wholesale)\n /// \u0646\u0642\u0634 \u062F\u0631 \u0627\u067E \u06A9\u0627\u0631\u0628\u0631: \u0645\u0634\u062A\u0631\u06CC \u0639\u0627\u062F\u06CC \u06CC\u0627 \u0648\u0627\u0633\u0637\u0647\n appRole AppUserRole @default(customer)\n agentCode String?\n businessName String?\n levelLabel String?\n nextLevelLabel String?\n pointsToNext Int?\n levelProgress Int? @default(0)\n assignedAgentId String?\n avatarLetter String?\n avatarColor String?\n avatarUrl String?\n companyId String?\n levelDefId String?\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n company Company? @relation(fields: [companyId], references: [id], onDelete: SetNull)\n levelDef CustomerLevelDef? @relation(fields: [levelDefId], references: [id], onDelete: SetNull)\n assignedAgent Customer? @relation("AgentCustomers", fields: [assignedAgentId], references: [id], onDelete: SetNull)\n agentCustomers Customer[] @relation("AgentCustomers")\n carts Cart[]\n orders Order[]\n notifications CustomerNotification[]\n meetings MeetingInteraction[] @relation("MeetingCustomer")\n meetingsAsAgent MeetingInteraction[] @relation("MeetingAgent")\n reminders Reminder[] @relation("ReminderOwner")\n remindersAbout Reminder[] @relation("ReminderCustomer")\n favorites ProductFavorite[]\n catalogRequests CatalogRequest[]\n stockNotifyRequests StockNotifyRequest[]\n productSuggestions ProductSuggestion[]\n customerBrands CustomerBrand[]\n\n @@index([companyId])\n @@index([appRole])\n @@index([assignedAgentId])\n @@index([agentCode])\n @@index([levelDefId])\n}\n\nmodel AdminUser {\n id String @id @default(cuid())\n fullName String\n phone String @unique\n email String @unique\n passwordHash String\n role AdminRole @default(admin)\n isActive Boolean @default(true)\n lastLoginAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel OtpChallenge {\n id String @id @default(cuid())\n phone String\n code String\n firstName String?\n lastName String?\n isRegister Boolean @default(false)\n attempts Int @default(0)\n expiresAt DateTime\n createdAt DateTime @default(now())\n\n @@index([phone])\n}\n\nmodel Cart {\n id String @id @default(cuid())\n userId String\n companyId String?\n notes String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n user Customer @relation(fields: [userId], references: [id], onDelete: Cascade)\n items CartItem[]\n\n @@index([userId])\n}\n\nmodel CartItem {\n id String @id @default(cuid())\n cartId String\n productId String\n catalogCode String\n productName String\n productCode String\n color String\n meterage Float\n unitPrice Float?\n notes String?\n companyId String\n companyName String\n\n cart Cart @relation(fields: [cartId], references: [id], onDelete: Cascade)\n product Product @relation(fields: [productId], references: [id], onDelete: Restrict)\n\n @@unique([cartId, productId])\n @@index([cartId])\n}\n\nmodel Order {\n id String @id @default(cuid())\n orderNumber String @unique\n userId String\n companyId String\n companyName String\n // \u0631\u0648\u0634 \u062A\u0633\u0648\u06CC\u0647 \u0628\u0639\u062F \u0627\u0632 \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u0627\u062F\u0645\u06CC\u0646 \u062A\u0648\u0633\u0637 \u0645\u0634\u062A\u0631\u06CC \u0627\u0646\u062A\u062E\u0627\u0628 \u0645\u06CC\u200C\u0634\u0648\u062F\n settlementType SettlementType?\n checkMode CheckRegistrationMode?\n status OrderStatus @default(awaiting_review)\n totalMeterage Float @default(0)\n totalAmount Float?\n shippingCost Float?\n totalDiscount Float?\n finalAmount Float?\n notes String?\n checkRassDays Int?\n checkRassDate DateTime?\n cashInvoiceExpiresAt DateTime?\n /// \u0632\u0645\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u06CC\u0627\u062F\u0622\u0648\u0631\u06CC \u067E\u0627\u06CC\u0627\u0646 \u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u062A\u0627 \u062F\u0648\u0628\u0627\u0631\u0647 \u0627\u0631\u0633\u0627\u0644 \u0646\u0634\u0648\u062F\n cashReminderSentAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n user Customer @relation(fields: [userId], references: [id], onDelete: Restrict)\n company Company @relation(fields: [companyId], references: [id], onDelete: Restrict)\n items OrderItem[]\n checks Check[]\n cashReceipt CashPaymentReceipt?\n shipment Shipment?\n statusHistory OrderStatusHistory[]\n notifications CustomerNotification[]\n\n @@index([userId])\n @@index([companyId])\n @@index([status])\n @@index([createdAt])\n @@index([status, cashInvoiceExpiresAt])\n}\n\nmodel OrderItem {\n id String @id @default(cuid())\n orderId String\n productId String?\n catalogCode String\n productName String\n productCode String?\n color String\n requestedMeterage Float\n confirmedMeterage Float?\n unitPrice Float?\n unitDiscount Float? @default(0)\n lineTotal Float?\n notes String?\n companyId String\n companyName String\n\n order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)\n product Product? @relation(fields: [productId], references: [id], onDelete: SetNull)\n\n @@index([orderId])\n @@index([companyId])\n}\n\nmodel OrderStatusHistory {\n id String @id @default(cuid())\n orderId String\n fromStatus OrderStatus?\n toStatus OrderStatus\n changedBy String\n note String?\n reason String?\n changedAt DateTime @default(now())\n\n order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)\n\n @@index([orderId])\n}\n\nmodel Check {\n id String @id @default(cuid())\n orderId String\n row Int\n amount Float\n dueDate DateTime\n sayadId String?\n checkNumber String?\n ownerNationalId String?\n ownerFirstName String?\n ownerLastName String?\n bankName String?\n branchName String?\n frontImage String?\n backImage String?\n notes String?\n mode CheckRegistrationMode @default(full)\n status CheckStatus @default(pending_review)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)\n\n @@index([orderId])\n @@index([dueDate])\n}\n\nmodel CashPaymentReceipt {\n id String @id @default(cuid())\n orderId String @unique\n amount Float\n paidAmount Float?\n transferDate DateTime?\n transferTime String?\n trackingNumber String?\n destinationAccountId String?\n receiptImage String?\n notes String?\n expiresAt DateTime?\n status CashPaymentStatus @default(pending_review)\n submittedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)\n destinationAccount BankAccount? @relation(fields: [destinationAccountId], references: [id], onDelete: SetNull)\n}\n\nmodel Shipment {\n id String @id @default(cuid())\n orderId String @unique\n carrier String\n trackingNumber String?\n meterage Float\n status ShipmentStatus @default(preparing)\n shippedAt DateTime?\n deliveredAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)\n}\n\nmodel SystemSettings {\n id String @id @default("default")\n maxMeteragePerInvoice Int @default(5000)\n cashInvoiceValidityHours Int @default(8)\n defaultSettlementCheck Boolean @default(true)\n defaultSettlementCash Boolean @default(true)\n /// \u062D\u062F\u0627\u0642\u0644 \u0633\u0641\u0627\u0631\u0634: \u062A\u0639\u062F\u0627\u062F \u0637\u0627\u0642\u0647 \u0627\u0632 \u0647\u0631 \u0645\u062D\u0635\u0648\u0644 (\xA7\u06F1\u06F9)\n minOrderRollsPerProduct Int @default(1)\n /// \u0646\u0645\u0627\u06CC\u0634 \u0642\u06CC\u0645\u062A \u0639\u0645\u0648\u0645\u06CC \u062F\u0631 \u06A9\u0627\u062A\u0627\u0644\u0648\u06AF (\u067E\u06CC\u0634\u200C\u0641\u0631\u0636 \u062E\u0627\u0645\u0648\u0634)\n showCatalogPublicPrice Boolean @default(false)\n /// \u0627\u062C\u0627\u0632\u0647 \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u062A\u0648\u0633\u0637 \u0648\u0627\u0633\u0637\u0647 (\xA7\u06F1\u06F9)\n allowAgentPricing Boolean @default(false)\n /// \u06A9\u0641 \u0642\u06CC\u0645\u062A \u0648\u0627\u062D\u062F \u0628\u0631\u0627\u06CC \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u0648\u0627\u0633\u0637\u0647 (\u0631\u06CC\u0627\u0644) \u2014 \u0627\u062E\u062A\u06CC\u0627\u0631\u06CC\n agentMinUnitPrice Int?\n smsOrderRegistered Boolean @default(true)\n smsPricingReady Boolean @default(true)\n smsPaymentReminder Boolean @default(true)\n smsCheckReview Boolean @default(true)\n smsShippingUpdate Boolean @default(true)\n supportPhone String?\n supportEmail String?\n /// \u062A\u0635\u0627\u0648\u06CC\u0631 \u062F\u0633\u062A\u0647\u200C\u0647\u0627\u06CC \u06A9\u0627\u0631\u0628\u0631\u062F/\u0641\u0635\u0644 \u0627\u067E \u06A9\u0627\u0631\u0628\u0631: { trousers: dataUrl, summer: dataUrl, ... }\n categoryImagesJson Json?\n updatedAt DateTime @updatedAt\n}\n\n/// \u0628\u0646\u0631\u0647\u0627\u06CC \u0642\u0627\u0628\u0644 \u0645\u062F\u06CC\u0631\u06CC\u062A \u0628\u062E\u0634\u200C\u0647\u0627\u06CC \u0627\u067E \u06A9\u0627\u0631\u0628\u0631\nmodel AppBanner {\n id String @id @default(cuid())\n slot String\n title String\n subtitle String?\n ctaLabel String?\n ctaLink String?\n imageUrl String?\n displayOrder Int @default(0)\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([slot, isActive, displayOrder])\n}\n\nmodel AdminNotification {\n id String @id @default(cuid())\n title String\n body String\n tone NotificationTone? @default(info)\n link String?\n isRead Boolean @default(false)\n sentAt DateTime @default(now())\n}\n\nmodel CustomerNotification {\n id String @id @default(cuid())\n customerId String\n orderId String?\n event String\n title String\n body String\n tone NotificationTone? @default(info)\n link String?\n isRead Boolean @default(false)\n smsSent Boolean @default(false)\n sentAt DateTime @default(now())\n\n customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade)\n order Order? @relation(fields: [orderId], references: [id], onDelete: SetNull)\n\n @@index([customerId, isRead])\n @@index([sentAt])\n}\n\nmodel InternalMessage {\n id String @id @default(cuid())\n senderName String\n subject String\n preview String\n isRead Boolean @default(false)\n sentAt DateTime @default(now())\n}\n\nmodel MeetingInteraction {\n id String @id @default(cuid())\n customerId String\n agentId String\n type InteractionType @default(in_person)\n title String\n description String?\n subject String?\n content String?\n date String\n time String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n customer Customer @relation("MeetingCustomer", fields: [customerId], references: [id], onDelete: Cascade)\n agent Customer @relation("MeetingAgent", fields: [agentId], references: [id], onDelete: Cascade)\n\n @@index([customerId])\n @@index([agentId])\n @@index([date])\n}\n\nmodel Reminder {\n id String @id @default(cuid())\n ownerId String\n customerId String\n title String\n description String?\n note String?\n date String\n time String\n interactionType InteractionType @default(note)\n completed Boolean @default(false)\n completedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n owner Customer @relation("ReminderOwner", fields: [ownerId], references: [id], onDelete: Cascade)\n customer Customer @relation("ReminderCustomer", fields: [customerId], references: [id], onDelete: Cascade)\n\n @@index([ownerId, completed])\n @@index([customerId])\n @@index([date])\n}\n\nmodel ProductFavorite {\n id String @id @default(cuid())\n customerId String\n productId String\n createdAt DateTime @default(now())\n\n customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade)\n product Product @relation(fields: [productId], references: [id], onDelete: Cascade)\n\n @@unique([customerId, productId])\n @@index([customerId])\n}\n\nmodel Brand {\n id String @id @default(cuid())\n name String\n slug String? @unique\n description String?\n isActive Boolean @default(true)\n displayOrder Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n customers CustomerBrand[]\n}\n\nmodel CustomerBrand {\n customerId String\n brandId String\n createdAt DateTime @default(now())\n\n customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade)\n brand Brand @relation(fields: [brandId], references: [id], onDelete: Cascade)\n\n @@id([customerId, brandId])\n @@index([brandId])\n}\n\nmodel CustomerLevelDef {\n id String @id @default(cuid())\n code String @unique\n label String\n sortOrder Int @default(0)\n criteriaJson Json?\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n benefits LevelBenefit[]\n customers Customer[]\n}\n\nmodel LevelBenefit {\n id String @id @default(cuid())\n levelId String\n title String\n description String?\n\n level CustomerLevelDef @relation(fields: [levelId], references: [id], onDelete: Cascade)\n\n @@index([levelId])\n}\n\nmodel CatalogRequest {\n id String @id @default(cuid())\n customerId String\n status CatalogRequestStatus @default(new)\n note String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade)\n items CatalogRequestItem[]\n\n @@index([customerId])\n @@index([status])\n}\n\nmodel CatalogRequestItem {\n id String @id @default(cuid())\n requestId String\n productId String\n quantity Int @default(1)\n holderType CatalogItemHolderType @default(warehouse)\n holderCustomerId String?\n\n request CatalogRequest @relation(fields: [requestId], references: [id], onDelete: Cascade)\n product Product @relation(fields: [productId], references: [id], onDelete: Restrict)\n movements CatalogItemMovement[]\n\n @@index([requestId])\n @@index([productId])\n}\n\nmodel CatalogItemMovement {\n id String @id @default(cuid())\n itemId String\n fromHolder String\n toHolder String\n note String?\n movedAt DateTime @default(now())\n\n item CatalogRequestItem @relation(fields: [itemId], references: [id], onDelete: Cascade)\n\n @@index([itemId])\n}\n\nmodel StockNotifyRequest {\n id String @id @default(cuid())\n customerId String\n productId String\n active Boolean @default(true)\n createdAt DateTime @default(now())\n notifiedAt DateTime?\n\n customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade)\n product Product @relation(fields: [productId], references: [id], onDelete: Cascade)\n\n @@unique([customerId, productId])\n @@index([productId, active])\n}\n\nmodel ProductSuggestion {\n id String @id @default(cuid())\n customerId String\n productId String\n note String?\n createdByAdminId String?\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n\n customer Customer @relation(fields: [customerId], references: [id], onDelete: Cascade)\n product Product @relation(fields: [productId], references: [id], onDelete: Cascade)\n\n @@index([customerId, isActive])\n @@index([productId])\n}\n', + "inlineSchemaHash": "a9c2d87fe24f75b044d0e402cc0d982f5c8c39217ba35572ad8a4d2ef0059de8", + "copyEngine": true + }; + var fs = require("fs"); + config.dirname = __dirname; + if (!fs.existsSync(path.join(__dirname, "schema.prisma"))) { + const alternativePaths = [ + "node_modules/.prisma/client", + ".prisma/client" + ]; + const alternativePath = alternativePaths.find((altPath) => { + return fs.existsSync(path.join(process.cwd(), altPath, "schema.prisma")); + }) ?? alternativePaths[0]; + config.dirname = path.join(process.cwd(), alternativePath); + config.isBundled = true; + } + config.runtimeDataModel = JSON.parse('{"models":{"Company":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"slug","kind":"scalar","isList":false,"isRequired":true,"isUnique":true,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"description","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"logoUrl","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"displayOrder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"maxMeteragePerInvoice","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","nativeType":null,"isGenerated":false,"isUpdatedAt":false,"documentation":"\u062E\u0627\u0644\u06CC \u06CC\u0639\u0646\u06CC \u0627\u0632 \u062A\u0646\u0638\u06CC\u0645\u0627\u062A \u0633\u06CC\u0633\u062A\u0645 \u0627\u0631\u062B \u0645\u06CC\u200C\u0628\u0631\u062F"},{"name":"cashInvoiceValidityHours","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":8,"isGenerated":false,"isUpdatedAt":false},{"name":"cashInvoiceValidUntilHour","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"bankAccounts","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"BankAccount","nativeType":null,"relationName":"BankAccountToCompany","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"catalogs","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Catalog","nativeType":null,"relationName":"CatalogToCompany","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"products","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Product","nativeType":null,"relationName":"CompanyToProduct","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"orders","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Order","nativeType":null,"relationName":"CompanyToOrder","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"customers","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CompanyToCustomer","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"BankAccount":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"companyId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"bankName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"accountHolder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"accountNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"cardNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"iban","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"notes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"displayOrder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"company","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Company","nativeType":null,"relationName":"BankAccountToCompany","relationFromFields":["companyId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"cashReceipts","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CashPaymentReceipt","nativeType":null,"relationName":"BankAccountToCashPaymentReceipt","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Catalog":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"companyId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"code","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"description","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"displayOrder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"company","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Company","nativeType":null,"relationName":"CatalogToCompany","relationFromFields":["companyId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"products","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Product","nativeType":null,"relationName":"CatalogToProduct","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[["companyId","code"]],"uniqueIndexes":[{"name":null,"fields":["companyId","code"]}],"isGenerated":false},"Product":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"companyId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"catalogId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"code","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"color","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"description","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"minMeterage","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Float","nativeType":null,"default":30,"isGenerated":false,"isUpdatedAt":false},{"name":"orderMultiplier","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Float","nativeType":null,"default":10,"isGenerated":false,"isUpdatedAt":false},{"name":"basePrice","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"stock","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"usageCategory","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"ProductUsageCategory","nativeType":null,"default":"other","isGenerated":false,"isUpdatedAt":false,"documentation":"\u0641\u06CC\u0644\u062F\u0647\u0627\u06CC \u0646\u0645\u0627\u06CC\u0634 \u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u0645\u0648\u06A9\u0627\u067E (\u0627\u067E \u06A9\u0627\u0631\u0628\u0631)"},{"name":"season","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"ProductSeason","nativeType":null,"default":"all_season","isGenerated":false,"isUpdatedAt":false},{"name":"widthCm","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"composition","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"weightGrams","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"weaveType","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"colorsJson","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Json","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"tagsJson","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Json","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"imageUrlsJson","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Json","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"subtitle","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"rollMeters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Float","nativeType":null,"default":50,"isGenerated":false,"isUpdatedAt":false},{"name":"isNew","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":false,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"company","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Company","nativeType":null,"relationName":"CompanyToProduct","relationFromFields":["companyId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"catalog","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Catalog","nativeType":null,"relationName":"CatalogToProduct","relationFromFields":["catalogId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"cartItems","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CartItem","nativeType":null,"relationName":"CartItemToProduct","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"orderItems","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"OrderItem","nativeType":null,"relationName":"OrderItemToProduct","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"favorites","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ProductFavorite","nativeType":null,"relationName":"ProductToProductFavorite","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"catalogRequestItems","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CatalogRequestItem","nativeType":null,"relationName":"CatalogRequestItemToProduct","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"stockNotifyRequests","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"StockNotifyRequest","nativeType":null,"relationName":"ProductToStockNotifyRequest","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"productSuggestions","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ProductSuggestion","nativeType":null,"relationName":"ProductToProductSuggestion","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[["companyId","code"]],"uniqueIndexes":[{"name":null,"fields":["companyId","code"]}],"isGenerated":false},"Customer":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"firstName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"lastName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"phone","kind":"scalar","isList":false,"isRequired":true,"isUnique":true,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"nationalId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"customerType","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"CustomerType","nativeType":null,"default":"wholesale","isGenerated":false,"isUpdatedAt":false},{"name":"appRole","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"AppUserRole","nativeType":null,"default":"customer","isGenerated":false,"isUpdatedAt":false,"documentation":"\u0646\u0642\u0634 \u062F\u0631 \u0627\u067E \u06A9\u0627\u0631\u0628\u0631: \u0645\u0634\u062A\u0631\u06CC \u0639\u0627\u062F\u06CC \u06CC\u0627 \u0648\u0627\u0633\u0637\u0647"},{"name":"agentCode","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"businessName","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"levelLabel","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"nextLevelLabel","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"pointsToNext","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"levelProgress","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"assignedAgentId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"avatarLetter","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"avatarColor","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"avatarUrl","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"companyId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"levelDefId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"company","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Company","nativeType":null,"relationName":"CompanyToCustomer","relationFromFields":["companyId"],"relationToFields":["id"],"relationOnDelete":"SetNull","isGenerated":false,"isUpdatedAt":false},{"name":"levelDef","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CustomerLevelDef","nativeType":null,"relationName":"CustomerToCustomerLevelDef","relationFromFields":["levelDefId"],"relationToFields":["id"],"relationOnDelete":"SetNull","isGenerated":false,"isUpdatedAt":false},{"name":"assignedAgent","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"AgentCustomers","relationFromFields":["assignedAgentId"],"relationToFields":["id"],"relationOnDelete":"SetNull","isGenerated":false,"isUpdatedAt":false},{"name":"agentCustomers","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"AgentCustomers","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"carts","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Cart","nativeType":null,"relationName":"CartToCustomer","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"orders","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Order","nativeType":null,"relationName":"CustomerToOrder","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"notifications","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CustomerNotification","nativeType":null,"relationName":"CustomerToCustomerNotification","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"meetings","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"MeetingInteraction","nativeType":null,"relationName":"MeetingCustomer","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"meetingsAsAgent","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"MeetingInteraction","nativeType":null,"relationName":"MeetingAgent","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"reminders","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Reminder","nativeType":null,"relationName":"ReminderOwner","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"remindersAbout","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Reminder","nativeType":null,"relationName":"ReminderCustomer","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"favorites","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ProductFavorite","nativeType":null,"relationName":"CustomerToProductFavorite","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"catalogRequests","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CatalogRequest","nativeType":null,"relationName":"CatalogRequestToCustomer","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"stockNotifyRequests","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"StockNotifyRequest","nativeType":null,"relationName":"CustomerToStockNotifyRequest","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"productSuggestions","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ProductSuggestion","nativeType":null,"relationName":"CustomerToProductSuggestion","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"customerBrands","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CustomerBrand","nativeType":null,"relationName":"CustomerToCustomerBrand","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"AdminUser":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"fullName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"phone","kind":"scalar","isList":false,"isRequired":true,"isUnique":true,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"email","kind":"scalar","isList":false,"isRequired":true,"isUnique":true,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"passwordHash","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"role","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"AdminRole","nativeType":null,"default":"admin","isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"lastLoginAt","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"OtpChallenge":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"phone","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"code","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"firstName","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"lastName","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isRegister","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":false,"isGenerated":false,"isUpdatedAt":false},{"name":"attempts","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"expiresAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Cart":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"userId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"companyId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"notes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"user","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CartToCustomer","relationFromFields":["userId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"items","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CartItem","nativeType":null,"relationName":"CartToCartItem","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CartItem":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"cartId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"catalogCode","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productCode","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"color","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"meterage","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"unitPrice","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"notes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"companyId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"companyName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"cart","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Cart","nativeType":null,"relationName":"CartToCartItem","relationFromFields":["cartId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"product","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Product","nativeType":null,"relationName":"CartItemToProduct","relationFromFields":["productId"],"relationToFields":["id"],"relationOnDelete":"Restrict","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[["cartId","productId"]],"uniqueIndexes":[{"name":null,"fields":["cartId","productId"]}],"isGenerated":false},"Order":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"orderNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":true,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"userId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"companyId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"companyName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"settlementType","kind":"enum","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"SettlementType","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"checkMode","kind":"enum","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CheckRegistrationMode","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"status","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"OrderStatus","nativeType":null,"default":"awaiting_review","isGenerated":false,"isUpdatedAt":false},{"name":"totalMeterage","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Float","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"totalAmount","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"shippingCost","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"totalDiscount","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"finalAmount","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"notes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"checkRassDays","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"checkRassDate","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"cashInvoiceExpiresAt","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"cashReminderSentAt","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false,"documentation":"\u0632\u0645\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u06CC\u0627\u062F\u0622\u0648\u0631\u06CC \u067E\u0627\u06CC\u0627\u0646 \u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u062A\u0627 \u062F\u0648\u0628\u0627\u0631\u0647 \u0627\u0631\u0633\u0627\u0644 \u0646\u0634\u0648\u062F"},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"user","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CustomerToOrder","relationFromFields":["userId"],"relationToFields":["id"],"relationOnDelete":"Restrict","isGenerated":false,"isUpdatedAt":false},{"name":"company","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Company","nativeType":null,"relationName":"CompanyToOrder","relationFromFields":["companyId"],"relationToFields":["id"],"relationOnDelete":"Restrict","isGenerated":false,"isUpdatedAt":false},{"name":"items","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"OrderItem","nativeType":null,"relationName":"OrderToOrderItem","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"checks","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Check","nativeType":null,"relationName":"CheckToOrder","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"cashReceipt","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CashPaymentReceipt","nativeType":null,"relationName":"CashPaymentReceiptToOrder","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"shipment","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Shipment","nativeType":null,"relationName":"OrderToShipment","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"statusHistory","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"OrderStatusHistory","nativeType":null,"relationName":"OrderToOrderStatusHistory","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"notifications","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CustomerNotification","nativeType":null,"relationName":"CustomerNotificationToOrder","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"OrderItem":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"orderId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"catalogCode","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productCode","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"color","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"requestedMeterage","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"confirmedMeterage","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"unitPrice","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"unitDiscount","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Float","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"lineTotal","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"notes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"companyId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"companyName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"order","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Order","nativeType":null,"relationName":"OrderToOrderItem","relationFromFields":["orderId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"product","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Product","nativeType":null,"relationName":"OrderItemToProduct","relationFromFields":["productId"],"relationToFields":["id"],"relationOnDelete":"SetNull","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"OrderStatusHistory":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"orderId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"fromStatus","kind":"enum","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"OrderStatus","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"toStatus","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"OrderStatus","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"changedBy","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"note","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"reason","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"changedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"order","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Order","nativeType":null,"relationName":"OrderToOrderStatusHistory","relationFromFields":["orderId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Check":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"orderId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"row","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"amount","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"dueDate","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"sayadId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"checkNumber","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"ownerNationalId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"ownerFirstName","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"ownerLastName","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"bankName","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"branchName","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"frontImage","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"backImage","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"notes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"mode","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"CheckRegistrationMode","nativeType":null,"default":"full","isGenerated":false,"isUpdatedAt":false},{"name":"status","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"CheckStatus","nativeType":null,"default":"pending_review","isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"order","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Order","nativeType":null,"relationName":"CheckToOrder","relationFromFields":["orderId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CashPaymentReceipt":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"orderId","kind":"scalar","isList":false,"isRequired":true,"isUnique":true,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"amount","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"paidAmount","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"transferDate","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"transferTime","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"trackingNumber","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"destinationAccountId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"receiptImage","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"notes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"expiresAt","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"status","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"CashPaymentStatus","nativeType":null,"default":"pending_review","isGenerated":false,"isUpdatedAt":false},{"name":"submittedAt","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"order","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Order","nativeType":null,"relationName":"CashPaymentReceiptToOrder","relationFromFields":["orderId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"destinationAccount","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"BankAccount","nativeType":null,"relationName":"BankAccountToCashPaymentReceipt","relationFromFields":["destinationAccountId"],"relationToFields":["id"],"relationOnDelete":"SetNull","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Shipment":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"orderId","kind":"scalar","isList":false,"isRequired":true,"isUnique":true,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"carrier","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"trackingNumber","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"meterage","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Float","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"status","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"ShipmentStatus","nativeType":null,"default":"preparing","isGenerated":false,"isUpdatedAt":false},{"name":"shippedAt","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"deliveredAt","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"order","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Order","nativeType":null,"relationName":"OrderToShipment","relationFromFields":["orderId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"SystemSettings":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":"default","isGenerated":false,"isUpdatedAt":false},{"name":"maxMeteragePerInvoice","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":5000,"isGenerated":false,"isUpdatedAt":false},{"name":"cashInvoiceValidityHours","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":8,"isGenerated":false,"isUpdatedAt":false},{"name":"defaultSettlementCheck","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"defaultSettlementCash","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"minOrderRollsPerProduct","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":1,"isGenerated":false,"isUpdatedAt":false,"documentation":"\u062D\u062F\u0627\u0642\u0644 \u0633\u0641\u0627\u0631\u0634: \u062A\u0639\u062F\u0627\u062F \u0637\u0627\u0642\u0647 \u0627\u0632 \u0647\u0631 \u0645\u062D\u0635\u0648\u0644 (\xA7\u06F1\u06F9)"},{"name":"showCatalogPublicPrice","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":false,"isGenerated":false,"isUpdatedAt":false,"documentation":"\u0646\u0645\u0627\u06CC\u0634 \u0642\u06CC\u0645\u062A \u0639\u0645\u0648\u0645\u06CC \u062F\u0631 \u06A9\u0627\u062A\u0627\u0644\u0648\u06AF (\u067E\u06CC\u0634\u200C\u0641\u0631\u0636 \u062E\u0627\u0645\u0648\u0634)"},{"name":"allowAgentPricing","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":false,"isGenerated":false,"isUpdatedAt":false,"documentation":"\u0627\u062C\u0627\u0632\u0647 \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u062A\u0648\u0633\u0637 \u0648\u0627\u0633\u0637\u0647 (\xA7\u06F1\u06F9)"},{"name":"agentMinUnitPrice","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","nativeType":null,"isGenerated":false,"isUpdatedAt":false,"documentation":"\u06A9\u0641 \u0642\u06CC\u0645\u062A \u0648\u0627\u062D\u062F \u0628\u0631\u0627\u06CC \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u0648\u0627\u0633\u0637\u0647 (\u0631\u06CC\u0627\u0644) \u2014 \u0627\u062E\u062A\u06CC\u0627\u0631\u06CC"},{"name":"smsOrderRegistered","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"smsPricingReady","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"smsPaymentReminder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"smsCheckReview","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"smsShippingUpdate","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"supportPhone","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"supportEmail","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"categoryImagesJson","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Json","nativeType":null,"isGenerated":false,"isUpdatedAt":false,"documentation":"\u062A\u0635\u0627\u0648\u06CC\u0631 \u062F\u0633\u062A\u0647\u200C\u0647\u0627\u06CC \u06A9\u0627\u0631\u0628\u0631\u062F/\u0641\u0635\u0644 \u0627\u067E \u06A9\u0627\u0631\u0628\u0631: { trousers: dataUrl, summer: dataUrl, ... }"},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"AppBanner":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"slot","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"subtitle","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"ctaLabel","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"ctaLink","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"imageUrl","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"displayOrder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false,"documentation":"\u0628\u0646\u0631\u0647\u0627\u06CC \u0642\u0627\u0628\u0644 \u0645\u062F\u06CC\u0631\u06CC\u062A \u0628\u062E\u0634\u200C\u0647\u0627\u06CC \u0627\u067E \u06A9\u0627\u0631\u0628\u0631"},"AdminNotification":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"body","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"tone","kind":"enum","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"NotificationTone","nativeType":null,"default":"info","isGenerated":false,"isUpdatedAt":false},{"name":"link","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isRead","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":false,"isGenerated":false,"isUpdatedAt":false},{"name":"sentAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CustomerNotification":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"customerId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"orderId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"event","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"body","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"tone","kind":"enum","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"NotificationTone","nativeType":null,"default":"info","isGenerated":false,"isUpdatedAt":false},{"name":"link","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isRead","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":false,"isGenerated":false,"isUpdatedAt":false},{"name":"smsSent","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":false,"isGenerated":false,"isUpdatedAt":false},{"name":"sentAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"customer","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CustomerToCustomerNotification","relationFromFields":["customerId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"order","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Order","nativeType":null,"relationName":"CustomerNotificationToOrder","relationFromFields":["orderId"],"relationToFields":["id"],"relationOnDelete":"SetNull","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"InternalMessage":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"senderName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"subject","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"preview","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isRead","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":false,"isGenerated":false,"isUpdatedAt":false},{"name":"sentAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"MeetingInteraction":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"customerId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"agentId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"type","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"InteractionType","nativeType":null,"default":"in_person","isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"description","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"subject","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"content","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"date","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"time","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"customer","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"MeetingCustomer","relationFromFields":["customerId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"agent","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"MeetingAgent","relationFromFields":["agentId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Reminder":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"ownerId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"customerId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"description","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"note","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"date","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"time","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"interactionType","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"InteractionType","nativeType":null,"default":"note","isGenerated":false,"isUpdatedAt":false},{"name":"completed","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":false,"isGenerated":false,"isUpdatedAt":false},{"name":"completedAt","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"owner","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"ReminderOwner","relationFromFields":["ownerId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"customer","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"ReminderCustomer","relationFromFields":["customerId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"ProductFavorite":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"customerId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"customer","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CustomerToProductFavorite","relationFromFields":["customerId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"product","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Product","nativeType":null,"relationName":"ProductToProductFavorite","relationFromFields":["productId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[["customerId","productId"]],"uniqueIndexes":[{"name":null,"fields":["customerId","productId"]}],"isGenerated":false},"Brand":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"slug","kind":"scalar","isList":false,"isRequired":false,"isUnique":true,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"description","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"displayOrder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"customers","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CustomerBrand","nativeType":null,"relationName":"BrandToCustomerBrand","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CustomerBrand":{"dbName":null,"schema":null,"fields":[{"name":"customerId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"brandId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"customer","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CustomerToCustomerBrand","relationFromFields":["customerId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"brand","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Brand","nativeType":null,"relationName":"BrandToCustomerBrand","relationFromFields":["brandId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["customerId","brandId"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CustomerLevelDef":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"code","kind":"scalar","isList":false,"isRequired":true,"isUnique":true,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"label","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"sortOrder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":0,"isGenerated":false,"isUpdatedAt":false},{"name":"criteriaJson","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Json","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"benefits","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"LevelBenefit","nativeType":null,"relationName":"CustomerLevelDefToLevelBenefit","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"customers","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CustomerToCustomerLevelDef","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"LevelBenefit":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"levelId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"description","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"level","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CustomerLevelDef","nativeType":null,"relationName":"CustomerLevelDefToLevelBenefit","relationFromFields":["levelId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CatalogRequest":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"customerId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"status","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"CatalogRequestStatus","nativeType":null,"default":"new","isGenerated":false,"isUpdatedAt":false},{"name":"note","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"updatedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":true},{"name":"customer","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CatalogRequestToCustomer","relationFromFields":["customerId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"items","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CatalogRequestItem","nativeType":null,"relationName":"CatalogRequestToCatalogRequestItem","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CatalogRequestItem":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"requestId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"quantity","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","nativeType":null,"default":1,"isGenerated":false,"isUpdatedAt":false},{"name":"holderType","kind":"enum","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"CatalogItemHolderType","nativeType":null,"default":"warehouse","isGenerated":false,"isUpdatedAt":false},{"name":"holderCustomerId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"request","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CatalogRequest","nativeType":null,"relationName":"CatalogRequestToCatalogRequestItem","relationFromFields":["requestId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"product","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Product","nativeType":null,"relationName":"CatalogRequestItemToProduct","relationFromFields":["productId"],"relationToFields":["id"],"relationOnDelete":"Restrict","isGenerated":false,"isUpdatedAt":false},{"name":"movements","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CatalogItemMovement","nativeType":null,"relationName":"CatalogItemMovementToCatalogRequestItem","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CatalogItemMovement":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"itemId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"fromHolder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"toHolder","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"note","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"movedAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"item","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CatalogRequestItem","nativeType":null,"relationName":"CatalogItemMovementToCatalogRequestItem","relationFromFields":["itemId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"StockNotifyRequest":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"customerId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"active","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"notifiedAt","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"customer","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CustomerToStockNotifyRequest","relationFromFields":["customerId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"product","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Product","nativeType":null,"relationName":"ProductToStockNotifyRequest","relationFromFields":["productId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[["customerId","productId"]],"uniqueIndexes":[{"name":null,"fields":["customerId","productId"]}],"isGenerated":false},"ProductSuggestion":{"dbName":null,"schema":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"String","nativeType":null,"default":{"name":"cuid","args":[1]},"isGenerated":false,"isUpdatedAt":false},{"name":"customerId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"productId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"note","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"createdByAdminId","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","nativeType":null,"isGenerated":false,"isUpdatedAt":false},{"name":"isActive","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"Boolean","nativeType":null,"default":true,"isGenerated":false,"isUpdatedAt":false},{"name":"createdAt","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":true,"type":"DateTime","nativeType":null,"default":{"name":"now","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"customer","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Customer","nativeType":null,"relationName":"CustomerToProductSuggestion","relationFromFields":["customerId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false},{"name":"product","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Product","nativeType":null,"relationName":"ProductToProductSuggestion","relationFromFields":["productId"],"relationToFields":["id"],"relationOnDelete":"Cascade","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false}},"enums":{"SettlementType":{"values":[{"name":"cash","dbName":null},{"name":"check","dbName":null}],"dbName":null},"CheckRegistrationMode":{"values":[{"name":"full","dbName":null},{"name":"brief","dbName":null}],"dbName":null},"OrderStatus":{"values":[{"name":"cart","dbName":null},{"name":"awaiting_settlement","dbName":null},{"name":"cash_in_progress","dbName":null},{"name":"check_in_progress","dbName":null},{"name":"submitted","dbName":null},{"name":"awaiting_review","dbName":null},{"name":"pricing","dbName":null},{"name":"needs_correction","dbName":null},{"name":"awaiting_settlement_fix","dbName":null},{"name":"cash_invoice_issued","dbName":null},{"name":"awaiting_cash_payment","dbName":null},{"name":"cash_payment_submitted","dbName":null},{"name":"awaiting_cash_confirmation","dbName":null},{"name":"cash_confirmed","dbName":null},{"name":"awaiting_check_review","dbName":null},{"name":"check_needs_fix","dbName":null},{"name":"check_rejected","dbName":null},{"name":"checks_approved","dbName":null},{"name":"final_approved","dbName":null},{"name":"preparing","dbName":null},{"name":"ready_to_ship","dbName":null},{"name":"shipped","dbName":null},{"name":"delivered","dbName":null},{"name":"cancelled","dbName":null},{"name":"rejected","dbName":null},{"name":"expired","dbName":null}],"dbName":null},"CheckStatus":{"values":[{"name":"pending_review","dbName":null},{"name":"approved","dbName":null},{"name":"rejected","dbName":null}],"dbName":null},"CashPaymentStatus":{"values":[{"name":"pending_review","dbName":null},{"name":"approved","dbName":null},{"name":"rejected","dbName":null},{"name":"expired","dbName":null}],"dbName":null},"ShipmentStatus":{"values":[{"name":"preparing","dbName":null},{"name":"ready","dbName":null},{"name":"shipped","dbName":null},{"name":"delivered","dbName":null}],"dbName":null},"CustomerType":{"values":[{"name":"wholesale","dbName":null},{"name":"retail","dbName":null}],"dbName":null},"AppUserRole":{"values":[{"name":"customer","dbName":null},{"name":"agent","dbName":null}],"dbName":null},"InteractionType":{"values":[{"name":"in_person","dbName":null},{"name":"call","dbName":null},{"name":"message","dbName":null},{"name":"note","dbName":null}],"dbName":null},"ProductSeason":{"values":[{"name":"summer","dbName":null},{"name":"winter","dbName":null},{"name":"all_season","dbName":null}],"dbName":null},"ProductUsageCategory":{"values":[{"name":"trousers","dbName":null},{"name":"suit","dbName":null},{"name":"shirt","dbName":null},{"name":"other","dbName":null}],"dbName":null},"AdminRole":{"values":[{"name":"admin","dbName":null},{"name":"sales","dbName":null},{"name":"finance","dbName":null},{"name":"warehouse","dbName":null}],"dbName":null},"NotificationTone":{"values":[{"name":"info","dbName":null},{"name":"warning","dbName":null},{"name":"success","dbName":null},{"name":"danger","dbName":null}],"dbName":null},"CatalogRequestStatus":{"values":[{"name":"new","dbName":null},{"name":"approved","dbName":null},{"name":"ready_to_ship","dbName":null},{"name":"delivered","dbName":null},{"name":"returned","dbName":null},{"name":"cancelled","dbName":null}],"dbName":null,"documentation":"\u06AF\u0631\u062F\u0634 \u06A9\u0627\u0644\u06CC\u062A\u0647 \u0641\u06CC\u0632\u06CC\u06A9\u06CC (\xA7\u06F7 \u0633\u0646\u062F)"},"CatalogItemHolderType":{"values":[{"name":"warehouse","dbName":null},{"name":"customer","dbName":null},{"name":"agent","dbName":null}],"dbName":null}},"types":{}}'); + defineDmmfProperty2(exports2.Prisma, config.runtimeDataModel); + config.engineWasm = void 0; + config.compilerWasm = void 0; + var { warnEnvConflicts: warnEnvConflicts2 } = require_library(); + warnEnvConflicts2({ + rootEnvPath: config.relativeEnvPaths.rootEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.rootEnvPath), + schemaEnvPath: config.relativeEnvPaths.schemaEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.schemaEnvPath) + }); + var PrismaClient = getPrismaClient2(config); + exports2.PrismaClient = PrismaClient; + Object.assign(exports2, Prisma); + path.join(__dirname, "query_engine-windows.dll.node"); + path.join(process.cwd(), "node_modules/.prisma/client/query_engine-windows.dll.node"); + path.join(__dirname, "libquery_engine-debian-openssl-3.0.x.so.node"); + path.join(process.cwd(), "node_modules/.prisma/client/libquery_engine-debian-openssl-3.0.x.so.node"); + path.join(__dirname, "schema.prisma"); + path.join(process.cwd(), "node_modules/.prisma/client/schema.prisma"); + } +}); + +// node_modules/.prisma/client/default.js +var require_default = __commonJS({ + "node_modules/.prisma/client/default.js"(exports2, module2) { + module2.exports = { ...require_client() }; + } +}); + +// node_modules/@prisma/client/default.js +var require_default2 = __commonJS({ + "node_modules/@prisma/client/default.js"(exports2, module2) { + module2.exports = { + ...require_default() + }; + } +}); + +// dist/prisma/prisma.service.js +var require_prisma_service = __commonJS({ + "dist/prisma/prisma.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PrismaService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var PrismaService = class PrismaService extends client_1.PrismaClient { + static { + __name(this, "PrismaService"); + } + async onModuleInit() { + await this.$connect(); + } + async onModuleDestroy() { + await this.$disconnect(); + } + }; + exports2.PrismaService = PrismaService; + exports2.PrismaService = PrismaService = __decorate2([ + (0, common_12.Injectable)() + ], PrismaService); + } +}); + +// dist/prisma/prisma.module.js +var require_prisma_module = __commonJS({ + "dist/prisma/prisma.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PrismaModule = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var PrismaModule = class PrismaModule { + static { + __name(this, "PrismaModule"); + } + }; + exports2.PrismaModule = PrismaModule; + exports2.PrismaModule = PrismaModule = __decorate2([ + (0, common_12.Global)(), + (0, common_12.Module)({ + providers: [prisma_service_1.PrismaService], + exports: [prisma_service_1.PrismaService] + }) + ], PrismaModule); + } +}); + +// node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.js +var require_jwt_module_options_interface = __commonJS({ + "node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.JwtSecretRequestType = void 0; + var JwtSecretRequestType; + (function(JwtSecretRequestType2) { + JwtSecretRequestType2[JwtSecretRequestType2["SIGN"] = 0] = "SIGN"; + JwtSecretRequestType2[JwtSecretRequestType2["VERIFY"] = 1] = "VERIFY"; + })(JwtSecretRequestType || (exports2.JwtSecretRequestType = JwtSecretRequestType = {})); + } +}); + +// node_modules/@nestjs/jwt/dist/interfaces/index.js +var require_interfaces9 = __commonJS({ + "node_modules/@nestjs/jwt/dist/interfaces/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + __exportStar2(require_jwt_module_options_interface(), exports2); + } +}); + +// node_modules/@nestjs/jwt/dist/jwt.errors.js +var require_jwt_errors = __commonJS({ + "node_modules/@nestjs/jwt/dist/jwt.errors.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.WrongSecretProviderError = void 0; + var WrongSecretProviderError = class extends Error { + static { + __name(this, "WrongSecretProviderError"); + } + }; + exports2.WrongSecretProviderError = WrongSecretProviderError; + } +}); + +// node_modules/@nestjs/jwt/dist/jwt.constants.js +var require_jwt_constants = __commonJS({ + "node_modules/@nestjs/jwt/dist/jwt.constants.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.JWT_MODULE_OPTIONS = void 0; + exports2.JWT_MODULE_OPTIONS = "JWT_MODULE_OPTIONS"; + } +}); + +// node_modules/@nestjs/jwt/dist/jwt.providers.js +var require_jwt_providers = __commonJS({ + "node_modules/@nestjs/jwt/dist/jwt.providers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createJwtProvider = createJwtProvider; + var jwt_constants_1 = require_jwt_constants(); + function createJwtProvider(options) { + return [{ provide: jwt_constants_1.JWT_MODULE_OPTIONS, useValue: options || {} }]; + } + __name(createJwtProvider, "createJwtProvider"); + } +}); + +// node_modules/jws/lib/data-stream.js +var require_data_stream = __commonJS({ + "node_modules/jws/lib/data-stream.js"(exports2, module2) { + var Buffer2 = require_safe_buffer().Buffer; + var Stream = require("stream"); + var util2 = require("util"); + function DataStream(data) { + this.buffer = null; + this.writable = true; + this.readable = true; + if (!data) { + this.buffer = Buffer2.alloc(0); + return this; + } + if (typeof data.pipe === "function") { + this.buffer = Buffer2.alloc(0); + data.pipe(this); + return this; + } + if (data.length || typeof data === "object") { + this.buffer = data; + this.writable = false; + process.nextTick(function() { + this.emit("end", data); + this.readable = false; + this.emit("close"); + }.bind(this)); + return this; + } + throw new TypeError("Unexpected data type (" + typeof data + ")"); + } + __name(DataStream, "DataStream"); + util2.inherits(DataStream, Stream); + DataStream.prototype.write = /* @__PURE__ */ __name(function write(data) { + this.buffer = Buffer2.concat([this.buffer, Buffer2.from(data)]); + this.emit("data", data); + }, "write"); + DataStream.prototype.end = /* @__PURE__ */ __name(function end(data) { + if (data) + this.write(data); + this.emit("end", data); + this.emit("close"); + this.writable = false; + this.readable = false; + }, "end"); + module2.exports = DataStream; + } +}); + +// node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js +var require_param_bytes_for_alg = __commonJS({ + "node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js"(exports2, module2) { + "use strict"; + function getParamSize(keySize) { + var result = (keySize / 8 | 0) + (keySize % 8 === 0 ? 0 : 1); + return result; + } + __name(getParamSize, "getParamSize"); + var paramBytesForAlg = { + ES256: getParamSize(256), + ES384: getParamSize(384), + ES512: getParamSize(521) + }; + function getParamBytesForAlg(alg) { + var paramBytes = paramBytesForAlg[alg]; + if (paramBytes) { + return paramBytes; + } + throw new Error('Unknown algorithm "' + alg + '"'); + } + __name(getParamBytesForAlg, "getParamBytesForAlg"); + module2.exports = getParamBytesForAlg; + } +}); + +// node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js +var require_ecdsa_sig_formatter = __commonJS({ + "node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js"(exports2, module2) { + "use strict"; + var Buffer2 = require_safe_buffer().Buffer; + var getParamBytesForAlg = require_param_bytes_for_alg(); + var MAX_OCTET = 128; + var CLASS_UNIVERSAL = 0; + var PRIMITIVE_BIT = 32; + var TAG_SEQ = 16; + var TAG_INT = 2; + var ENCODED_TAG_SEQ = TAG_SEQ | PRIMITIVE_BIT | CLASS_UNIVERSAL << 6; + var ENCODED_TAG_INT = TAG_INT | CLASS_UNIVERSAL << 6; + function base64Url(base64) { + return base64.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); + } + __name(base64Url, "base64Url"); + function signatureAsBuffer(signature) { + if (Buffer2.isBuffer(signature)) { + return signature; + } else if ("string" === typeof signature) { + return Buffer2.from(signature, "base64"); + } + throw new TypeError("ECDSA signature must be a Base64 string or a Buffer"); + } + __name(signatureAsBuffer, "signatureAsBuffer"); + function derToJose(signature, alg) { + signature = signatureAsBuffer(signature); + var paramBytes = getParamBytesForAlg(alg); + var maxEncodedParamLength = paramBytes + 1; + var inputLength = signature.length; + var offset = 0; + if (signature[offset++] !== ENCODED_TAG_SEQ) { + throw new Error('Could not find expected "seq"'); + } + var seqLength = signature[offset++]; + if (seqLength === (MAX_OCTET | 1)) { + seqLength = signature[offset++]; + } + if (inputLength - offset < seqLength) { + throw new Error('"seq" specified length of "' + seqLength + '", only "' + (inputLength - offset) + '" remaining'); + } + if (signature[offset++] !== ENCODED_TAG_INT) { + throw new Error('Could not find expected "int" for "r"'); + } + var rLength = signature[offset++]; + if (inputLength - offset - 2 < rLength) { + throw new Error('"r" specified length of "' + rLength + '", only "' + (inputLength - offset - 2) + '" available'); + } + if (maxEncodedParamLength < rLength) { + throw new Error('"r" specified length of "' + rLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); + } + var rOffset = offset; + offset += rLength; + if (signature[offset++] !== ENCODED_TAG_INT) { + throw new Error('Could not find expected "int" for "s"'); + } + var sLength = signature[offset++]; + if (inputLength - offset !== sLength) { + throw new Error('"s" specified length of "' + sLength + '", expected "' + (inputLength - offset) + '"'); + } + if (maxEncodedParamLength < sLength) { + throw new Error('"s" specified length of "' + sLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); + } + var sOffset = offset; + offset += sLength; + if (offset !== inputLength) { + throw new Error('Expected to consume entire buffer, but "' + (inputLength - offset) + '" bytes remain'); + } + var rPadding = paramBytes - rLength, sPadding = paramBytes - sLength; + var dst = Buffer2.allocUnsafe(rPadding + rLength + sPadding + sLength); + for (offset = 0; offset < rPadding; ++offset) { + dst[offset] = 0; + } + signature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength); + offset = paramBytes; + for (var o = offset; offset < o + sPadding; ++offset) { + dst[offset] = 0; + } + signature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength); + dst = dst.toString("base64"); + dst = base64Url(dst); + return dst; + } + __name(derToJose, "derToJose"); + function countPadding(buf, start, stop) { + var padding = 0; + while (start + padding < stop && buf[start + padding] === 0) { + ++padding; + } + var needsSign = buf[start + padding] >= MAX_OCTET; + if (needsSign) { + --padding; + } + return padding; + } + __name(countPadding, "countPadding"); + function joseToDer(signature, alg) { + signature = signatureAsBuffer(signature); + var paramBytes = getParamBytesForAlg(alg); + var signatureBytes = signature.length; + if (signatureBytes !== paramBytes * 2) { + throw new TypeError('"' + alg + '" signatures must be "' + paramBytes * 2 + '" bytes, saw "' + signatureBytes + '"'); + } + var rPadding = countPadding(signature, 0, paramBytes); + var sPadding = countPadding(signature, paramBytes, signature.length); + var rLength = paramBytes - rPadding; + var sLength = paramBytes - sPadding; + var rsBytes = 1 + 1 + rLength + 1 + 1 + sLength; + var shortLength = rsBytes < MAX_OCTET; + var dst = Buffer2.allocUnsafe((shortLength ? 2 : 3) + rsBytes); + var offset = 0; + dst[offset++] = ENCODED_TAG_SEQ; + if (shortLength) { + dst[offset++] = rsBytes; + } else { + dst[offset++] = MAX_OCTET | 1; + dst[offset++] = rsBytes & 255; + } + dst[offset++] = ENCODED_TAG_INT; + dst[offset++] = rLength; + if (rPadding < 0) { + dst[offset++] = 0; + offset += signature.copy(dst, offset, 0, paramBytes); + } else { + offset += signature.copy(dst, offset, rPadding, paramBytes); + } + dst[offset++] = ENCODED_TAG_INT; + dst[offset++] = sLength; + if (sPadding < 0) { + dst[offset++] = 0; + signature.copy(dst, offset, paramBytes); + } else { + signature.copy(dst, offset, paramBytes + sPadding); + } + return dst; + } + __name(joseToDer, "joseToDer"); + module2.exports = { + derToJose, + joseToDer + }; + } +}); + +// node_modules/buffer-equal-constant-time/index.js +var require_buffer_equal_constant_time = __commonJS({ + "node_modules/buffer-equal-constant-time/index.js"(exports2, module2) { + "use strict"; + var Buffer2 = require("buffer").Buffer; + var SlowBuffer = require("buffer").SlowBuffer; + module2.exports = bufferEq; + function bufferEq(a, b) { + if (!Buffer2.isBuffer(a) || !Buffer2.isBuffer(b)) { + return false; + } + if (a.length !== b.length) { + return false; + } + var c = 0; + for (var i = 0; i < a.length; i++) { + c |= a[i] ^ b[i]; + } + return c === 0; + } + __name(bufferEq, "bufferEq"); + bufferEq.install = function() { + Buffer2.prototype.equal = SlowBuffer.prototype.equal = /* @__PURE__ */ __name(function equal(that) { + return bufferEq(this, that); + }, "equal"); + }; + var origBufEqual = Buffer2.prototype.equal; + var origSlowBufEqual = SlowBuffer.prototype.equal; + bufferEq.restore = function() { + Buffer2.prototype.equal = origBufEqual; + SlowBuffer.prototype.equal = origSlowBufEqual; + }; + } +}); + +// node_modules/jwa/index.js +var require_jwa = __commonJS({ + "node_modules/jwa/index.js"(exports2, module2) { + var Buffer2 = require_safe_buffer().Buffer; + var crypto2 = require("crypto"); + var formatEcdsa = require_ecdsa_sig_formatter(); + var util2 = require("util"); + var MSG_INVALID_ALGORITHM = '"%s" is not a valid algorithm.\n Supported algorithms are:\n "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".'; + var MSG_INVALID_SECRET = "secret must be a string or buffer"; + var MSG_INVALID_VERIFIER_KEY = "key must be a string or a buffer"; + var MSG_INVALID_SIGNER_KEY = "key must be a string, a buffer or an object"; + var supportsKeyObjects = typeof crypto2.createPublicKey === "function"; + if (supportsKeyObjects) { + MSG_INVALID_VERIFIER_KEY += " or a KeyObject"; + MSG_INVALID_SECRET += "or a KeyObject"; + } + function checkIsPublicKey(key) { + if (Buffer2.isBuffer(key)) { + return; + } + if (typeof key === "string") { + return; + } + if (!supportsKeyObjects) { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + if (typeof key !== "object") { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + if (typeof key.type !== "string") { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + if (typeof key.asymmetricKeyType !== "string") { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + if (typeof key.export !== "function") { + throw typeError(MSG_INVALID_VERIFIER_KEY); + } + } + __name(checkIsPublicKey, "checkIsPublicKey"); + function checkIsPrivateKey(key) { + if (Buffer2.isBuffer(key)) { + return; + } + if (typeof key === "string") { + return; + } + if (typeof key === "object") { + return; + } + throw typeError(MSG_INVALID_SIGNER_KEY); + } + __name(checkIsPrivateKey, "checkIsPrivateKey"); + function checkIsSecretKey(key) { + if (Buffer2.isBuffer(key)) { + return; + } + if (typeof key === "string") { + return key; + } + if (!supportsKeyObjects) { + throw typeError(MSG_INVALID_SECRET); + } + if (typeof key !== "object") { + throw typeError(MSG_INVALID_SECRET); + } + if (key.type !== "secret") { + throw typeError(MSG_INVALID_SECRET); + } + if (typeof key.export !== "function") { + throw typeError(MSG_INVALID_SECRET); + } + } + __name(checkIsSecretKey, "checkIsSecretKey"); + function fromBase64(base64) { + return base64.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); + } + __name(fromBase64, "fromBase64"); + function toBase64(base64url) { + base64url = base64url.toString(); + var padding = 4 - base64url.length % 4; + if (padding !== 4) { + for (var i = 0; i < padding; ++i) { + base64url += "="; + } + } + return base64url.replace(/\-/g, "+").replace(/_/g, "/"); + } + __name(toBase64, "toBase64"); + function typeError(template) { + var args = [].slice.call(arguments, 1); + var errMsg = util2.format.bind(util2, template).apply(null, args); + return new TypeError(errMsg); + } + __name(typeError, "typeError"); + function bufferOrString(obj) { + return Buffer2.isBuffer(obj) || typeof obj === "string"; + } + __name(bufferOrString, "bufferOrString"); + function normalizeInput(thing) { + if (!bufferOrString(thing)) + thing = JSON.stringify(thing); + return thing; + } + __name(normalizeInput, "normalizeInput"); + function createHmacSigner(bits) { + return /* @__PURE__ */ __name(function sign(thing, secret) { + checkIsSecretKey(secret); + thing = normalizeInput(thing); + var hmac = crypto2.createHmac("sha" + bits, secret); + var sig = (hmac.update(thing), hmac.digest("base64")); + return fromBase64(sig); + }, "sign"); + } + __name(createHmacSigner, "createHmacSigner"); + var bufferEqual; + var timingSafeEqual = "timingSafeEqual" in crypto2 ? /* @__PURE__ */ __name(function timingSafeEqual2(a, b) { + if (a.byteLength !== b.byteLength) { + return false; + } + return crypto2.timingSafeEqual(a, b); + }, "timingSafeEqual") : /* @__PURE__ */ __name(function timingSafeEqual2(a, b) { + if (!bufferEqual) { + bufferEqual = require_buffer_equal_constant_time(); + } + return bufferEqual(a, b); + }, "timingSafeEqual"); + function createHmacVerifier(bits) { + return /* @__PURE__ */ __name(function verify(thing, signature, secret) { + var computedSig = createHmacSigner(bits)(thing, secret); + return timingSafeEqual(Buffer2.from(signature), Buffer2.from(computedSig)); + }, "verify"); + } + __name(createHmacVerifier, "createHmacVerifier"); + function createKeySigner(bits) { + return /* @__PURE__ */ __name(function sign(thing, privateKey) { + checkIsPrivateKey(privateKey); + thing = normalizeInput(thing); + var signer = crypto2.createSign("RSA-SHA" + bits); + var sig = (signer.update(thing), signer.sign(privateKey, "base64")); + return fromBase64(sig); + }, "sign"); + } + __name(createKeySigner, "createKeySigner"); + function createKeyVerifier(bits) { + return /* @__PURE__ */ __name(function verify(thing, signature, publicKey) { + checkIsPublicKey(publicKey); + thing = normalizeInput(thing); + signature = toBase64(signature); + var verifier = crypto2.createVerify("RSA-SHA" + bits); + verifier.update(thing); + return verifier.verify(publicKey, signature, "base64"); + }, "verify"); + } + __name(createKeyVerifier, "createKeyVerifier"); + function createPSSKeySigner(bits) { + return /* @__PURE__ */ __name(function sign(thing, privateKey) { + checkIsPrivateKey(privateKey); + thing = normalizeInput(thing); + var signer = crypto2.createSign("RSA-SHA" + bits); + var sig = (signer.update(thing), signer.sign({ + key: privateKey, + padding: crypto2.constants.RSA_PKCS1_PSS_PADDING, + saltLength: crypto2.constants.RSA_PSS_SALTLEN_DIGEST + }, "base64")); + return fromBase64(sig); + }, "sign"); + } + __name(createPSSKeySigner, "createPSSKeySigner"); + function createPSSKeyVerifier(bits) { + return /* @__PURE__ */ __name(function verify(thing, signature, publicKey) { + checkIsPublicKey(publicKey); + thing = normalizeInput(thing); + signature = toBase64(signature); + var verifier = crypto2.createVerify("RSA-SHA" + bits); + verifier.update(thing); + return verifier.verify({ + key: publicKey, + padding: crypto2.constants.RSA_PKCS1_PSS_PADDING, + saltLength: crypto2.constants.RSA_PSS_SALTLEN_DIGEST + }, signature, "base64"); + }, "verify"); + } + __name(createPSSKeyVerifier, "createPSSKeyVerifier"); + function createECDSASigner(bits) { + var inner = createKeySigner(bits); + return /* @__PURE__ */ __name(function sign() { + var signature = inner.apply(null, arguments); + signature = formatEcdsa.derToJose(signature, "ES" + bits); + return signature; + }, "sign"); + } + __name(createECDSASigner, "createECDSASigner"); + function createECDSAVerifer(bits) { + var inner = createKeyVerifier(bits); + return /* @__PURE__ */ __name(function verify(thing, signature, publicKey) { + signature = formatEcdsa.joseToDer(signature, "ES" + bits).toString("base64"); + var result = inner(thing, signature, publicKey); + return result; + }, "verify"); + } + __name(createECDSAVerifer, "createECDSAVerifer"); + function createNoneSigner() { + return /* @__PURE__ */ __name(function sign() { + return ""; + }, "sign"); + } + __name(createNoneSigner, "createNoneSigner"); + function createNoneVerifier() { + return /* @__PURE__ */ __name(function verify(thing, signature) { + return signature === ""; + }, "verify"); + } + __name(createNoneVerifier, "createNoneVerifier"); + module2.exports = /* @__PURE__ */ __name(function jwa(algorithm) { + var signerFactories = { + hs: createHmacSigner, + rs: createKeySigner, + ps: createPSSKeySigner, + es: createECDSASigner, + none: createNoneSigner + }; + var verifierFactories = { + hs: createHmacVerifier, + rs: createKeyVerifier, + ps: createPSSKeyVerifier, + es: createECDSAVerifer, + none: createNoneVerifier + }; + var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/); + if (!match) + throw typeError(MSG_INVALID_ALGORITHM, algorithm); + var algo = (match[1] || match[3]).toLowerCase(); + var bits = match[2]; + return { + sign: signerFactories[algo](bits), + verify: verifierFactories[algo](bits) + }; + }, "jwa"); + } +}); + +// node_modules/jws/lib/tostring.js +var require_tostring = __commonJS({ + "node_modules/jws/lib/tostring.js"(exports2, module2) { + var Buffer2 = require("buffer").Buffer; + module2.exports = /* @__PURE__ */ __name(function toString2(obj) { + if (typeof obj === "string") + return obj; + if (typeof obj === "number" || Buffer2.isBuffer(obj)) + return obj.toString(); + return JSON.stringify(obj); + }, "toString"); + } +}); + +// node_modules/jws/lib/sign-stream.js +var require_sign_stream = __commonJS({ + "node_modules/jws/lib/sign-stream.js"(exports2, module2) { + var Buffer2 = require_safe_buffer().Buffer; + var DataStream = require_data_stream(); + var jwa = require_jwa(); + var Stream = require("stream"); + var toString2 = require_tostring(); + var util2 = require("util"); + function base64url(string, encoding) { + return Buffer2.from(string, encoding).toString("base64").replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); + } + __name(base64url, "base64url"); + function jwsSecuredInput(header, payload, encoding) { + encoding = encoding || "utf8"; + var encodedHeader = base64url(toString2(header), "binary"); + var encodedPayload = base64url(toString2(payload), encoding); + return util2.format("%s.%s", encodedHeader, encodedPayload); + } + __name(jwsSecuredInput, "jwsSecuredInput"); + function jwsSign(opts) { + var header = opts.header; + var payload = opts.payload; + var secretOrKey = opts.secret || opts.privateKey; + var encoding = opts.encoding; + var algo = jwa(header.alg); + var securedInput = jwsSecuredInput(header, payload, encoding); + var signature = algo.sign(securedInput, secretOrKey); + return util2.format("%s.%s", securedInput, signature); + } + __name(jwsSign, "jwsSign"); + function SignStream(opts) { + var secret = opts.secret; + secret = secret == null ? opts.privateKey : secret; + secret = secret == null ? opts.key : secret; + if (/^hs/i.test(opts.header.alg) === true && secret == null) { + throw new TypeError("secret must be a string or buffer or a KeyObject"); + } + var secretStream = new DataStream(secret); + this.readable = true; + this.header = opts.header; + this.encoding = opts.encoding; + this.secret = this.privateKey = this.key = secretStream; + this.payload = new DataStream(opts.payload); + this.secret.once("close", function() { + if (!this.payload.writable && this.readable) + this.sign(); + }.bind(this)); + this.payload.once("close", function() { + if (!this.secret.writable && this.readable) + this.sign(); + }.bind(this)); + } + __name(SignStream, "SignStream"); + util2.inherits(SignStream, Stream); + SignStream.prototype.sign = /* @__PURE__ */ __name(function sign() { + try { + var signature = jwsSign({ + header: this.header, + payload: this.payload.buffer, + secret: this.secret.buffer, + encoding: this.encoding + }); + this.emit("done", signature); + this.emit("data", signature); + this.emit("end"); + this.readable = false; + return signature; + } catch (e) { + this.readable = false; + this.emit("error", e); + this.emit("close"); + } + }, "sign"); + SignStream.sign = jwsSign; + module2.exports = SignStream; + } +}); + +// node_modules/jws/lib/verify-stream.js +var require_verify_stream = __commonJS({ + "node_modules/jws/lib/verify-stream.js"(exports2, module2) { + var Buffer2 = require_safe_buffer().Buffer; + var DataStream = require_data_stream(); + var jwa = require_jwa(); + var Stream = require("stream"); + var toString2 = require_tostring(); + var util2 = require("util"); + var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/; + function isObject(thing) { + return Object.prototype.toString.call(thing) === "[object Object]"; + } + __name(isObject, "isObject"); + function safeJsonParse(thing) { + if (isObject(thing)) + return thing; + try { + return JSON.parse(thing); + } catch (e) { + return void 0; + } + } + __name(safeJsonParse, "safeJsonParse"); + function headerFromJWS(jwsSig) { + var encodedHeader = jwsSig.split(".", 1)[0]; + return safeJsonParse(Buffer2.from(encodedHeader, "base64").toString("binary")); + } + __name(headerFromJWS, "headerFromJWS"); + function securedInputFromJWS(jwsSig) { + return jwsSig.split(".", 2).join("."); + } + __name(securedInputFromJWS, "securedInputFromJWS"); + function signatureFromJWS(jwsSig) { + return jwsSig.split(".")[2]; + } + __name(signatureFromJWS, "signatureFromJWS"); + function payloadFromJWS(jwsSig, encoding) { + encoding = encoding || "utf8"; + var payload = jwsSig.split(".")[1]; + return Buffer2.from(payload, "base64").toString(encoding); + } + __name(payloadFromJWS, "payloadFromJWS"); + function isValidJws(string) { + return JWS_REGEX.test(string) && !!headerFromJWS(string); + } + __name(isValidJws, "isValidJws"); + function jwsVerify(jwsSig, algorithm, secretOrKey) { + if (!algorithm) { + var err = new Error("Missing algorithm parameter for jws.verify"); + err.code = "MISSING_ALGORITHM"; + throw err; + } + jwsSig = toString2(jwsSig); + var signature = signatureFromJWS(jwsSig); + var securedInput = securedInputFromJWS(jwsSig); + var algo = jwa(algorithm); + return algo.verify(securedInput, signature, secretOrKey); + } + __name(jwsVerify, "jwsVerify"); + function jwsDecode(jwsSig, opts) { + opts = opts || {}; + jwsSig = toString2(jwsSig); + if (!isValidJws(jwsSig)) + return null; + var header = headerFromJWS(jwsSig); + if (!header) + return null; + var payload = payloadFromJWS(jwsSig); + if (header.typ === "JWT" || opts.json) + payload = JSON.parse(payload, opts.encoding); + return { + header, + payload, + signature: signatureFromJWS(jwsSig) + }; + } + __name(jwsDecode, "jwsDecode"); + function VerifyStream(opts) { + opts = opts || {}; + var secretOrKey = opts.secret; + secretOrKey = secretOrKey == null ? opts.publicKey : secretOrKey; + secretOrKey = secretOrKey == null ? opts.key : secretOrKey; + if (/^hs/i.test(opts.algorithm) === true && secretOrKey == null) { + throw new TypeError("secret must be a string or buffer or a KeyObject"); + } + var secretStream = new DataStream(secretOrKey); + this.readable = true; + this.algorithm = opts.algorithm; + this.encoding = opts.encoding; + this.secret = this.publicKey = this.key = secretStream; + this.signature = new DataStream(opts.signature); + this.secret.once("close", function() { + if (!this.signature.writable && this.readable) + this.verify(); + }.bind(this)); + this.signature.once("close", function() { + if (!this.secret.writable && this.readable) + this.verify(); + }.bind(this)); + } + __name(VerifyStream, "VerifyStream"); + util2.inherits(VerifyStream, Stream); + VerifyStream.prototype.verify = /* @__PURE__ */ __name(function verify() { + try { + var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer); + var obj = jwsDecode(this.signature.buffer, this.encoding); + this.emit("done", valid, obj); + this.emit("data", valid); + this.emit("end"); + this.readable = false; + return valid; + } catch (e) { + this.readable = false; + this.emit("error", e); + this.emit("close"); + } + }, "verify"); + VerifyStream.decode = jwsDecode; + VerifyStream.isValid = isValidJws; + VerifyStream.verify = jwsVerify; + module2.exports = VerifyStream; + } +}); + +// node_modules/jws/index.js +var require_jws = __commonJS({ + "node_modules/jws/index.js"(exports2) { + var SignStream = require_sign_stream(); + var VerifyStream = require_verify_stream(); + var ALGORITHMS = [ + "HS256", + "HS384", + "HS512", + "RS256", + "RS384", + "RS512", + "PS256", + "PS384", + "PS512", + "ES256", + "ES384", + "ES512" + ]; + exports2.ALGORITHMS = ALGORITHMS; + exports2.sign = SignStream.sign; + exports2.verify = VerifyStream.verify; + exports2.decode = VerifyStream.decode; + exports2.isValid = VerifyStream.isValid; + exports2.createSign = /* @__PURE__ */ __name(function createSign(opts) { + return new SignStream(opts); + }, "createSign"); + exports2.createVerify = /* @__PURE__ */ __name(function createVerify(opts) { + return new VerifyStream(opts); + }, "createVerify"); + } +}); + +// node_modules/jsonwebtoken/decode.js +var require_decode = __commonJS({ + "node_modules/jsonwebtoken/decode.js"(exports2, module2) { + var jws = require_jws(); + module2.exports = function(jwt, options) { + options = options || {}; + var decoded = jws.decode(jwt, options); + if (!decoded) { + return null; + } + var payload = decoded.payload; + if (typeof payload === "string") { + try { + var obj = JSON.parse(payload); + if (obj !== null && typeof obj === "object") { + payload = obj; + } + } catch (e) { + } + } + if (options.complete === true) { + return { + header: decoded.header, + payload, + signature: decoded.signature + }; + } + return payload; + }; + } +}); + +// node_modules/jsonwebtoken/lib/JsonWebTokenError.js +var require_JsonWebTokenError = __commonJS({ + "node_modules/jsonwebtoken/lib/JsonWebTokenError.js"(exports2, module2) { + var JsonWebTokenError = /* @__PURE__ */ __name(function(message, error) { + Error.call(this, message); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "JsonWebTokenError"; + this.message = message; + if (error) this.inner = error; + }, "JsonWebTokenError"); + JsonWebTokenError.prototype = Object.create(Error.prototype); + JsonWebTokenError.prototype.constructor = JsonWebTokenError; + module2.exports = JsonWebTokenError; + } +}); + +// node_modules/jsonwebtoken/lib/NotBeforeError.js +var require_NotBeforeError = __commonJS({ + "node_modules/jsonwebtoken/lib/NotBeforeError.js"(exports2, module2) { + var JsonWebTokenError = require_JsonWebTokenError(); + var NotBeforeError = /* @__PURE__ */ __name(function(message, date) { + JsonWebTokenError.call(this, message); + this.name = "NotBeforeError"; + this.date = date; + }, "NotBeforeError"); + NotBeforeError.prototype = Object.create(JsonWebTokenError.prototype); + NotBeforeError.prototype.constructor = NotBeforeError; + module2.exports = NotBeforeError; + } +}); + +// node_modules/jsonwebtoken/lib/TokenExpiredError.js +var require_TokenExpiredError = __commonJS({ + "node_modules/jsonwebtoken/lib/TokenExpiredError.js"(exports2, module2) { + var JsonWebTokenError = require_JsonWebTokenError(); + var TokenExpiredError = /* @__PURE__ */ __name(function(message, expiredAt) { + JsonWebTokenError.call(this, message); + this.name = "TokenExpiredError"; + this.expiredAt = expiredAt; + }, "TokenExpiredError"); + TokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype); + TokenExpiredError.prototype.constructor = TokenExpiredError; + module2.exports = TokenExpiredError; + } +}); + +// node_modules/jsonwebtoken/lib/timespan.js +var require_timespan = __commonJS({ + "node_modules/jsonwebtoken/lib/timespan.js"(exports2, module2) { + var ms = require_ms(); + module2.exports = function(time, iat) { + var timestamp = iat || Math.floor(Date.now() / 1e3); + if (typeof time === "string") { + var milliseconds = ms(time); + if (typeof milliseconds === "undefined") { + return; + } + return Math.floor(timestamp + milliseconds / 1e3); + } else if (typeof time === "number") { + return timestamp + time; + } else { + return; + } + }; + } +}); + +// node_modules/semver/internal/constants.js +var require_constants12 = __commonJS({ + "node_modules/semver/internal/constants.js"(exports2, module2) { + "use strict"; + var SEMVER_SPEC_VERSION = "2.0.0"; + var MAX_LENGTH = 256; + var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ + 9007199254740991; + var MAX_SAFE_COMPONENT_LENGTH = 16; + var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; + var RELEASE_TYPES = [ + "major", + "premajor", + "minor", + "preminor", + "patch", + "prepatch", + "prerelease" + ]; + module2.exports = { + MAX_LENGTH, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 1, + FLAG_LOOSE: 2 + }; + } +}); + +// node_modules/semver/internal/debug.js +var require_debug = __commonJS({ + "node_modules/semver/internal/debug.js"(exports2, module2) { + "use strict"; + var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { + }; + module2.exports = debug; + } +}); + +// node_modules/semver/internal/re.js +var require_re = __commonJS({ + "node_modules/semver/internal/re.js"(exports2, module2) { + "use strict"; + var { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH + } = require_constants12(); + var debug = require_debug(); + exports2 = module2.exports = {}; + var re = exports2.re = []; + var safeRe = exports2.safeRe = []; + var src = exports2.src = []; + var safeSrc = exports2.safeSrc = []; + var t = exports2.t = {}; + var R = 0; + var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; + var safeRegexReplacements = [ + ["\\s", 1], + ["\\d", MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] + ]; + var makeSafeRegex = /* @__PURE__ */ __name((value) => { + for (const [token, max] of safeRegexReplacements) { + value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`); + } + return value; + }, "makeSafeRegex"); + var createToken = /* @__PURE__ */ __name((name, value, isGlobal) => { + const safe = makeSafeRegex(value); + const index = R++; + debug(name, index, value); + t[name] = index; + src[index] = value; + safeSrc[index] = safe; + re[index] = new RegExp(value, isGlobal ? "g" : void 0); + safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); + }, "createToken"); + createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); + createToken("NUMERICIDENTIFIERLOOSE", "\\d+"); + createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); + createToken("MAINVERSION", `(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`); + createToken("MAINVERSIONLOOSE", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`); + createToken("PRERELEASEIDENTIFIER", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`); + createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`); + createToken("PRERELEASE", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + createToken("PRERELEASELOOSE", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`); + createToken("BUILD", `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + createToken("FULLPLAIN", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); + createToken("FULL", `^${src[t.FULLPLAIN]}$`); + createToken("LOOSEPLAIN", `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); + createToken("LOOSE", `^${src[t.LOOSEPLAIN]}$`); + createToken("GTLT", "((?:<|>)?=?)"); + createToken("XRANGEIDENTIFIERLOOSE", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken("XRANGEIDENTIFIER", `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + createToken("XRANGEPLAIN", `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`); + createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`); + createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); + createToken("COERCEPLAIN", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`); + createToken("COERCE", `${src[t.COERCEPLAIN]}(?:$|[^\\d])`); + createToken("COERCEFULL", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`); + createToken("COERCERTL", src[t.COERCE], true); + createToken("COERCERTLFULL", src[t.COERCEFULL], true); + createToken("LONETILDE", "(?:~>?)"); + createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true); + exports2.tildeTrimReplace = "$1~"; + createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken("LONECARET", "(?:\\^)"); + createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true); + exports2.caretTrimReplace = "$1^"; + createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); + exports2.comparatorTrimReplace = "$1$2$3"; + createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`); + createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`); + createToken("STAR", "(<|>)?=?\\s*\\*"); + createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); + createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); + } +}); + +// node_modules/semver/internal/parse-options.js +var require_parse_options = __commonJS({ + "node_modules/semver/internal/parse-options.js"(exports2, module2) { + "use strict"; + var looseOption = Object.freeze({ loose: true }); + var emptyOpts = Object.freeze({}); + var parseOptions = /* @__PURE__ */ __name((options) => { + if (!options) { + return emptyOpts; + } + if (typeof options !== "object") { + return looseOption; + } + return options; + }, "parseOptions"); + module2.exports = parseOptions; + } +}); + +// node_modules/semver/internal/identifiers.js +var require_identifiers = __commonJS({ + "node_modules/semver/internal/identifiers.js"(exports2, module2) { + "use strict"; + var numeric = /^[0-9]+$/; + var compareIdentifiers = /* @__PURE__ */ __name((a, b) => { + if (typeof a === "number" && typeof b === "number") { + return a === b ? 0 : a < b ? -1 : 1; + } + const anum = numeric.test(a); + const bnum = numeric.test(b); + if (anum && bnum) { + a = +a; + b = +b; + } + return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; + }, "compareIdentifiers"); + var rcompareIdentifiers = /* @__PURE__ */ __name((a, b) => compareIdentifiers(b, a), "rcompareIdentifiers"); + module2.exports = { + compareIdentifiers, + rcompareIdentifiers + }; + } +}); + +// node_modules/semver/classes/semver.js +var require_semver = __commonJS({ + "node_modules/semver/classes/semver.js"(exports2, module2) { + "use strict"; + var debug = require_debug(); + var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants12(); + var { safeRe: re, t } = require_re(); + var parseOptions = require_parse_options(); + var { compareIdentifiers } = require_identifiers(); + var isPrereleaseIdentifier = /* @__PURE__ */ __name((prerelease, identifier) => { + const identifiers = identifier.split("."); + if (identifiers.length > prerelease.length) { + return false; + } + for (let i = 0; i < identifiers.length; i++) { + if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) { + return false; + } + } + return true; + }, "isPrereleaseIdentifier"); + var SemVer = class _SemVer { + static { + __name(this, "SemVer"); + } + constructor(version, options) { + options = parseOptions(options); + if (version instanceof _SemVer) { + if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { + return version; + } else { + version = version.version; + } + } else if (typeof version !== "string") { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`); + } + if (version.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ); + } + debug("SemVer", version, options); + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); + if (!m) { + throw new TypeError(`Invalid Version: ${version}`); + } + this.raw = version; + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError("Invalid major version"); + } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError("Invalid minor version"); + } + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError("Invalid patch version"); + } + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split(".").map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num; + } + } + return id; + }); + } + this.build = m[5] ? m[5].split(".") : []; + this.format(); + } + format() { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join(".")}`; + } + return this.version; + } + toString() { + return this.version; + } + compare(other) { + debug("SemVer.compare", this.version, this.options, other); + if (!(other instanceof _SemVer)) { + if (typeof other === "string" && other === this.version) { + return 0; + } + other = new _SemVer(other, this.options); + } + if (other.version === this.version) { + return 0; + } + return this.compareMain(other) || this.comparePre(other); + } + compareMain(other) { + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); + } + if (this.major < other.major) { + return -1; + } + if (this.major > other.major) { + return 1; + } + if (this.minor < other.minor) { + return -1; + } + if (this.minor > other.minor) { + return 1; + } + if (this.patch < other.patch) { + return -1; + } + if (this.patch > other.patch) { + return 1; + } + return 0; + } + comparePre(other) { + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); + } + if (this.prerelease.length && !other.prerelease.length) { + return -1; + } else if (!this.prerelease.length && other.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0; + } + let i = 0; + do { + const a = this.prerelease[i]; + const b = other.prerelease[i]; + debug("prerelease compare", i, a, b); + if (a === void 0 && b === void 0) { + return 0; + } else if (b === void 0) { + return 1; + } else if (a === void 0) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } + compareBuild(other) { + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); + } + let i = 0; + do { + const a = this.build[i]; + const b = other.build[i]; + debug("build compare", i, a, b); + if (a === void 0 && b === void 0) { + return 0; + } else if (b === void 0) { + return 1; + } else if (a === void 0) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc(release, identifier, identifierBase) { + if (release.startsWith("pre")) { + if (!identifier && identifierBase === false) { + throw new Error("invalid increment argument: identifier is empty"); + } + if (identifier) { + const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]); + if (!match || match[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`); + } + } + } + switch (release) { + case "premajor": + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc("pre", identifier, identifierBase); + break; + case "preminor": + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc("pre", identifier, identifierBase); + break; + case "prepatch": + this.prerelease.length = 0; + this.inc("patch", identifier, identifierBase); + this.inc("pre", identifier, identifierBase); + break; + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case "prerelease": + if (this.prerelease.length === 0) { + this.inc("patch", identifier, identifierBase); + } + this.inc("pre", identifier, identifierBase); + break; + case "release": + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`); + } + this.prerelease.length = 0; + break; + case "major": + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case "minor": + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break; + case "patch": + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break; + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case "pre": { + const base = Number(identifierBase) ? 1 : 0; + if (this.prerelease.length === 0) { + this.prerelease = [base]; + } else { + let i = this.prerelease.length; + while (--i >= 0) { + if (typeof this.prerelease[i] === "number") { + this.prerelease[i]++; + i = -2; + } + } + if (i === -1) { + if (identifier === this.prerelease.join(".") && identifierBase === false) { + throw new Error("invalid increment argument: identifier already exists"); + } + this.prerelease.push(base); + } + } + if (identifier) { + let prerelease = [identifier, base]; + if (identifierBase === false) { + prerelease = [identifier]; + } + if (isPrereleaseIdentifier(this.prerelease, identifier)) { + const prereleaseBase = this.prerelease[identifier.split(".").length]; + if (isNaN(prereleaseBase)) { + this.prerelease = prerelease; + } + } else { + this.prerelease = prerelease; + } + } + break; + } + default: + throw new Error(`invalid increment argument: ${release}`); + } + this.raw = this.format(); + if (this.build.length) { + this.raw += `+${this.build.join(".")}`; + } + return this; + } + }; + module2.exports = SemVer; + } +}); + +// node_modules/semver/functions/parse.js +var require_parse3 = __commonJS({ + "node_modules/semver/functions/parse.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var parse = /* @__PURE__ */ __name((version, options, throwErrors = false) => { + if (version instanceof SemVer) { + return version; + } + try { + return new SemVer(version, options); + } catch (er) { + if (!throwErrors) { + return null; + } + throw er; + } + }, "parse"); + module2.exports = parse; + } +}); + +// node_modules/semver/functions/valid.js +var require_valid = __commonJS({ + "node_modules/semver/functions/valid.js"(exports2, module2) { + "use strict"; + var parse = require_parse3(); + var valid = /* @__PURE__ */ __name((version, options) => { + const v = parse(version, options); + return v ? v.version : null; + }, "valid"); + module2.exports = valid; + } +}); + +// node_modules/semver/functions/clean.js +var require_clean = __commonJS({ + "node_modules/semver/functions/clean.js"(exports2, module2) { + "use strict"; + var parse = require_parse3(); + var clean = /* @__PURE__ */ __name((version, options) => { + const s = parse(version.trim().replace(/^[=v]+/, ""), options); + return s ? s.version : null; + }, "clean"); + module2.exports = clean; + } +}); + +// node_modules/semver/functions/inc.js +var require_inc = __commonJS({ + "node_modules/semver/functions/inc.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var inc = /* @__PURE__ */ __name((version, release, options, identifier, identifierBase) => { + if (typeof options === "string") { + identifierBase = identifier; + identifier = options; + options = void 0; + } + try { + return new SemVer( + version instanceof SemVer ? version.version : version, + options + ).inc(release, identifier, identifierBase).version; + } catch (er) { + return null; + } + }, "inc"); + module2.exports = inc; + } +}); + +// node_modules/semver/functions/diff.js +var require_diff = __commonJS({ + "node_modules/semver/functions/diff.js"(exports2, module2) { + "use strict"; + var parse = require_parse3(); + var diff = /* @__PURE__ */ __name((version1, version2) => { + const v1 = parse(version1, null, true); + const v2 = parse(version2, null, true); + const comparison = v1.compare(v2); + if (comparison === 0) { + return null; + } + const v1Higher = comparison > 0; + const highVersion = v1Higher ? v1 : v2; + const lowVersion = v1Higher ? v2 : v1; + const highHasPre = !!highVersion.prerelease.length; + const lowHasPre = !!lowVersion.prerelease.length; + if (lowHasPre && !highHasPre) { + if (!lowVersion.patch && !lowVersion.minor) { + return "major"; + } + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return "minor"; + } + return "patch"; + } + } + const prefix = highHasPre ? "pre" : ""; + if (v1.major !== v2.major) { + return prefix + "major"; + } + if (v1.minor !== v2.minor) { + return prefix + "minor"; + } + if (v1.patch !== v2.patch) { + return prefix + "patch"; + } + return "prerelease"; + }, "diff"); + module2.exports = diff; + } +}); + +// node_modules/semver/functions/major.js +var require_major = __commonJS({ + "node_modules/semver/functions/major.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var major = /* @__PURE__ */ __name((a, loose) => new SemVer(a, loose).major, "major"); + module2.exports = major; + } +}); + +// node_modules/semver/functions/minor.js +var require_minor = __commonJS({ + "node_modules/semver/functions/minor.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var minor = /* @__PURE__ */ __name((a, loose) => new SemVer(a, loose).minor, "minor"); + module2.exports = minor; + } +}); + +// node_modules/semver/functions/patch.js +var require_patch = __commonJS({ + "node_modules/semver/functions/patch.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var patch = /* @__PURE__ */ __name((a, loose) => new SemVer(a, loose).patch, "patch"); + module2.exports = patch; + } +}); + +// node_modules/semver/functions/prerelease.js +var require_prerelease = __commonJS({ + "node_modules/semver/functions/prerelease.js"(exports2, module2) { + "use strict"; + var parse = require_parse3(); + var prerelease = /* @__PURE__ */ __name((version, options) => { + const parsed = parse(version, options); + return parsed && parsed.prerelease.length ? parsed.prerelease : null; + }, "prerelease"); + module2.exports = prerelease; + } +}); + +// node_modules/semver/functions/compare.js +var require_compare = __commonJS({ + "node_modules/semver/functions/compare.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var compare = /* @__PURE__ */ __name((a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)), "compare"); + module2.exports = compare; + } +}); + +// node_modules/semver/functions/rcompare.js +var require_rcompare = __commonJS({ + "node_modules/semver/functions/rcompare.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var rcompare = /* @__PURE__ */ __name((a, b, loose) => compare(b, a, loose), "rcompare"); + module2.exports = rcompare; + } +}); + +// node_modules/semver/functions/compare-loose.js +var require_compare_loose = __commonJS({ + "node_modules/semver/functions/compare-loose.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var compareLoose = /* @__PURE__ */ __name((a, b) => compare(a, b, true), "compareLoose"); + module2.exports = compareLoose; + } +}); + +// node_modules/semver/functions/compare-build.js +var require_compare_build = __commonJS({ + "node_modules/semver/functions/compare-build.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var compareBuild = /* @__PURE__ */ __name((a, b, loose) => { + const versionA = new SemVer(a, loose); + const versionB = new SemVer(b, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB); + }, "compareBuild"); + module2.exports = compareBuild; + } +}); + +// node_modules/semver/functions/sort.js +var require_sort = __commonJS({ + "node_modules/semver/functions/sort.js"(exports2, module2) { + "use strict"; + var compareBuild = require_compare_build(); + var sort = /* @__PURE__ */ __name((list, loose) => list.sort((a, b) => compareBuild(a, b, loose)), "sort"); + module2.exports = sort; + } +}); + +// node_modules/semver/functions/rsort.js +var require_rsort = __commonJS({ + "node_modules/semver/functions/rsort.js"(exports2, module2) { + "use strict"; + var compareBuild = require_compare_build(); + var rsort = /* @__PURE__ */ __name((list, loose) => list.sort((a, b) => compareBuild(b, a, loose)), "rsort"); + module2.exports = rsort; + } +}); + +// node_modules/semver/functions/gt.js +var require_gt = __commonJS({ + "node_modules/semver/functions/gt.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var gt = /* @__PURE__ */ __name((a, b, loose) => compare(a, b, loose) > 0, "gt"); + module2.exports = gt; + } +}); + +// node_modules/semver/functions/lt.js +var require_lt = __commonJS({ + "node_modules/semver/functions/lt.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var lt = /* @__PURE__ */ __name((a, b, loose) => compare(a, b, loose) < 0, "lt"); + module2.exports = lt; + } +}); + +// node_modules/semver/functions/eq.js +var require_eq2 = __commonJS({ + "node_modules/semver/functions/eq.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var eq = /* @__PURE__ */ __name((a, b, loose) => compare(a, b, loose) === 0, "eq"); + module2.exports = eq; + } +}); + +// node_modules/semver/functions/neq.js +var require_neq = __commonJS({ + "node_modules/semver/functions/neq.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var neq = /* @__PURE__ */ __name((a, b, loose) => compare(a, b, loose) !== 0, "neq"); + module2.exports = neq; + } +}); + +// node_modules/semver/functions/gte.js +var require_gte = __commonJS({ + "node_modules/semver/functions/gte.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var gte = /* @__PURE__ */ __name((a, b, loose) => compare(a, b, loose) >= 0, "gte"); + module2.exports = gte; + } +}); + +// node_modules/semver/functions/lte.js +var require_lte = __commonJS({ + "node_modules/semver/functions/lte.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var lte = /* @__PURE__ */ __name((a, b, loose) => compare(a, b, loose) <= 0, "lte"); + module2.exports = lte; + } +}); + +// node_modules/semver/functions/cmp.js +var require_cmp = __commonJS({ + "node_modules/semver/functions/cmp.js"(exports2, module2) { + "use strict"; + var eq = require_eq2(); + var neq = require_neq(); + var gt = require_gt(); + var gte = require_gte(); + var lt = require_lt(); + var lte = require_lte(); + var cmp = /* @__PURE__ */ __name((a, op, b, loose) => { + switch (op) { + case "===": + if (typeof a === "object") { + a = a.version; + } + if (typeof b === "object") { + b = b.version; + } + return a === b; + case "!==": + if (typeof a === "object") { + a = a.version; + } + if (typeof b === "object") { + b = b.version; + } + return a !== b; + case "": + case "=": + case "==": + return eq(a, b, loose); + case "!=": + return neq(a, b, loose); + case ">": + return gt(a, b, loose); + case ">=": + return gte(a, b, loose); + case "<": + return lt(a, b, loose); + case "<=": + return lte(a, b, loose); + default: + throw new TypeError(`Invalid operator: ${op}`); + } + }, "cmp"); + module2.exports = cmp; + } +}); + +// node_modules/semver/functions/coerce.js +var require_coerce = __commonJS({ + "node_modules/semver/functions/coerce.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var parse = require_parse3(); + var { safeRe: re, t } = require_re(); + var coerce = /* @__PURE__ */ __name((version, options) => { + if (version instanceof SemVer) { + return version; + } + if (typeof version === "number") { + version = String(version); + } + if (typeof version !== "string") { + return null; + } + options = options || {}; + let match = null; + if (!options.rtl) { + match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]); + } else { + const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]; + let next; + while ((next = coerceRtlRegex.exec(version)) && (!match || match.index + match[0].length !== version.length)) { + if (!match || next.index + next[0].length !== match.index + match[0].length) { + match = next; + } + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; + } + coerceRtlRegex.lastIndex = -1; + } + if (match === null) { + return null; + } + const major = match[2]; + const minor = match[3] || "0"; + const patch = match[4] || "0"; + const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ""; + const build = options.includePrerelease && match[6] ? `+${match[6]}` : ""; + return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options); + }, "coerce"); + module2.exports = coerce; + } +}); + +// node_modules/semver/functions/truncate.js +var require_truncate = __commonJS({ + "node_modules/semver/functions/truncate.js"(exports2, module2) { + "use strict"; + var parse = require_parse3(); + var constants = require_constants12(); + var SemVer = require_semver(); + var truncate = /* @__PURE__ */ __name((version, truncation, options) => { + if (!constants.RELEASE_TYPES.includes(truncation)) { + return null; + } + const clonedVersion = cloneInputVersion(version, options); + return clonedVersion && doTruncation(clonedVersion, truncation); + }, "truncate"); + var cloneInputVersion = /* @__PURE__ */ __name((version, options) => { + const versionStringToParse = version instanceof SemVer ? version.version : version; + return parse(versionStringToParse, options); + }, "cloneInputVersion"); + var doTruncation = /* @__PURE__ */ __name((version, truncation) => { + if (isPrerelease(truncation)) { + return version.version; + } + version.prerelease = []; + switch (truncation) { + case "major": + version.minor = 0; + version.patch = 0; + break; + case "minor": + version.patch = 0; + break; + } + return version.format(); + }, "doTruncation"); + var isPrerelease = /* @__PURE__ */ __name((type) => { + return type.startsWith("pre"); + }, "isPrerelease"); + module2.exports = truncate; + } +}); + +// node_modules/semver/internal/lrucache.js +var require_lrucache = __commonJS({ + "node_modules/semver/internal/lrucache.js"(exports2, module2) { + "use strict"; + var LRUCache = class { + static { + __name(this, "LRUCache"); + } + constructor() { + this.max = 1e3; + this.map = /* @__PURE__ */ new Map(); + } + get(key) { + const value = this.map.get(key); + if (value === void 0) { + return void 0; + } else { + this.map.delete(key); + this.map.set(key, value); + return value; + } + } + delete(key) { + return this.map.delete(key); + } + set(key, value) { + const deleted = this.delete(key); + if (!deleted && value !== void 0) { + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value; + this.delete(firstKey); + } + this.map.set(key, value); + } + return this; + } + }; + module2.exports = LRUCache; + } +}); + +// node_modules/semver/classes/range.js +var require_range3 = __commonJS({ + "node_modules/semver/classes/range.js"(exports2, module2) { + "use strict"; + var SPACE_CHARACTERS = /\s+/g; + var Range = class _Range { + static { + __name(this, "Range"); + } + constructor(range, options) { + options = parseOptions(options); + if (range instanceof _Range) { + if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { + return range; + } else { + return new _Range(range.raw, options); + } + } + if (range instanceof Comparator) { + this.raw = range.value; + this.set = [[range]]; + this.formatted = void 0; + return this; + } + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + this.raw = range.trim().replace(SPACE_CHARACTERS, " "); + this.set = this.raw.split("||").map((r) => this.parseRange(r.trim())).filter((c) => c.length); + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`); + } + if (this.set.length > 1) { + const first = this.set[0]; + this.set = this.set.filter((c) => !isNullSet(c[0])); + if (this.set.length === 0) { + this.set = [first]; + } else if (this.set.length > 1) { + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c]; + break; + } + } + } + } + this.formatted = void 0; + } + get range() { + if (this.formatted === void 0) { + this.formatted = ""; + for (let i = 0; i < this.set.length; i++) { + if (i > 0) { + this.formatted += "||"; + } + const comps = this.set[i]; + for (let k = 0; k < comps.length; k++) { + if (k > 0) { + this.formatted += " "; + } + this.formatted += comps[k].toString().trim(); + } + } + } + return this.formatted; + } + format() { + return this.range; + } + toString() { + return this.range; + } + parseRange(range) { + range = range.replace(BUILDSTRIPRE, ""); + const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE); + const memoKey = memoOpts + ":" + range; + const cached = cache.get(memoKey); + if (cached) { + return cached; + } + const loose = this.options.loose; + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); + debug("hyphen replace", range); + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); + debug("comparator trim", range); + range = range.replace(re[t.TILDETRIM], tildeTrimReplace); + debug("tilde trim", range); + range = range.replace(re[t.CARETTRIM], caretTrimReplace); + debug("caret trim", range); + let rangeList = range.split(" ").map((comp) => parseComparator(comp, this.options)).join(" ").split(/\s+/).map((comp) => replaceGTE0(comp, this.options)); + if (loose) { + rangeList = rangeList.filter((comp) => { + debug("loose invalid filter", comp, this.options); + return !!comp.match(re[t.COMPARATORLOOSE]); + }); + } + debug("range list", rangeList); + const rangeMap = /* @__PURE__ */ new Map(); + const comparators = rangeList.map((comp) => new Comparator(comp, this.options)); + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp]; + } + rangeMap.set(comp.value, comp); + } + if (rangeMap.size > 1 && rangeMap.has("")) { + rangeMap.delete(""); + } + const result = [...rangeMap.values()]; + cache.set(memoKey, result); + return result; + } + intersects(range, options) { + if (!(range instanceof _Range)) { + throw new TypeError("a Range is required"); + } + return this.set.some((thisComparators) => { + return isSatisfiable(thisComparators, options) && range.set.some((rangeComparators) => { + return isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options); + }); + }); + }); + }); + } + // if ANY of the sets match ALL of its comparators, then pass + test(version) { + if (!version) { + return false; + } + if (typeof version === "string") { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + } + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true; + } + } + return false; + } + }; + module2.exports = Range; + var LRU = require_lrucache(); + var cache = new LRU(); + var parseOptions = require_parse_options(); + var Comparator = require_comparator(); + var debug = require_debug(); + var SemVer = require_semver(); + var { + safeRe: re, + src, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace + } = require_re(); + var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants12(); + var BUILDSTRIPRE = new RegExp(src[t.BUILD], "g"); + var isNullSet = /* @__PURE__ */ __name((c) => c.value === "<0.0.0-0", "isNullSet"); + var isAny = /* @__PURE__ */ __name((c) => c.value === "", "isAny"); + var isSatisfiable = /* @__PURE__ */ __name((comparators, options) => { + let result = true; + const remainingComparators = comparators.slice(); + let testComparator = remainingComparators.pop(); + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options); + }); + testComparator = remainingComparators.pop(); + } + return result; + }, "isSatisfiable"); + var parseComparator = /* @__PURE__ */ __name((comp, options) => { + comp = comp.replace(re[t.BUILD], ""); + debug("comp", comp, options); + comp = replaceCarets(comp, options); + debug("caret", comp); + comp = replaceTildes(comp, options); + debug("tildes", comp); + comp = replaceXRanges(comp, options); + debug("xrange", comp); + comp = replaceStars(comp, options); + debug("stars", comp); + return comp; + }, "parseComparator"); + var isX = /* @__PURE__ */ __name((id) => !id || id.toLowerCase() === "x" || id === "*", "isX"); + var invalidXRangeOrder = /* @__PURE__ */ __name((M, m, p) => isX(M) && !isX(m) || isX(m) && p && !isX(p), "invalidXRangeOrder"); + var replaceTildes = /* @__PURE__ */ __name((comp, options) => { + return comp.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" "); + }, "replaceTildes"); + var replaceTilde = /* @__PURE__ */ __name((comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; + const z = options.includePrerelease ? "-0" : ""; + return comp.replace(r, (_, M, m, p, pr) => { + debug("tilde", comp, _, M, m, p, pr); + let ret; + if (isX(M)) { + ret = ""; + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; + } else if (isX(p)) { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; + } else if (pr) { + debug("replaceTilde pr", pr); + ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; + } else { + ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; + } + debug("tilde return", ret); + return ret; + }); + }, "replaceTilde"); + var replaceCarets = /* @__PURE__ */ __name((comp, options) => { + return comp.trim().split(/\s+/).map((c) => replaceCaret(c, options)).join(" "); + }, "replaceCarets"); + var replaceCaret = /* @__PURE__ */ __name((comp, options) => { + debug("caret", comp, options); + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; + const z = options.includePrerelease ? "-0" : ""; + return comp.replace(r, (_, M, m, p, pr) => { + debug("caret", comp, _, M, m, p, pr); + let ret; + if (isX(M)) { + ret = ""; + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; + } else if (isX(p)) { + if (M === "0") { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; + } + } else if (pr) { + debug("replaceCaret pr", pr); + if (M === "0") { + if (m === "0") { + ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`; + } + } else { + debug("no pr"); + if (M === "0") { + if (m === "0") { + ret = `>=${M}.${m}.${p} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`; + } + } + debug("caret return", ret); + return ret; + }); + }, "replaceCaret"); + var replaceXRanges = /* @__PURE__ */ __name((comp, options) => { + debug("replaceXRanges", comp, options); + return comp.split(/\s+/).map((c) => replaceXRange(c, options)).join(" "); + }, "replaceXRanges"); + var replaceXRange = /* @__PURE__ */ __name((comp, options) => { + comp = comp.trim(); + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug("xRange", comp, ret, gtlt, M, m, p, pr); + if (invalidXRangeOrder(M, m, p)) { + return comp; + } + const xM = isX(M); + const xm = xM || isX(m); + const xp = xm || isX(p); + const anyX = xp; + if (gtlt === "=" && anyX) { + gtlt = ""; + } + pr = options.includePrerelease ? "-0" : ""; + if (xM) { + if (gtlt === ">" || gtlt === "<") { + ret = "<0.0.0-0"; + } else { + ret = "*"; + } + } else if (gtlt && anyX) { + if (xm) { + m = 0; + } + p = 0; + if (gtlt === ">") { + gtlt = ">="; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else { + m = +m + 1; + p = 0; + } + } else if (gtlt === "<=") { + gtlt = "<"; + if (xm) { + M = +M + 1; + } else { + m = +m + 1; + } + } + if (gtlt === "<") { + pr = "-0"; + } + ret = `${gtlt + M}.${m}.${p}${pr}`; + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; + } else if (xp) { + ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`; + } + debug("xRange return", ret); + return ret; + }); + }, "replaceXRange"); + var replaceStars = /* @__PURE__ */ __name((comp, options) => { + debug("replaceStars", comp, options); + return comp.trim().replace(re[t.STAR], ""); + }, "replaceStars"); + var replaceGTE0 = /* @__PURE__ */ __name((comp, options) => { + debug("replaceGTE0", comp, options); + return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], ""); + }, "replaceGTE0"); + var hyphenReplace = /* @__PURE__ */ __name((incPr) => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => { + if (isX(fM)) { + from = ""; + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? "-0" : ""}`; + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? "-0" : ""}`; + } else if (fpr) { + from = `>=${from}`; + } else { + from = `>=${from}${incPr ? "-0" : ""}`; + } + if (isX(tM)) { + to = ""; + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0`; + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0`; + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}`; + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0`; + } else { + to = `<=${to}`; + } + return `${from} ${to}`.trim(); + }, "hyphenReplace"); + var testSet = /* @__PURE__ */ __name((set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false; + } + } + if (version.prerelease.length && !options.includePrerelease) { + for (let i = 0; i < set.length; i++) { + debug(set[i].semver); + if (set[i].semver === Comparator.ANY) { + continue; + } + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver; + if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { + return true; + } + } + } + return false; + } + return true; + }, "testSet"); + } +}); + +// node_modules/semver/classes/comparator.js +var require_comparator = __commonJS({ + "node_modules/semver/classes/comparator.js"(exports2, module2) { + "use strict"; + var ANY = /* @__PURE__ */ Symbol("SemVer ANY"); + var Comparator = class _Comparator { + static { + __name(this, "Comparator"); + } + static get ANY() { + return ANY; + } + constructor(comp, options) { + options = parseOptions(options); + if (comp instanceof _Comparator) { + if (comp.loose === !!options.loose) { + return comp; + } else { + comp = comp.value; + } + } + comp = comp.trim().split(/\s+/).join(" "); + debug("comparator", comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); + if (this.semver === ANY) { + this.value = ""; + } else { + this.value = this.operator + this.semver.version; + } + debug("comp", this); + } + parse(comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + const m = comp.match(r); + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`); + } + this.operator = m[1] !== void 0 ? m[1] : ""; + if (this.operator === "=") { + this.operator = ""; + } + if (!m[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m[2], this.options.loose); + } + } + toString() { + return this.value; + } + test(version) { + debug("Comparator.test", version, this.options.loose); + if (this.semver === ANY || version === ANY) { + return true; + } + if (typeof version === "string") { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + } + return cmp(version, this.operator, this.semver, this.options); + } + intersects(comp, options) { + if (!(comp instanceof _Comparator)) { + throw new TypeError("a Comparator is required"); + } + if (this.operator === "") { + if (this.value === "") { + return true; + } + return new Range(comp.value, options).test(this.value); + } else if (comp.operator === "") { + if (comp.value === "") { + return true; + } + return new Range(this.value, options).test(comp.semver); + } + options = parseOptions(options); + if (options.includePrerelease && (this.value === "<0.0.0-0" || comp.value === "<0.0.0-0")) { + return false; + } + if (!options.includePrerelease && (this.value.startsWith("<0.0.0") || comp.value.startsWith("<0.0.0"))) { + return false; + } + if (this.operator.startsWith(">") && comp.operator.startsWith(">")) { + return true; + } + if (this.operator.startsWith("<") && comp.operator.startsWith("<")) { + return true; + } + if (this.semver.version === comp.semver.version && this.operator.includes("=") && comp.operator.includes("=")) { + return true; + } + if (cmp(this.semver, "<", comp.semver, options) && this.operator.startsWith(">") && comp.operator.startsWith("<")) { + return true; + } + if (cmp(this.semver, ">", comp.semver, options) && this.operator.startsWith("<") && comp.operator.startsWith(">")) { + return true; + } + return false; + } + }; + module2.exports = Comparator; + var parseOptions = require_parse_options(); + var { safeRe: re, t } = require_re(); + var cmp = require_cmp(); + var debug = require_debug(); + var SemVer = require_semver(); + var Range = require_range3(); + } +}); + +// node_modules/semver/functions/satisfies.js +var require_satisfies = __commonJS({ + "node_modules/semver/functions/satisfies.js"(exports2, module2) { + "use strict"; + var Range = require_range3(); + var satisfies = /* @__PURE__ */ __name((version, range, options) => { + try { + range = new Range(range, options); + } catch (er) { + return false; + } + return range.test(version); + }, "satisfies"); + module2.exports = satisfies; + } +}); + +// node_modules/semver/ranges/to-comparators.js +var require_to_comparators = __commonJS({ + "node_modules/semver/ranges/to-comparators.js"(exports2, module2) { + "use strict"; + var Range = require_range3(); + var toComparators = /* @__PURE__ */ __name((range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" ")), "toComparators"); + module2.exports = toComparators; + } +}); + +// node_modules/semver/ranges/max-satisfying.js +var require_max_satisfying = __commonJS({ + "node_modules/semver/ranges/max-satisfying.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var Range = require_range3(); + var maxSatisfying = /* @__PURE__ */ __name((versions, range, options) => { + let max = null; + let maxSV = null; + let rangeObj = null; + try { + rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + if (!max || maxSV.compare(v) === -1) { + max = v; + maxSV = new SemVer(max, options); + } + } + }); + return max; + }, "maxSatisfying"); + module2.exports = maxSatisfying; + } +}); + +// node_modules/semver/ranges/min-satisfying.js +var require_min_satisfying = __commonJS({ + "node_modules/semver/ranges/min-satisfying.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var Range = require_range3(); + var minSatisfying = /* @__PURE__ */ __name((versions, range, options) => { + let min = null; + let minSV = null; + let rangeObj = null; + try { + rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + if (!min || minSV.compare(v) === 1) { + min = v; + minSV = new SemVer(min, options); + } + } + }); + return min; + }, "minSatisfying"); + module2.exports = minSatisfying; + } +}); + +// node_modules/semver/ranges/min-version.js +var require_min_version = __commonJS({ + "node_modules/semver/ranges/min-version.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var Range = require_range3(); + var gt = require_gt(); + var minVersion = /* @__PURE__ */ __name((range, loose) => { + range = new Range(range, loose); + let minver = new SemVer("0.0.0"); + if (range.test(minver)) { + return minver; + } + minver = new SemVer("0.0.0-0"); + if (range.test(minver)) { + return minver; + } + minver = null; + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + let setMin = null; + comparators.forEach((comparator) => { + const compver = new SemVer(comparator.semver.version); + switch (comparator.operator) { + case ">": + if (compver.prerelease.length === 0) { + compver.patch++; + } else { + compver.prerelease.push(0); + } + compver.raw = compver.format(); + /* fallthrough */ + case "": + case ">=": + if (!setMin || gt(compver, setMin)) { + setMin = compver; + } + break; + case "<": + case "<=": + break; + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`); + } + }); + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin; + } + } + if (minver && range.test(minver)) { + return minver; + } + return null; + }, "minVersion"); + module2.exports = minVersion; + } +}); + +// node_modules/semver/ranges/valid.js +var require_valid2 = __commonJS({ + "node_modules/semver/ranges/valid.js"(exports2, module2) { + "use strict"; + var Range = require_range3(); + var validRange = /* @__PURE__ */ __name((range, options) => { + try { + return new Range(range, options).range || "*"; + } catch (er) { + return null; + } + }, "validRange"); + module2.exports = validRange; + } +}); + +// node_modules/semver/ranges/outside.js +var require_outside = __commonJS({ + "node_modules/semver/ranges/outside.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var Comparator = require_comparator(); + var { ANY } = Comparator; + var Range = require_range3(); + var satisfies = require_satisfies(); + var gt = require_gt(); + var lt = require_lt(); + var lte = require_lte(); + var gte = require_gte(); + var outside = /* @__PURE__ */ __name((version, range, hilo, options) => { + version = new SemVer(version, options); + range = new Range(range, options); + let gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case ">": + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = ">"; + ecomp = ">="; + break; + case "<": + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = "<"; + ecomp = "<="; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } + if (satisfies(version, range, options)) { + return false; + } + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + let high = null; + let low = null; + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator(">=0.0.0"); + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; + } + }); + if (high.operator === comp || high.operator === ecomp) { + return false; + } + if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { + return false; + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false; + } + } + return true; + }, "outside"); + module2.exports = outside; + } +}); + +// node_modules/semver/ranges/gtr.js +var require_gtr = __commonJS({ + "node_modules/semver/ranges/gtr.js"(exports2, module2) { + "use strict"; + var outside = require_outside(); + var gtr = /* @__PURE__ */ __name((version, range, options) => outside(version, range, ">", options), "gtr"); + module2.exports = gtr; + } +}); + +// node_modules/semver/ranges/ltr.js +var require_ltr = __commonJS({ + "node_modules/semver/ranges/ltr.js"(exports2, module2) { + "use strict"; + var outside = require_outside(); + var ltr = /* @__PURE__ */ __name((version, range, options) => outside(version, range, "<", options), "ltr"); + module2.exports = ltr; + } +}); + +// node_modules/semver/ranges/intersects.js +var require_intersects = __commonJS({ + "node_modules/semver/ranges/intersects.js"(exports2, module2) { + "use strict"; + var Range = require_range3(); + var intersects = /* @__PURE__ */ __name((r1, r2, options) => { + r1 = new Range(r1, options); + r2 = new Range(r2, options); + return r1.intersects(r2, options); + }, "intersects"); + module2.exports = intersects; + } +}); + +// node_modules/semver/ranges/simplify.js +var require_simplify = __commonJS({ + "node_modules/semver/ranges/simplify.js"(exports2, module2) { + "use strict"; + var satisfies = require_satisfies(); + var compare = require_compare(); + module2.exports = (versions, range, options) => { + const set = []; + let first = null; + let prev = null; + const v = versions.sort((a, b) => compare(a, b, options)); + for (const version of v) { + const included = satisfies(version, range, options); + if (included) { + prev = version; + if (!first) { + first = version; + } + } else { + if (prev) { + set.push([first, prev]); + } + prev = null; + first = null; + } + } + if (first) { + set.push([first, null]); + } + const ranges = []; + for (const [min, max] of set) { + if (min === max) { + ranges.push(min); + } else if (!max && min === v[0]) { + ranges.push("*"); + } else if (!max) { + ranges.push(`>=${min}`); + } else if (min === v[0]) { + ranges.push(`<=${max}`); + } else { + ranges.push(`${min} - ${max}`); + } + } + const simplified = ranges.join(" || "); + const original = typeof range.raw === "string" ? range.raw : String(range); + return simplified.length < original.length ? simplified : range; + }; + } +}); + +// node_modules/semver/ranges/subset.js +var require_subset = __commonJS({ + "node_modules/semver/ranges/subset.js"(exports2, module2) { + "use strict"; + var Range = require_range3(); + var Comparator = require_comparator(); + var { ANY } = Comparator; + var satisfies = require_satisfies(); + var compare = require_compare(); + var subset = /* @__PURE__ */ __name((sub, dom, options = {}) => { + if (sub === dom) { + return true; + } + sub = new Range(sub, options); + dom = new Range(dom, options); + let sawNonNull = false; + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options); + sawNonNull = sawNonNull || isSub !== null; + if (isSub) { + continue OUTER; + } + } + if (sawNonNull) { + return false; + } + } + return true; + }, "subset"); + var minimumVersionWithPreRelease = [new Comparator(">=0.0.0-0")]; + var minimumVersion = [new Comparator(">=0.0.0")]; + var simpleSubset = /* @__PURE__ */ __name((sub, dom, options) => { + if (sub === dom) { + return true; + } + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true; + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease; + } else { + sub = minimumVersion; + } + } + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true; + } else { + dom = minimumVersion; + } + } + const eqSet = /* @__PURE__ */ new Set(); + let gt, lt; + for (const c of sub) { + if (c.operator === ">" || c.operator === ">=") { + gt = higherGT(gt, c, options); + } else if (c.operator === "<" || c.operator === "<=") { + lt = lowerLT(lt, c, options); + } else { + eqSet.add(c.semver); + } + } + if (eqSet.size > 1) { + return null; + } + let gtltComp; + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options); + if (gtltComp > 0) { + return null; + } else if (gtltComp === 0 && (gt.operator !== ">=" || lt.operator !== "<=")) { + return null; + } + } + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null; + } + if (lt && !satisfies(eq, String(lt), options)) { + return null; + } + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false; + } + } + return true; + } + let higher, lower; + let hasDomLT, hasDomGT; + let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; + let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false; + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false; + } + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === ">" || c.operator === ">="; + hasDomLT = hasDomLT || c.operator === "<" || c.operator === "<="; + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false; + } + } + if (c.operator === ">" || c.operator === ">=") { + higher = higherGT(gt, c, options); + if (higher === c && higher !== gt) { + return false; + } + } else if (gt.operator === ">=" && !c.test(gt.semver)) { + return false; + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false; + } + } + if (c.operator === "<" || c.operator === "<=") { + lower = lowerLT(lt, c, options); + if (lower === c && lower !== lt) { + return false; + } + } else if (lt.operator === "<=" && !c.test(lt.semver)) { + return false; + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false; + } + } + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false; + } + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false; + } + if (needDomGTPre || needDomLTPre) { + return false; + } + return true; + }, "simpleSubset"); + var higherGT = /* @__PURE__ */ __name((a, b, options) => { + if (!a) { + return b; + } + const comp = compare(a.semver, b.semver, options); + return comp > 0 ? a : comp < 0 ? b : b.operator === ">" && a.operator === ">=" ? b : a; + }, "higherGT"); + var lowerLT = /* @__PURE__ */ __name((a, b, options) => { + if (!a) { + return b; + } + const comp = compare(a.semver, b.semver, options); + return comp < 0 ? a : comp > 0 ? b : b.operator === "<" && a.operator === "<=" ? b : a; + }, "lowerLT"); + module2.exports = subset; + } +}); + +// node_modules/semver/index.js +var require_semver2 = __commonJS({ + "node_modules/semver/index.js"(exports2, module2) { + "use strict"; + var internalRe = require_re(); + var constants = require_constants12(); + var SemVer = require_semver(); + var identifiers = require_identifiers(); + var parse = require_parse3(); + var valid = require_valid(); + var clean = require_clean(); + var inc = require_inc(); + var diff = require_diff(); + var major = require_major(); + var minor = require_minor(); + var patch = require_patch(); + var prerelease = require_prerelease(); + var compare = require_compare(); + var rcompare = require_rcompare(); + var compareLoose = require_compare_loose(); + var compareBuild = require_compare_build(); + var sort = require_sort(); + var rsort = require_rsort(); + var gt = require_gt(); + var lt = require_lt(); + var eq = require_eq2(); + var neq = require_neq(); + var gte = require_gte(); + var lte = require_lte(); + var cmp = require_cmp(); + var coerce = require_coerce(); + var truncate = require_truncate(); + var Comparator = require_comparator(); + var Range = require_range3(); + var satisfies = require_satisfies(); + var toComparators = require_to_comparators(); + var maxSatisfying = require_max_satisfying(); + var minSatisfying = require_min_satisfying(); + var minVersion = require_min_version(); + var validRange = require_valid2(); + var outside = require_outside(); + var gtr = require_gtr(); + var ltr = require_ltr(); + var intersects = require_intersects(); + var simplifyRange = require_simplify(); + var subset = require_subset(); + module2.exports = { + parse, + valid, + clean, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + truncate, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers + }; + } +}); + +// node_modules/jsonwebtoken/lib/asymmetricKeyDetailsSupported.js +var require_asymmetricKeyDetailsSupported = __commonJS({ + "node_modules/jsonwebtoken/lib/asymmetricKeyDetailsSupported.js"(exports2, module2) { + var semver = require_semver2(); + module2.exports = semver.satisfies(process.version, ">=15.7.0"); + } +}); + +// node_modules/jsonwebtoken/lib/rsaPssKeyDetailsSupported.js +var require_rsaPssKeyDetailsSupported = __commonJS({ + "node_modules/jsonwebtoken/lib/rsaPssKeyDetailsSupported.js"(exports2, module2) { + var semver = require_semver2(); + module2.exports = semver.satisfies(process.version, ">=16.9.0"); + } +}); + +// node_modules/jsonwebtoken/lib/validateAsymmetricKey.js +var require_validateAsymmetricKey = __commonJS({ + "node_modules/jsonwebtoken/lib/validateAsymmetricKey.js"(exports2, module2) { + var ASYMMETRIC_KEY_DETAILS_SUPPORTED = require_asymmetricKeyDetailsSupported(); + var RSA_PSS_KEY_DETAILS_SUPPORTED = require_rsaPssKeyDetailsSupported(); + var allowedAlgorithmsForKeys = { + "ec": ["ES256", "ES384", "ES512"], + "rsa": ["RS256", "PS256", "RS384", "PS384", "RS512", "PS512"], + "rsa-pss": ["PS256", "PS384", "PS512"] + }; + var allowedCurves = { + ES256: "prime256v1", + ES384: "secp384r1", + ES512: "secp521r1" + }; + module2.exports = function(algorithm, key) { + if (!algorithm || !key) return; + const keyType = key.asymmetricKeyType; + if (!keyType) return; + const allowedAlgorithms = allowedAlgorithmsForKeys[keyType]; + if (!allowedAlgorithms) { + throw new Error(`Unknown key type "${keyType}".`); + } + if (!allowedAlgorithms.includes(algorithm)) { + throw new Error(`"alg" parameter for "${keyType}" key type must be one of: ${allowedAlgorithms.join(", ")}.`); + } + if (ASYMMETRIC_KEY_DETAILS_SUPPORTED) { + switch (keyType) { + case "ec": + const keyCurve = key.asymmetricKeyDetails.namedCurve; + const allowedCurve = allowedCurves[algorithm]; + if (keyCurve !== allowedCurve) { + throw new Error(`"alg" parameter "${algorithm}" requires curve "${allowedCurve}".`); + } + break; + case "rsa-pss": + if (RSA_PSS_KEY_DETAILS_SUPPORTED) { + const length = parseInt(algorithm.slice(-3), 10); + const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = key.asymmetricKeyDetails; + if (hashAlgorithm !== `sha${length}` || mgf1HashAlgorithm !== hashAlgorithm) { + throw new Error(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${algorithm}.`); + } + if (saltLength !== void 0 && saltLength > length >> 3) { + throw new Error(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${algorithm}.`); + } + } + break; + } + } + }; + } +}); + +// node_modules/jsonwebtoken/lib/psSupported.js +var require_psSupported = __commonJS({ + "node_modules/jsonwebtoken/lib/psSupported.js"(exports2, module2) { + var semver = require_semver2(); + module2.exports = semver.satisfies(process.version, "^6.12.0 || >=8.0.0"); + } +}); + +// node_modules/jsonwebtoken/verify.js +var require_verify = __commonJS({ + "node_modules/jsonwebtoken/verify.js"(exports2, module2) { + var JsonWebTokenError = require_JsonWebTokenError(); + var NotBeforeError = require_NotBeforeError(); + var TokenExpiredError = require_TokenExpiredError(); + var decode = require_decode(); + var timespan = require_timespan(); + var validateAsymmetricKey = require_validateAsymmetricKey(); + var PS_SUPPORTED = require_psSupported(); + var jws = require_jws(); + var { KeyObject, createSecretKey, createPublicKey } = require("crypto"); + var PUB_KEY_ALGS = ["RS256", "RS384", "RS512"]; + var EC_KEY_ALGS = ["ES256", "ES384", "ES512"]; + var RSA_KEY_ALGS = ["RS256", "RS384", "RS512"]; + var HS_ALGS = ["HS256", "HS384", "HS512"]; + if (PS_SUPPORTED) { + PUB_KEY_ALGS.splice(PUB_KEY_ALGS.length, 0, "PS256", "PS384", "PS512"); + RSA_KEY_ALGS.splice(RSA_KEY_ALGS.length, 0, "PS256", "PS384", "PS512"); + } + module2.exports = function(jwtString, secretOrPublicKey, options, callback) { + if (typeof options === "function" && !callback) { + callback = options; + options = {}; + } + if (!options) { + options = {}; + } + options = Object.assign({}, options); + let done; + if (callback) { + done = callback; + } else { + done = /* @__PURE__ */ __name(function(err, data) { + if (err) throw err; + return data; + }, "done"); + } + if (options.clockTimestamp && typeof options.clockTimestamp !== "number") { + return done(new JsonWebTokenError("clockTimestamp must be a number")); + } + if (options.nonce !== void 0 && (typeof options.nonce !== "string" || options.nonce.trim() === "")) { + return done(new JsonWebTokenError("nonce must be a non-empty string")); + } + if (options.allowInvalidAsymmetricKeyTypes !== void 0 && typeof options.allowInvalidAsymmetricKeyTypes !== "boolean") { + return done(new JsonWebTokenError("allowInvalidAsymmetricKeyTypes must be a boolean")); + } + const clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1e3); + if (!jwtString) { + return done(new JsonWebTokenError("jwt must be provided")); + } + if (typeof jwtString !== "string") { + return done(new JsonWebTokenError("jwt must be a string")); + } + const parts = jwtString.split("."); + if (parts.length !== 3) { + return done(new JsonWebTokenError("jwt malformed")); + } + let decodedToken; + try { + decodedToken = decode(jwtString, { complete: true }); + } catch (err) { + return done(err); + } + if (!decodedToken) { + return done(new JsonWebTokenError("invalid token")); + } + const header = decodedToken.header; + let getSecret; + if (typeof secretOrPublicKey === "function") { + if (!callback) { + return done(new JsonWebTokenError("verify must be called asynchronous if secret or public key is provided as a callback")); + } + getSecret = secretOrPublicKey; + } else { + getSecret = /* @__PURE__ */ __name(function(header2, secretCallback) { + return secretCallback(null, secretOrPublicKey); + }, "getSecret"); + } + return getSecret(header, function(err, secretOrPublicKey2) { + if (err) { + return done(new JsonWebTokenError("error in secret or public key callback: " + err.message)); + } + const hasSignature = parts[2].trim() !== ""; + if (!hasSignature && secretOrPublicKey2) { + return done(new JsonWebTokenError("jwt signature is required")); + } + if (hasSignature && !secretOrPublicKey2) { + return done(new JsonWebTokenError("secret or public key must be provided")); + } + if (!hasSignature && !options.algorithms) { + return done(new JsonWebTokenError('please specify "none" in "algorithms" to verify unsigned tokens')); + } + if (secretOrPublicKey2 != null && !(secretOrPublicKey2 instanceof KeyObject)) { + try { + secretOrPublicKey2 = createPublicKey(secretOrPublicKey2); + } catch (_) { + try { + secretOrPublicKey2 = createSecretKey(typeof secretOrPublicKey2 === "string" ? Buffer.from(secretOrPublicKey2) : secretOrPublicKey2); + } catch (_2) { + return done(new JsonWebTokenError("secretOrPublicKey is not valid key material")); + } + } + } + if (!options.algorithms) { + if (secretOrPublicKey2.type === "secret") { + options.algorithms = HS_ALGS; + } else if (["rsa", "rsa-pss"].includes(secretOrPublicKey2.asymmetricKeyType)) { + options.algorithms = RSA_KEY_ALGS; + } else if (secretOrPublicKey2.asymmetricKeyType === "ec") { + options.algorithms = EC_KEY_ALGS; + } else { + options.algorithms = PUB_KEY_ALGS; + } + } + if (options.algorithms.indexOf(decodedToken.header.alg) === -1) { + return done(new JsonWebTokenError("invalid algorithm")); + } + if (header.alg.startsWith("HS") && secretOrPublicKey2.type !== "secret") { + return done(new JsonWebTokenError(`secretOrPublicKey must be a symmetric key when using ${header.alg}`)); + } else if (/^(?:RS|PS|ES)/.test(header.alg) && secretOrPublicKey2.type !== "public") { + return done(new JsonWebTokenError(`secretOrPublicKey must be an asymmetric key when using ${header.alg}`)); + } + if (!options.allowInvalidAsymmetricKeyTypes) { + try { + validateAsymmetricKey(header.alg, secretOrPublicKey2); + } catch (e) { + return done(e); + } + } + let valid; + try { + valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey2); + } catch (e) { + return done(e); + } + if (!valid) { + return done(new JsonWebTokenError("invalid signature")); + } + const payload = decodedToken.payload; + if (typeof payload.nbf !== "undefined" && !options.ignoreNotBefore) { + if (typeof payload.nbf !== "number") { + return done(new JsonWebTokenError("invalid nbf value")); + } + if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) { + return done(new NotBeforeError("jwt not active", new Date(payload.nbf * 1e3))); + } + } + if (typeof payload.exp !== "undefined" && !options.ignoreExpiration) { + if (typeof payload.exp !== "number") { + return done(new JsonWebTokenError("invalid exp value")); + } + if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) { + return done(new TokenExpiredError("jwt expired", new Date(payload.exp * 1e3))); + } + } + if (options.audience) { + const audiences = Array.isArray(options.audience) ? options.audience : [options.audience]; + const target = Array.isArray(payload.aud) ? payload.aud : [payload.aud]; + const match = target.some(function(targetAudience) { + return audiences.some(function(audience) { + return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience; + }); + }); + if (!match) { + return done(new JsonWebTokenError("jwt audience invalid. expected: " + audiences.join(" or "))); + } + } + if (options.issuer) { + const invalid_issuer = typeof options.issuer === "string" && payload.iss !== options.issuer || Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1; + if (invalid_issuer) { + return done(new JsonWebTokenError("jwt issuer invalid. expected: " + options.issuer)); + } + } + if (options.subject) { + if (payload.sub !== options.subject) { + return done(new JsonWebTokenError("jwt subject invalid. expected: " + options.subject)); + } + } + if (options.jwtid) { + if (payload.jti !== options.jwtid) { + return done(new JsonWebTokenError("jwt jwtid invalid. expected: " + options.jwtid)); + } + } + if (options.nonce) { + if (payload.nonce !== options.nonce) { + return done(new JsonWebTokenError("jwt nonce invalid. expected: " + options.nonce)); + } + } + if (options.maxAge) { + if (typeof payload.iat !== "number") { + return done(new JsonWebTokenError("iat required when maxAge is specified")); + } + const maxAgeTimestamp = timespan(options.maxAge, payload.iat); + if (typeof maxAgeTimestamp === "undefined") { + return done(new JsonWebTokenError('"maxAge" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); + } + if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) { + return done(new TokenExpiredError("maxAge exceeded", new Date(maxAgeTimestamp * 1e3))); + } + } + if (options.complete === true) { + const signature = decodedToken.signature; + return done(null, { + header, + payload, + signature + }); + } + return done(null, payload); + }); + }; + } +}); + +// node_modules/lodash.includes/index.js +var require_lodash2 = __commonJS({ + "node_modules/lodash.includes/index.js"(exports2, module2) { + var INFINITY = 1 / 0; + var MAX_SAFE_INTEGER = 9007199254740991; + var MAX_INTEGER = 17976931348623157e292; + var NAN = 0 / 0; + var argsTag = "[object Arguments]"; + var funcTag = "[object Function]"; + var genTag = "[object GeneratorFunction]"; + var stringTag = "[object String]"; + var symbolTag = "[object Symbol]"; + var reTrim = /^\s+|\s+$/g; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsOctal = /^0o[0-7]+$/i; + var reIsUint = /^(?:0|[1-9]\d*)$/; + var freeParseInt = parseInt; + function arrayMap(array, iteratee) { + var index = -1, length = array ? array.length : 0, result = Array(length); + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + __name(arrayMap, "arrayMap"); + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + __name(baseFindIndex, "baseFindIndex"); + function baseIndexOf(array, value, fromIndex) { + if (value !== value) { + return baseFindIndex(array, baseIsNaN, fromIndex); + } + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + __name(baseIndexOf, "baseIndexOf"); + function baseIsNaN(value) { + return value !== value; + } + __name(baseIsNaN, "baseIsNaN"); + function baseTimes(n, iteratee) { + var index = -1, result = Array(n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + __name(baseTimes, "baseTimes"); + function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); + } + __name(baseValues, "baseValues"); + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + __name(overArg, "overArg"); + var objectProto = Object.prototype; + var hasOwnProperty = objectProto.hasOwnProperty; + var objectToString = objectProto.toString; + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + var nativeKeys = overArg(Object.keys, Object); + var nativeMax = Math.max; + function arrayLikeKeys(value, inherited) { + var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : []; + var length = result.length, skipIndexes = !!length; + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isIndex(key, length)))) { + result.push(key); + } + } + return result; + } + __name(arrayLikeKeys, "arrayLikeKeys"); + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != "constructor") { + result.push(key); + } + } + return result; + } + __name(baseKeys, "baseKeys"); + function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && (typeof value == "number" || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); + } + __name(isIndex, "isIndex"); + function isPrototype(value) { + var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; + return value === proto; + } + __name(isPrototype, "isPrototype"); + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; + } + __name(includes, "includes"); + function isArguments(value) { + return isArrayLikeObject(value) && hasOwnProperty.call(value, "callee") && (!propertyIsEnumerable.call(value, "callee") || objectToString.call(value) == argsTag); + } + __name(isArguments, "isArguments"); + var isArray = Array.isArray; + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + __name(isArrayLike, "isArrayLike"); + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + __name(isArrayLikeObject, "isArrayLikeObject"); + function isFunction(value) { + var tag = isObject(value) ? objectToString.call(value) : ""; + return tag == funcTag || tag == genTag; + } + __name(isFunction, "isFunction"); + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + __name(isLength, "isLength"); + function isObject(value) { + var type = typeof value; + return !!value && (type == "object" || type == "function"); + } + __name(isObject, "isObject"); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isString(value) { + return typeof value == "string" || !isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag; + } + __name(isString, "isString"); + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; + } + __name(isSymbol, "isSymbol"); + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = value < 0 ? -1 : 1; + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + __name(toFinite, "toFinite"); + function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; + } + __name(toInteger, "toInteger"); + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ""); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + __name(toNumber, "toNumber"); + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + __name(keys, "keys"); + function values(object) { + return object ? baseValues(object, keys(object)) : []; + } + __name(values, "values"); + module2.exports = includes; + } +}); + +// node_modules/lodash.isboolean/index.js +var require_lodash3 = __commonJS({ + "node_modules/lodash.isboolean/index.js"(exports2, module2) { + var boolTag = "[object Boolean]"; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + function isBoolean(value) { + return value === true || value === false || isObjectLike(value) && objectToString.call(value) == boolTag; + } + __name(isBoolean, "isBoolean"); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + module2.exports = isBoolean; + } +}); + +// node_modules/lodash.isinteger/index.js +var require_lodash4 = __commonJS({ + "node_modules/lodash.isinteger/index.js"(exports2, module2) { + var INFINITY = 1 / 0; + var MAX_INTEGER = 17976931348623157e292; + var NAN = 0 / 0; + var symbolTag = "[object Symbol]"; + var reTrim = /^\s+|\s+$/g; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsOctal = /^0o[0-7]+$/i; + var freeParseInt = parseInt; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + function isInteger(value) { + return typeof value == "number" && value == toInteger(value); + } + __name(isInteger, "isInteger"); + function isObject(value) { + var type = typeof value; + return !!value && (type == "object" || type == "function"); + } + __name(isObject, "isObject"); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; + } + __name(isSymbol, "isSymbol"); + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = value < 0 ? -1 : 1; + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + __name(toFinite, "toFinite"); + function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; + } + __name(toInteger, "toInteger"); + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ""); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + __name(toNumber, "toNumber"); + module2.exports = isInteger; + } +}); + +// node_modules/lodash.isnumber/index.js +var require_lodash5 = __commonJS({ + "node_modules/lodash.isnumber/index.js"(exports2, module2) { + var numberTag = "[object Number]"; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isNumber(value) { + return typeof value == "number" || isObjectLike(value) && objectToString.call(value) == numberTag; + } + __name(isNumber, "isNumber"); + module2.exports = isNumber; + } +}); + +// node_modules/lodash.isplainobject/index.js +var require_lodash6 = __commonJS({ + "node_modules/lodash.isplainobject/index.js"(exports2, module2) { + var objectTag = "[object Object]"; + function isHostObject(value) { + var result = false; + if (value != null && typeof value.toString != "function") { + try { + result = !!(value + ""); + } catch (e) { + } + } + return result; + } + __name(isHostObject, "isHostObject"); + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + __name(overArg, "overArg"); + var funcProto = Function.prototype; + var objectProto = Object.prototype; + var funcToString = funcProto.toString; + var hasOwnProperty = objectProto.hasOwnProperty; + var objectCtorString = funcToString.call(Object); + var objectToString = objectProto.toString; + var getPrototype = overArg(Object.getPrototypeOf, Object); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isPlainObject(value) { + if (!isObjectLike(value) || objectToString.call(value) != objectTag || isHostObject(value)) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; + } + __name(isPlainObject, "isPlainObject"); + module2.exports = isPlainObject; + } +}); + +// node_modules/lodash.isstring/index.js +var require_lodash7 = __commonJS({ + "node_modules/lodash.isstring/index.js"(exports2, module2) { + var stringTag = "[object String]"; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + var isArray = Array.isArray; + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isString(value) { + return typeof value == "string" || !isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag; + } + __name(isString, "isString"); + module2.exports = isString; + } +}); + +// node_modules/lodash.once/index.js +var require_lodash8 = __commonJS({ + "node_modules/lodash.once/index.js"(exports2, module2) { + var FUNC_ERROR_TEXT = "Expected a function"; + var INFINITY = 1 / 0; + var MAX_INTEGER = 17976931348623157e292; + var NAN = 0 / 0; + var symbolTag = "[object Symbol]"; + var reTrim = /^\s+|\s+$/g; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsOctal = /^0o[0-7]+$/i; + var freeParseInt = parseInt; + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + function before(n, func) { + var result; + if (typeof func != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result = func.apply(this, arguments); + } + if (n <= 1) { + func = void 0; + } + return result; + }; + } + __name(before, "before"); + function once(func) { + return before(2, func); + } + __name(once, "once"); + function isObject(value) { + var type = typeof value; + return !!value && (type == "object" || type == "function"); + } + __name(isObject, "isObject"); + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + __name(isObjectLike, "isObjectLike"); + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; + } + __name(isSymbol, "isSymbol"); + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = value < 0 ? -1 : 1; + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + __name(toFinite, "toFinite"); + function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; + } + __name(toInteger, "toInteger"); + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ""); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + __name(toNumber, "toNumber"); + module2.exports = once; + } +}); + +// node_modules/jsonwebtoken/sign.js +var require_sign2 = __commonJS({ + "node_modules/jsonwebtoken/sign.js"(exports2, module2) { + var timespan = require_timespan(); + var PS_SUPPORTED = require_psSupported(); + var validateAsymmetricKey = require_validateAsymmetricKey(); + var jws = require_jws(); + var includes = require_lodash2(); + var isBoolean = require_lodash3(); + var isInteger = require_lodash4(); + var isNumber = require_lodash5(); + var isPlainObject = require_lodash6(); + var isString = require_lodash7(); + var once = require_lodash8(); + var { KeyObject, createSecretKey, createPrivateKey } = require("crypto"); + var SUPPORTED_ALGS = ["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "HS256", "HS384", "HS512", "none"]; + if (PS_SUPPORTED) { + SUPPORTED_ALGS.splice(3, 0, "PS256", "PS384", "PS512"); + } + var sign_options_schema = { + expiresIn: { isValid: /* @__PURE__ */ __name(function(value) { + return isInteger(value) || isString(value) && value; + }, "isValid"), message: '"expiresIn" should be a number of seconds or string representing a timespan' }, + notBefore: { isValid: /* @__PURE__ */ __name(function(value) { + return isInteger(value) || isString(value) && value; + }, "isValid"), message: '"notBefore" should be a number of seconds or string representing a timespan' }, + audience: { isValid: /* @__PURE__ */ __name(function(value) { + return isString(value) || Array.isArray(value); + }, "isValid"), message: '"audience" must be a string or array' }, + algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '"algorithm" must be a valid string enum value' }, + header: { isValid: isPlainObject, message: '"header" must be an object' }, + encoding: { isValid: isString, message: '"encoding" must be a string' }, + issuer: { isValid: isString, message: '"issuer" must be a string' }, + subject: { isValid: isString, message: '"subject" must be a string' }, + jwtid: { isValid: isString, message: '"jwtid" must be a string' }, + noTimestamp: { isValid: isBoolean, message: '"noTimestamp" must be a boolean' }, + keyid: { isValid: isString, message: '"keyid" must be a string' }, + mutatePayload: { isValid: isBoolean, message: '"mutatePayload" must be a boolean' }, + allowInsecureKeySizes: { isValid: isBoolean, message: '"allowInsecureKeySizes" must be a boolean' }, + allowInvalidAsymmetricKeyTypes: { isValid: isBoolean, message: '"allowInvalidAsymmetricKeyTypes" must be a boolean' } + }; + var registered_claims_schema = { + iat: { isValid: isNumber, message: '"iat" should be a number of seconds' }, + exp: { isValid: isNumber, message: '"exp" should be a number of seconds' }, + nbf: { isValid: isNumber, message: '"nbf" should be a number of seconds' } + }; + function validate(schema, allowUnknown, object, parameterName) { + if (!isPlainObject(object)) { + throw new Error('Expected "' + parameterName + '" to be a plain object.'); + } + Object.keys(object).forEach(function(key) { + const validator = schema[key]; + if (!validator) { + if (!allowUnknown) { + throw new Error('"' + key + '" is not allowed in "' + parameterName + '"'); + } + return; + } + if (!validator.isValid(object[key])) { + throw new Error(validator.message); + } + }); + } + __name(validate, "validate"); + function validateOptions(options) { + return validate(sign_options_schema, false, options, "options"); + } + __name(validateOptions, "validateOptions"); + function validatePayload(payload) { + return validate(registered_claims_schema, true, payload, "payload"); + } + __name(validatePayload, "validatePayload"); + var options_to_payload = { + "audience": "aud", + "issuer": "iss", + "subject": "sub", + "jwtid": "jti" + }; + var options_for_objects = [ + "expiresIn", + "notBefore", + "noTimestamp", + "audience", + "issuer", + "subject", + "jwtid" + ]; + module2.exports = function(payload, secretOrPrivateKey, options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } else { + options = options || {}; + } + const isObjectPayload = typeof payload === "object" && !Buffer.isBuffer(payload); + const header = Object.assign({ + alg: options.algorithm || "HS256", + typ: isObjectPayload ? "JWT" : void 0, + kid: options.keyid + }, options.header); + function failure(err) { + if (callback) { + return callback(err); + } + throw err; + } + __name(failure, "failure"); + if (!secretOrPrivateKey && options.algorithm !== "none") { + return failure(new Error("secretOrPrivateKey must have a value")); + } + if (secretOrPrivateKey != null && !(secretOrPrivateKey instanceof KeyObject)) { + try { + secretOrPrivateKey = createPrivateKey(secretOrPrivateKey); + } catch (_) { + try { + secretOrPrivateKey = createSecretKey(typeof secretOrPrivateKey === "string" ? Buffer.from(secretOrPrivateKey) : secretOrPrivateKey); + } catch (_2) { + return failure(new Error("secretOrPrivateKey is not valid key material")); + } + } + } + if (header.alg.startsWith("HS") && secretOrPrivateKey.type !== "secret") { + return failure(new Error(`secretOrPrivateKey must be a symmetric key when using ${header.alg}`)); + } else if (/^(?:RS|PS|ES)/.test(header.alg)) { + if (secretOrPrivateKey.type !== "private") { + return failure(new Error(`secretOrPrivateKey must be an asymmetric key when using ${header.alg}`)); + } + if (!options.allowInsecureKeySizes && !header.alg.startsWith("ES") && secretOrPrivateKey.asymmetricKeyDetails !== void 0 && //KeyObject.asymmetricKeyDetails is supported in Node 15+ + secretOrPrivateKey.asymmetricKeyDetails.modulusLength < 2048) { + return failure(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`)); + } + } + if (typeof payload === "undefined") { + return failure(new Error("payload is required")); + } else if (isObjectPayload) { + try { + validatePayload(payload); + } catch (error) { + return failure(error); + } + if (!options.mutatePayload) { + payload = Object.assign({}, payload); + } + } else { + const invalid_options = options_for_objects.filter(function(opt) { + return typeof options[opt] !== "undefined"; + }); + if (invalid_options.length > 0) { + return failure(new Error("invalid " + invalid_options.join(",") + " option for " + typeof payload + " payload")); + } + } + if (typeof payload.exp !== "undefined" && typeof options.expiresIn !== "undefined") { + return failure(new Error('Bad "options.expiresIn" option the payload already has an "exp" property.')); + } + if (typeof payload.nbf !== "undefined" && typeof options.notBefore !== "undefined") { + return failure(new Error('Bad "options.notBefore" option the payload already has an "nbf" property.')); + } + try { + validateOptions(options); + } catch (error) { + return failure(error); + } + if (!options.allowInvalidAsymmetricKeyTypes) { + try { + validateAsymmetricKey(header.alg, secretOrPrivateKey); + } catch (error) { + return failure(error); + } + } + const timestamp = payload.iat || Math.floor(Date.now() / 1e3); + if (options.noTimestamp) { + delete payload.iat; + } else if (isObjectPayload) { + payload.iat = timestamp; + } + if (typeof options.notBefore !== "undefined") { + try { + payload.nbf = timespan(options.notBefore, timestamp); + } catch (err) { + return failure(err); + } + if (typeof payload.nbf === "undefined") { + return failure(new Error('"notBefore" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); + } + } + if (typeof options.expiresIn !== "undefined" && typeof payload === "object") { + try { + payload.exp = timespan(options.expiresIn, timestamp); + } catch (err) { + return failure(err); + } + if (typeof payload.exp === "undefined") { + return failure(new Error('"expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60')); + } + } + Object.keys(options_to_payload).forEach(function(key) { + const claim = options_to_payload[key]; + if (typeof options[key] !== "undefined") { + if (typeof payload[claim] !== "undefined") { + return failure(new Error('Bad "options.' + key + '" option. The payload already has an "' + claim + '" property.')); + } + payload[claim] = options[key]; + } + }); + const encoding = options.encoding || "utf8"; + if (typeof callback === "function") { + callback = callback && once(callback); + jws.createSign({ + header, + privateKey: secretOrPrivateKey, + payload, + encoding + }).once("error", callback).once("done", function(signature) { + if (!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) { + return callback(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`)); + } + callback(null, signature); + }); + } else { + let signature = jws.sign({ header, payload, secret: secretOrPrivateKey, encoding }); + if (!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) { + throw new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`); + } + return signature; + } + }; + } +}); + +// node_modules/jsonwebtoken/index.js +var require_jsonwebtoken = __commonJS({ + "node_modules/jsonwebtoken/index.js"(exports2, module2) { + module2.exports = { + decode: require_decode(), + verify: require_verify(), + sign: require_sign2(), + JsonWebTokenError: require_JsonWebTokenError(), + NotBeforeError: require_NotBeforeError(), + TokenExpiredError: require_TokenExpiredError() + }; + } +}); + +// node_modules/@nestjs/jwt/dist/jwt.service.js +var require_jwt_service = __commonJS({ + "node_modules/@nestjs/jwt/dist/jwt.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.JwtService = void 0; + var common_12 = require_common(); + var jwt = require_jsonwebtoken(); + var interfaces_1 = require_interfaces9(); + var jwt_constants_1 = require_jwt_constants(); + var jwt_errors_1 = require_jwt_errors(); + var JwtService = class JwtService { + static { + __name(this, "JwtService"); + } + constructor(options = {}) { + this.options = options; + this.logger = new common_12.Logger("JwtService"); + } + sign(payload, options) { + const signOptions = this.mergeJwtOptions({ ...options }, "signOptions"); + const secret = this.getSecretKey(payload, options, "privateKey", interfaces_1.JwtSecretRequestType.SIGN); + if (secret instanceof Promise) { + secret.catch(() => { + }); + this.logger.warn('For async version of "secretOrKeyProvider", please use "signAsync".'); + throw new jwt_errors_1.WrongSecretProviderError(); + } + const allowedSignOptKeys = ["secret", "privateKey"]; + const signOptKeys = Object.keys(signOptions); + if (typeof payload === "string" && signOptKeys.some((k) => !allowedSignOptKeys.includes(k))) { + throw new Error("Payload as string is not allowed with the following sign options: " + signOptKeys.join(", ")); + } + return jwt.sign(payload, secret, signOptions); + } + signAsync(payload, options) { + const signOptions = this.mergeJwtOptions({ ...options }, "signOptions"); + const secret = this.getSecretKey(payload, options, "privateKey", interfaces_1.JwtSecretRequestType.SIGN); + const allowedSignOptKeys = ["secret", "privateKey"]; + const signOptKeys = Object.keys(signOptions); + if (typeof payload === "string" && signOptKeys.some((k) => !allowedSignOptKeys.includes(k))) { + throw new Error("Payload as string is not allowed with the following sign options: " + signOptKeys.join(", ")); + } + return new Promise((resolve, reject) => Promise.resolve().then(() => secret).then((scrt) => { + jwt.sign(payload, scrt, signOptions, (err, encoded) => err ? reject(err) : resolve(encoded)); + })); + } + verify(token, options) { + const verifyOptions = this.mergeJwtOptions({ ...options }, "verifyOptions"); + const secret = this.getSecretKey(token, options, "publicKey", interfaces_1.JwtSecretRequestType.VERIFY); + if (secret instanceof Promise) { + secret.catch(() => { + }); + this.logger.warn('For async version of "secretOrKeyProvider", please use "verifyAsync".'); + throw new jwt_errors_1.WrongSecretProviderError(); + } + return jwt.verify(token, secret, verifyOptions); + } + verifyAsync(token, options) { + const verifyOptions = this.mergeJwtOptions({ ...options }, "verifyOptions"); + const secret = this.getSecretKey(token, options, "publicKey", interfaces_1.JwtSecretRequestType.VERIFY); + return new Promise((resolve, reject) => Promise.resolve().then(() => secret).then((scrt) => { + jwt.verify(token, scrt, verifyOptions, (err, decoded) => err ? reject(err) : resolve(decoded)); + }).catch(reject)); + } + decode(token, options) { + return jwt.decode(token, options); + } + mergeJwtOptions(options, key) { + delete options.secret; + if (key === "signOptions") { + delete options.privateKey; + } else { + delete options.publicKey; + } + return options ? { ...this.options[key] || {}, ...options } : this.options[key]; + } + overrideSecretFromOptions(secret) { + if (this.options.secretOrPrivateKey) { + this.logger.warn(`"secretOrPrivateKey" has been deprecated, please use the new explicit "secret" or use "secretOrKeyProvider" or "privateKey"/"publicKey" exclusively.`); + secret = this.options.secretOrPrivateKey; + } + return secret; + } + getSecretKey(token, options, key, secretRequestType) { + const secret = this.options.secretOrKeyProvider ? this.options.secretOrKeyProvider(secretRequestType, token, options) : options?.secret || this.options.secret || (key === "privateKey" ? options?.privateKey || this.options.privateKey : options?.publicKey || this.options.publicKey) || this.options[key]; + return secret instanceof Promise ? secret.then((sec) => this.overrideSecretFromOptions(sec)) : this.overrideSecretFromOptions(secret); + } + }; + exports2.JwtService = JwtService; + exports2.JwtService = JwtService = __decorate2([ + (0, common_12.Injectable)(), + __param2(0, (0, common_12.Optional)()), + __param2(0, (0, common_12.Inject)(jwt_constants_1.JWT_MODULE_OPTIONS)), + __metadata2("design:paramtypes", [Object]) + ], JwtService); + } +}); + +// node_modules/@nestjs/jwt/dist/jwt.module.js +var require_jwt_module = __commonJS({ + "node_modules/@nestjs/jwt/dist/jwt.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var JwtModule_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.JwtModule = void 0; + var common_12 = require_common(); + var jwt_constants_1 = require_jwt_constants(); + var jwt_providers_1 = require_jwt_providers(); + var jwt_service_1 = require_jwt_service(); + var JwtModule = JwtModule_1 = class JwtModule { + static { + __name(this, "JwtModule"); + } + static register(options) { + return { + module: JwtModule_1, + global: options.global, + providers: (0, jwt_providers_1.createJwtProvider)(options) + }; + } + static registerAsync(options) { + return { + module: JwtModule_1, + global: options.global, + imports: options.imports || [], + providers: [ + ...this.createAsyncProviders(options), + ...options.extraProviders ?? [] + ] + }; + } + static createAsyncProviders(options) { + if (options.useExisting || options.useFactory) { + return [this.createAsyncOptionsProvider(options)]; + } + return [ + this.createAsyncOptionsProvider(options), + { + provide: options.useClass, + useClass: options.useClass + } + ]; + } + static createAsyncOptionsProvider(options) { + if (options.useFactory) { + return { + provide: jwt_constants_1.JWT_MODULE_OPTIONS, + useFactory: options.useFactory, + inject: options.inject || [] + }; + } + return { + provide: jwt_constants_1.JWT_MODULE_OPTIONS, + useFactory: /* @__PURE__ */ __name(async (optionsFactory) => await optionsFactory.createJwtOptions(), "useFactory"), + inject: [options.useExisting || options.useClass] + }; + } + }; + exports2.JwtModule = JwtModule; + exports2.JwtModule = JwtModule = JwtModule_1 = __decorate2([ + (0, common_12.Module)({ + providers: [jwt_service_1.JwtService], + exports: [jwt_service_1.JwtService] + }) + ], JwtModule); + } +}); + +// node_modules/@nestjs/jwt/dist/index.js +var require_dist10 = __commonJS({ + "node_modules/@nestjs/jwt/dist/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __exportStar2 = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding2(exports3, m, p); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.JsonWebTokenError = exports2.NotBeforeError = exports2.TokenExpiredError = void 0; + __exportStar2(require_interfaces9(), exports2); + __exportStar2(require_jwt_errors(), exports2); + __exportStar2(require_jwt_module(), exports2); + __exportStar2(require_jwt_service(), exports2); + var jsonwebtoken_1 = require_jsonwebtoken(); + Object.defineProperty(exports2, "TokenExpiredError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return jsonwebtoken_1.TokenExpiredError; + }, "get") }); + Object.defineProperty(exports2, "NotBeforeError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return jsonwebtoken_1.NotBeforeError; + }, "get") }); + Object.defineProperty(exports2, "JsonWebTokenError", { enumerable: true, get: /* @__PURE__ */ __name(function() { + return jsonwebtoken_1.JsonWebTokenError; + }, "get") }); + } +}); + +// node_modules/@nestjs/jwt/index.js +var require_jwt = __commonJS({ + "node_modules/@nestjs/jwt/index.js"(exports2) { + "use strict"; + function __export2(m) { + for (var p in m) if (!exports2.hasOwnProperty(p)) exports2[p] = m[p]; + } + __name(__export2, "__export"); + exports2.__esModule = true; + __export2(require_dist10()); + } +}); + +// node_modules/bcryptjs/umd/index.js +var require_umd = __commonJS({ + "node_modules/bcryptjs/umd/index.js"(exports2, module2) { + (function(global2, factory) { + function preferDefault(exports3) { + return exports3.default || exports3; + } + __name(preferDefault, "preferDefault"); + if (typeof define === "function" && define.amd) { + define(["crypto"], function(_crypto) { + var exports3 = {}; + factory(exports3, _crypto); + return preferDefault(exports3); + }); + } else if (typeof exports2 === "object") { + factory(exports2, require("crypto")); + if (typeof module2 === "object") module2.exports = preferDefault(exports2); + } else { + (function() { + var exports3 = {}; + factory(exports3, global2.crypto); + global2.bcrypt = preferDefault(exports3); + })(); + } + })( + typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : exports2, + function(_exports, _crypto) { + "use strict"; + Object.defineProperty(_exports, "__esModule", { + value: true + }); + _exports.compare = compare; + _exports.compareSync = compareSync; + _exports.decodeBase64 = decodeBase64; + _exports.default = void 0; + _exports.encodeBase64 = encodeBase64; + _exports.genSalt = genSalt; + _exports.genSaltSync = genSaltSync; + _exports.getRounds = getRounds; + _exports.getSalt = getSalt; + _exports.hash = hash; + _exports.hashSync = hashSync; + _exports.setRandomFallback = setRandomFallback; + _exports.truncates = truncates; + _crypto = _interopRequireDefault(_crypto); + function _interopRequireDefault(e) { + return e && e.__esModule ? e : { default: e }; + } + __name(_interopRequireDefault, "_interopRequireDefault"); + var randomFallback = null; + function randomBytes(len) { + try { + return crypto.getRandomValues(new Uint8Array(len)); + } catch { + } + try { + return _crypto.default.randomBytes(len); + } catch { + } + if (!randomFallback) { + throw Error( + "Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative" + ); + } + return randomFallback(len); + } + __name(randomBytes, "randomBytes"); + function setRandomFallback(random) { + randomFallback = random; + } + __name(setRandomFallback, "setRandomFallback"); + function genSaltSync(rounds, seed_length) { + rounds = rounds || GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof rounds !== "number") + throw Error( + "Illegal arguments: " + typeof rounds + ", " + typeof seed_length + ); + if (rounds < 4) rounds = 4; + else if (rounds > 31) rounds = 31; + var salt = []; + salt.push("$2b$"); + if (rounds < 10) salt.push("0"); + salt.push(rounds.toString()); + salt.push("$"); + salt.push(base64_encode(randomBytes(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); + return salt.join(""); + } + __name(genSaltSync, "genSaltSync"); + function genSalt(rounds, seed_length, callback) { + if (typeof seed_length === "function") + callback = seed_length, seed_length = void 0; + if (typeof rounds === "function") + callback = rounds, rounds = void 0; + if (typeof rounds === "undefined") rounds = GENSALT_DEFAULT_LOG2_ROUNDS; + else if (typeof rounds !== "number") + throw Error("illegal arguments: " + typeof rounds); + function _async(callback2) { + nextTick(function() { + try { + callback2(null, genSaltSync(rounds)); + } catch (err) { + callback2(err); + } + }); + } + __name(_async, "_async"); + if (callback) { + if (typeof callback !== "function") + throw Error("Illegal callback: " + typeof callback); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); + } + __name(genSalt, "genSalt"); + function hashSync(password, salt) { + if (typeof salt === "undefined") salt = GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof salt === "number") salt = genSaltSync(salt); + if (typeof password !== "string" || typeof salt !== "string") + throw Error( + "Illegal arguments: " + typeof password + ", " + typeof salt + ); + return _hash(password, salt); + } + __name(hashSync, "hashSync"); + function hash(password, salt, callback, progressCallback) { + function _async(callback2) { + if (typeof password === "string" && typeof salt === "number") + genSalt(salt, function(err, salt2) { + _hash(password, salt2, callback2, progressCallback); + }); + else if (typeof password === "string" && typeof salt === "string") + _hash(password, salt, callback2, progressCallback); + else + nextTick( + callback2.bind( + this, + Error( + "Illegal arguments: " + typeof password + ", " + typeof salt + ) + ) + ); + } + __name(_async, "_async"); + if (callback) { + if (typeof callback !== "function") + throw Error("Illegal callback: " + typeof callback); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); + } + __name(hash, "hash"); + function safeStringCompare(known, unknown) { + var diff = known.length ^ unknown.length; + for (var i = 0; i < known.length; ++i) { + diff |= known.charCodeAt(i) ^ unknown.charCodeAt(i); + } + return diff === 0; + } + __name(safeStringCompare, "safeStringCompare"); + function compareSync(password, hash2) { + if (typeof password !== "string" || typeof hash2 !== "string") + throw Error( + "Illegal arguments: " + typeof password + ", " + typeof hash2 + ); + if (hash2.length !== 60) return false; + return safeStringCompare( + hashSync(password, hash2.substring(0, hash2.length - 31)), + hash2 + ); + } + __name(compareSync, "compareSync"); + function compare(password, hashValue, callback, progressCallback) { + function _async(callback2) { + if (typeof password !== "string" || typeof hashValue !== "string") { + nextTick( + callback2.bind( + this, + Error( + "Illegal arguments: " + typeof password + ", " + typeof hashValue + ) + ) + ); + return; + } + if (hashValue.length !== 60) { + nextTick(callback2.bind(this, null, false)); + return; + } + hash( + password, + hashValue.substring(0, 29), + function(err, comp) { + if (err) callback2(err); + else callback2(null, safeStringCompare(comp, hashValue)); + }, + progressCallback + ); + } + __name(_async, "_async"); + if (callback) { + if (typeof callback !== "function") + throw Error("Illegal callback: " + typeof callback); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); + } + __name(compare, "compare"); + function getRounds(hash2) { + if (typeof hash2 !== "string") + throw Error("Illegal arguments: " + typeof hash2); + return parseInt(hash2.split("$")[2], 10); + } + __name(getRounds, "getRounds"); + function getSalt(hash2) { + if (typeof hash2 !== "string") + throw Error("Illegal arguments: " + typeof hash2); + if (hash2.length !== 60) + throw Error("Illegal hash length: " + hash2.length + " != 60"); + return hash2.substring(0, 29); + } + __name(getSalt, "getSalt"); + function truncates(password) { + if (typeof password !== "string") + throw Error("Illegal arguments: " + typeof password); + return utf8Length(password) > 72; + } + __name(truncates, "truncates"); + var nextTick = typeof setImmediate === "function" ? setImmediate : typeof scheduler === "object" && typeof scheduler.postTask === "function" ? scheduler.postTask.bind(scheduler) : setTimeout; + function utf8Length(string) { + var len = 0, c = 0; + for (var i = 0; i < string.length; ++i) { + c = string.charCodeAt(i); + if (c < 128) len += 1; + else if (c < 2048) len += 2; + else if ((c & 64512) === 55296 && (string.charCodeAt(i + 1) & 64512) === 56320) { + ++i; + len += 4; + } else len += 3; + } + return len; + } + __name(utf8Length, "utf8Length"); + function utf8Array(string) { + var offset = 0, c1, c2; + var buffer = new Array(utf8Length(string)); + for (var i = 0, k = string.length; i < k; ++i) { + c1 = string.charCodeAt(i); + if (c1 < 128) { + buffer[offset++] = c1; + } else if (c1 < 2048) { + buffer[offset++] = c1 >> 6 | 192; + buffer[offset++] = c1 & 63 | 128; + } else if ((c1 & 64512) === 55296 && ((c2 = string.charCodeAt(i + 1)) & 64512) === 56320) { + c1 = 65536 + ((c1 & 1023) << 10) + (c2 & 1023); + ++i; + buffer[offset++] = c1 >> 18 | 240; + buffer[offset++] = c1 >> 12 & 63 | 128; + buffer[offset++] = c1 >> 6 & 63 | 128; + buffer[offset++] = c1 & 63 | 128; + } else { + buffer[offset++] = c1 >> 12 | 224; + buffer[offset++] = c1 >> 6 & 63 | 128; + buffer[offset++] = c1 & 63 | 128; + } + } + return buffer; + } + __name(utf8Array, "utf8Array"); + var BASE64_CODE = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split( + "" + ); + var BASE64_INDEX = [ + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + 1, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + -1, + -1, + -1, + -1, + -1, + -1, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + -1, + -1, + -1, + -1, + -1 + ]; + function base64_encode(b, len) { + var off = 0, rs = [], c1, c2; + if (len <= 0 || len > b.length) throw Error("Illegal len: " + len); + while (off < len) { + c1 = b[off++] & 255; + rs.push(BASE64_CODE[c1 >> 2 & 63]); + c1 = (c1 & 3) << 4; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 63]); + break; + } + c2 = b[off++] & 255; + c1 |= c2 >> 4 & 15; + rs.push(BASE64_CODE[c1 & 63]); + c1 = (c2 & 15) << 2; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 63]); + break; + } + c2 = b[off++] & 255; + c1 |= c2 >> 6 & 3; + rs.push(BASE64_CODE[c1 & 63]); + rs.push(BASE64_CODE[c2 & 63]); + } + return rs.join(""); + } + __name(base64_encode, "base64_encode"); + function base64_decode(s, len) { + var off = 0, slen = s.length, olen = 0, rs = [], c1, c2, c3, c4, o, code; + if (len <= 0) throw Error("Illegal len: " + len); + while (off < slen - 1 && olen < len) { + code = s.charCodeAt(off++); + c1 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + code = s.charCodeAt(off++); + c2 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c1 == -1 || c2 == -1) break; + o = c1 << 2 >>> 0; + o |= (c2 & 48) >> 4; + rs.push(String.fromCharCode(o)); + if (++olen >= len || off >= slen) break; + code = s.charCodeAt(off++); + c3 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c3 == -1) break; + o = (c2 & 15) << 4 >>> 0; + o |= (c3 & 60) >> 2; + rs.push(String.fromCharCode(o)); + if (++olen >= len || off >= slen) break; + code = s.charCodeAt(off++); + c4 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + o = (c3 & 3) << 6 >>> 0; + o |= c4; + rs.push(String.fromCharCode(o)); + ++olen; + } + var res = []; + for (off = 0; off < olen; off++) res.push(rs[off].charCodeAt(0)); + return res; + } + __name(base64_decode, "base64_decode"); + var BCRYPT_SALT_LEN = 16; + var GENSALT_DEFAULT_LOG2_ROUNDS = 10; + var BLOWFISH_NUM_ROUNDS = 16; + var MAX_EXECUTION_TIME = 100; + var P_ORIG = [ + 608135816, + 2242054355, + 320440878, + 57701188, + 2752067618, + 698298832, + 137296536, + 3964562569, + 1160258022, + 953160567, + 3193202383, + 887688300, + 3232508343, + 3380367581, + 1065670069, + 3041331479, + 2450970073, + 2306472731 + ]; + var S_ORIG = [ + 3509652390, + 2564797868, + 805139163, + 3491422135, + 3101798381, + 1780907670, + 3128725573, + 4046225305, + 614570311, + 3012652279, + 134345442, + 2240740374, + 1667834072, + 1901547113, + 2757295779, + 4103290238, + 227898511, + 1921955416, + 1904987480, + 2182433518, + 2069144605, + 3260701109, + 2620446009, + 720527379, + 3318853667, + 677414384, + 3393288472, + 3101374703, + 2390351024, + 1614419982, + 1822297739, + 2954791486, + 3608508353, + 3174124327, + 2024746970, + 1432378464, + 3864339955, + 2857741204, + 1464375394, + 1676153920, + 1439316330, + 715854006, + 3033291828, + 289532110, + 2706671279, + 2087905683, + 3018724369, + 1668267050, + 732546397, + 1947742710, + 3462151702, + 2609353502, + 2950085171, + 1814351708, + 2050118529, + 680887927, + 999245976, + 1800124847, + 3300911131, + 1713906067, + 1641548236, + 4213287313, + 1216130144, + 1575780402, + 4018429277, + 3917837745, + 3693486850, + 3949271944, + 596196993, + 3549867205, + 258830323, + 2213823033, + 772490370, + 2760122372, + 1774776394, + 2652871518, + 566650946, + 4142492826, + 1728879713, + 2882767088, + 1783734482, + 3629395816, + 2517608232, + 2874225571, + 1861159788, + 326777828, + 3124490320, + 2130389656, + 2716951837, + 967770486, + 1724537150, + 2185432712, + 2364442137, + 1164943284, + 2105845187, + 998989502, + 3765401048, + 2244026483, + 1075463327, + 1455516326, + 1322494562, + 910128902, + 469688178, + 1117454909, + 936433444, + 3490320968, + 3675253459, + 1240580251, + 122909385, + 2157517691, + 634681816, + 4142456567, + 3825094682, + 3061402683, + 2540495037, + 79693498, + 3249098678, + 1084186820, + 1583128258, + 426386531, + 1761308591, + 1047286709, + 322548459, + 995290223, + 1845252383, + 2603652396, + 3431023940, + 2942221577, + 3202600964, + 3727903485, + 1712269319, + 422464435, + 3234572375, + 1170764815, + 3523960633, + 3117677531, + 1434042557, + 442511882, + 3600875718, + 1076654713, + 1738483198, + 4213154764, + 2393238008, + 3677496056, + 1014306527, + 4251020053, + 793779912, + 2902807211, + 842905082, + 4246964064, + 1395751752, + 1040244610, + 2656851899, + 3396308128, + 445077038, + 3742853595, + 3577915638, + 679411651, + 2892444358, + 2354009459, + 1767581616, + 3150600392, + 3791627101, + 3102740896, + 284835224, + 4246832056, + 1258075500, + 768725851, + 2589189241, + 3069724005, + 3532540348, + 1274779536, + 3789419226, + 2764799539, + 1660621633, + 3471099624, + 4011903706, + 913787905, + 3497959166, + 737222580, + 2514213453, + 2928710040, + 3937242737, + 1804850592, + 3499020752, + 2949064160, + 2386320175, + 2390070455, + 2415321851, + 4061277028, + 2290661394, + 2416832540, + 1336762016, + 1754252060, + 3520065937, + 3014181293, + 791618072, + 3188594551, + 3933548030, + 2332172193, + 3852520463, + 3043980520, + 413987798, + 3465142937, + 3030929376, + 4245938359, + 2093235073, + 3534596313, + 375366246, + 2157278981, + 2479649556, + 555357303, + 3870105701, + 2008414854, + 3344188149, + 4221384143, + 3956125452, + 2067696032, + 3594591187, + 2921233993, + 2428461, + 544322398, + 577241275, + 1471733935, + 610547355, + 4027169054, + 1432588573, + 1507829418, + 2025931657, + 3646575487, + 545086370, + 48609733, + 2200306550, + 1653985193, + 298326376, + 1316178497, + 3007786442, + 2064951626, + 458293330, + 2589141269, + 3591329599, + 3164325604, + 727753846, + 2179363840, + 146436021, + 1461446943, + 4069977195, + 705550613, + 3059967265, + 3887724982, + 4281599278, + 3313849956, + 1404054877, + 2845806497, + 146425753, + 1854211946, + 1266315497, + 3048417604, + 3681880366, + 3289982499, + 290971e4, + 1235738493, + 2632868024, + 2414719590, + 3970600049, + 1771706367, + 1449415276, + 3266420449, + 422970021, + 1963543593, + 2690192192, + 3826793022, + 1062508698, + 1531092325, + 1804592342, + 2583117782, + 2714934279, + 4024971509, + 1294809318, + 4028980673, + 1289560198, + 2221992742, + 1669523910, + 35572830, + 157838143, + 1052438473, + 1016535060, + 1802137761, + 1753167236, + 1386275462, + 3080475397, + 2857371447, + 1040679964, + 2145300060, + 2390574316, + 1461121720, + 2956646967, + 4031777805, + 4028374788, + 33600511, + 2920084762, + 1018524850, + 629373528, + 3691585981, + 3515945977, + 2091462646, + 2486323059, + 586499841, + 988145025, + 935516892, + 3367335476, + 2599673255, + 2839830854, + 265290510, + 3972581182, + 2759138881, + 3795373465, + 1005194799, + 847297441, + 406762289, + 1314163512, + 1332590856, + 1866599683, + 4127851711, + 750260880, + 613907577, + 1450815602, + 3165620655, + 3734664991, + 3650291728, + 3012275730, + 3704569646, + 1427272223, + 778793252, + 1343938022, + 2676280711, + 2052605720, + 1946737175, + 3164576444, + 3914038668, + 3967478842, + 3682934266, + 1661551462, + 3294938066, + 4011595847, + 840292616, + 3712170807, + 616741398, + 312560963, + 711312465, + 1351876610, + 322626781, + 1910503582, + 271666773, + 2175563734, + 1594956187, + 70604529, + 3617834859, + 1007753275, + 1495573769, + 4069517037, + 2549218298, + 2663038764, + 504708206, + 2263041392, + 3941167025, + 2249088522, + 1514023603, + 1998579484, + 1312622330, + 694541497, + 2582060303, + 2151582166, + 1382467621, + 776784248, + 2618340202, + 3323268794, + 2497899128, + 2784771155, + 503983604, + 4076293799, + 907881277, + 423175695, + 432175456, + 1378068232, + 4145222326, + 3954048622, + 3938656102, + 3820766613, + 2793130115, + 2977904593, + 26017576, + 3274890735, + 3194772133, + 1700274565, + 1756076034, + 4006520079, + 3677328699, + 720338349, + 1533947780, + 354530856, + 688349552, + 3973924725, + 1637815568, + 332179504, + 3949051286, + 53804574, + 2852348879, + 3044236432, + 1282449977, + 3583942155, + 3416972820, + 4006381244, + 1617046695, + 2628476075, + 3002303598, + 1686838959, + 431878346, + 2686675385, + 1700445008, + 1080580658, + 1009431731, + 832498133, + 3223435511, + 2605976345, + 2271191193, + 2516031870, + 1648197032, + 4164389018, + 2548247927, + 300782431, + 375919233, + 238389289, + 3353747414, + 2531188641, + 2019080857, + 1475708069, + 455242339, + 2609103871, + 448939670, + 3451063019, + 1395535956, + 2413381860, + 1841049896, + 1491858159, + 885456874, + 4264095073, + 4001119347, + 1565136089, + 3898914787, + 1108368660, + 540939232, + 1173283510, + 2745871338, + 3681308437, + 4207628240, + 3343053890, + 4016749493, + 1699691293, + 1103962373, + 3625875870, + 2256883143, + 3830138730, + 1031889488, + 3479347698, + 1535977030, + 4236805024, + 3251091107, + 2132092099, + 1774941330, + 1199868427, + 1452454533, + 157007616, + 2904115357, + 342012276, + 595725824, + 1480756522, + 206960106, + 497939518, + 591360097, + 863170706, + 2375253569, + 3596610801, + 1814182875, + 2094937945, + 3421402208, + 1082520231, + 3463918190, + 2785509508, + 435703966, + 3908032597, + 1641649973, + 2842273706, + 3305899714, + 1510255612, + 2148256476, + 2655287854, + 3276092548, + 4258621189, + 236887753, + 3681803219, + 274041037, + 1734335097, + 3815195456, + 3317970021, + 1899903192, + 1026095262, + 4050517792, + 356393447, + 2410691914, + 3873677099, + 3682840055, + 3913112168, + 2491498743, + 4132185628, + 2489919796, + 1091903735, + 1979897079, + 3170134830, + 3567386728, + 3557303409, + 857797738, + 1136121015, + 1342202287, + 507115054, + 2535736646, + 337727348, + 3213592640, + 1301675037, + 2528481711, + 1895095763, + 1721773893, + 3216771564, + 62756741, + 2142006736, + 835421444, + 2531993523, + 1442658625, + 3659876326, + 2882144922, + 676362277, + 1392781812, + 170690266, + 3921047035, + 1759253602, + 3611846912, + 1745797284, + 664899054, + 1329594018, + 3901205900, + 3045908486, + 2062866102, + 2865634940, + 3543621612, + 3464012697, + 1080764994, + 553557557, + 3656615353, + 3996768171, + 991055499, + 499776247, + 1265440854, + 648242737, + 3940784050, + 980351604, + 3713745714, + 1749149687, + 3396870395, + 4211799374, + 3640570775, + 1161844396, + 3125318951, + 1431517754, + 545492359, + 4268468663, + 3499529547, + 1437099964, + 2702547544, + 3433638243, + 2581715763, + 2787789398, + 1060185593, + 1593081372, + 2418618748, + 4260947970, + 69676912, + 2159744348, + 86519011, + 2512459080, + 3838209314, + 1220612927, + 3339683548, + 133810670, + 1090789135, + 1078426020, + 1569222167, + 845107691, + 3583754449, + 4072456591, + 1091646820, + 628848692, + 1613405280, + 3757631651, + 526609435, + 236106946, + 48312990, + 2942717905, + 3402727701, + 1797494240, + 859738849, + 992217954, + 4005476642, + 2243076622, + 3870952857, + 3732016268, + 765654824, + 3490871365, + 2511836413, + 1685915746, + 3888969200, + 1414112111, + 2273134842, + 3281911079, + 4080962846, + 172450625, + 2569994100, + 980381355, + 4109958455, + 2819808352, + 2716589560, + 2568741196, + 3681446669, + 3329971472, + 1835478071, + 660984891, + 3704678404, + 4045999559, + 3422617507, + 3040415634, + 1762651403, + 1719377915, + 3470491036, + 2693910283, + 3642056355, + 3138596744, + 1364962596, + 2073328063, + 1983633131, + 926494387, + 3423689081, + 2150032023, + 4096667949, + 1749200295, + 3328846651, + 309677260, + 2016342300, + 1779581495, + 3079819751, + 111262694, + 1274766160, + 443224088, + 298511866, + 1025883608, + 3806446537, + 1145181785, + 168956806, + 3641502830, + 3584813610, + 1689216846, + 3666258015, + 3200248200, + 1692713982, + 2646376535, + 4042768518, + 1618508792, + 1610833997, + 3523052358, + 4130873264, + 2001055236, + 3610705100, + 2202168115, + 4028541809, + 2961195399, + 1006657119, + 2006996926, + 3186142756, + 1430667929, + 3210227297, + 1314452623, + 4074634658, + 4101304120, + 2273951170, + 1399257539, + 3367210612, + 3027628629, + 1190975929, + 2062231137, + 2333990788, + 2221543033, + 2438960610, + 1181637006, + 548689776, + 2362791313, + 3372408396, + 3104550113, + 3145860560, + 296247880, + 1970579870, + 3078560182, + 3769228297, + 1714227617, + 3291629107, + 3898220290, + 166772364, + 1251581989, + 493813264, + 448347421, + 195405023, + 2709975567, + 677966185, + 3703036547, + 1463355134, + 2715995803, + 1338867538, + 1343315457, + 2802222074, + 2684532164, + 233230375, + 2599980071, + 2000651841, + 3277868038, + 1638401717, + 4028070440, + 3237316320, + 6314154, + 819756386, + 300326615, + 590932579, + 1405279636, + 3267499572, + 3150704214, + 2428286686, + 3959192993, + 3461946742, + 1862657033, + 1266418056, + 963775037, + 2089974820, + 2263052895, + 1917689273, + 448879540, + 3550394620, + 3981727096, + 150775221, + 3627908307, + 1303187396, + 508620638, + 2975983352, + 2726630617, + 1817252668, + 1876281319, + 1457606340, + 908771278, + 3720792119, + 3617206836, + 2455994898, + 1729034894, + 1080033504, + 976866871, + 3556439503, + 2881648439, + 1522871579, + 1555064734, + 1336096578, + 3548522304, + 2579274686, + 3574697629, + 3205460757, + 3593280638, + 3338716283, + 3079412587, + 564236357, + 2993598910, + 1781952180, + 1464380207, + 3163844217, + 3332601554, + 1699332808, + 1393555694, + 1183702653, + 3581086237, + 1288719814, + 691649499, + 2847557200, + 2895455976, + 3193889540, + 2717570544, + 1781354906, + 1676643554, + 2592534050, + 3230253752, + 1126444790, + 2770207658, + 2633158820, + 2210423226, + 2615765581, + 2414155088, + 3127139286, + 673620729, + 2805611233, + 1269405062, + 4015350505, + 3341807571, + 4149409754, + 1057255273, + 2012875353, + 2162469141, + 2276492801, + 2601117357, + 993977747, + 3918593370, + 2654263191, + 753973209, + 36408145, + 2530585658, + 25011837, + 3520020182, + 2088578344, + 530523599, + 2918365339, + 1524020338, + 1518925132, + 3760827505, + 3759777254, + 1202760957, + 3985898139, + 3906192525, + 674977740, + 4174734889, + 2031300136, + 2019492241, + 3983892565, + 4153806404, + 3822280332, + 352677332, + 2297720250, + 60907813, + 90501309, + 3286998549, + 1016092578, + 2535922412, + 2839152426, + 457141659, + 509813237, + 4120667899, + 652014361, + 1966332200, + 2975202805, + 55981186, + 2327461051, + 676427537, + 3255491064, + 2882294119, + 3433927263, + 1307055953, + 942726286, + 933058658, + 2468411793, + 3933900994, + 4215176142, + 1361170020, + 2001714738, + 2830558078, + 3274259782, + 1222529897, + 1679025792, + 2729314320, + 3714953764, + 1770335741, + 151462246, + 3013232138, + 1682292957, + 1483529935, + 471910574, + 1539241949, + 458788160, + 3436315007, + 1807016891, + 3718408830, + 978976581, + 1043663428, + 3165965781, + 1927990952, + 4200891579, + 2372276910, + 3208408903, + 3533431907, + 1412390302, + 2931980059, + 4132332400, + 1947078029, + 3881505623, + 4168226417, + 2941484381, + 1077988104, + 1320477388, + 886195818, + 18198404, + 3786409e3, + 2509781533, + 112762804, + 3463356488, + 1866414978, + 891333506, + 18488651, + 661792760, + 1628790961, + 3885187036, + 3141171499, + 876946877, + 2693282273, + 1372485963, + 791857591, + 2686433993, + 3759982718, + 3167212022, + 3472953795, + 2716379847, + 445679433, + 3561995674, + 3504004811, + 3574258232, + 54117162, + 3331405415, + 2381918588, + 3769707343, + 4154350007, + 1140177722, + 4074052095, + 668550556, + 3214352940, + 367459370, + 261225585, + 2610173221, + 4209349473, + 3468074219, + 3265815641, + 314222801, + 3066103646, + 3808782860, + 282218597, + 3406013506, + 3773591054, + 379116347, + 1285071038, + 846784868, + 2669647154, + 3771962079, + 3550491691, + 2305946142, + 453669953, + 1268987020, + 3317592352, + 3279303384, + 3744833421, + 2610507566, + 3859509063, + 266596637, + 3847019092, + 517658769, + 3462560207, + 3443424879, + 370717030, + 4247526661, + 2224018117, + 4143653529, + 4112773975, + 2788324899, + 2477274417, + 1456262402, + 2901442914, + 1517677493, + 1846949527, + 2295493580, + 3734397586, + 2176403920, + 1280348187, + 1908823572, + 3871786941, + 846861322, + 1172426758, + 3287448474, + 3383383037, + 1655181056, + 3139813346, + 901632758, + 1897031941, + 2986607138, + 3066810236, + 3447102507, + 1393639104, + 373351379, + 950779232, + 625454576, + 3124240540, + 4148612726, + 2007998917, + 544563296, + 2244738638, + 2330496472, + 2058025392, + 1291430526, + 424198748, + 50039436, + 29584100, + 3605783033, + 2429876329, + 2791104160, + 1057563949, + 3255363231, + 3075367218, + 3463963227, + 1469046755, + 985887462 + ]; + var C_ORIG = [ + 1332899944, + 1700884034, + 1701343084, + 1684370003, + 1668446532, + 1869963892 + ]; + function _encipher(lr, off, P, S) { + var n, l = lr[off], r = lr[off + 1]; + l ^= P[0]; + n = S[l >>> 24]; + n += S[256 | l >> 16 & 255]; + n ^= S[512 | l >> 8 & 255]; + n += S[768 | l & 255]; + r ^= n ^ P[1]; + n = S[r >>> 24]; + n += S[256 | r >> 16 & 255]; + n ^= S[512 | r >> 8 & 255]; + n += S[768 | r & 255]; + l ^= n ^ P[2]; + n = S[l >>> 24]; + n += S[256 | l >> 16 & 255]; + n ^= S[512 | l >> 8 & 255]; + n += S[768 | l & 255]; + r ^= n ^ P[3]; + n = S[r >>> 24]; + n += S[256 | r >> 16 & 255]; + n ^= S[512 | r >> 8 & 255]; + n += S[768 | r & 255]; + l ^= n ^ P[4]; + n = S[l >>> 24]; + n += S[256 | l >> 16 & 255]; + n ^= S[512 | l >> 8 & 255]; + n += S[768 | l & 255]; + r ^= n ^ P[5]; + n = S[r >>> 24]; + n += S[256 | r >> 16 & 255]; + n ^= S[512 | r >> 8 & 255]; + n += S[768 | r & 255]; + l ^= n ^ P[6]; + n = S[l >>> 24]; + n += S[256 | l >> 16 & 255]; + n ^= S[512 | l >> 8 & 255]; + n += S[768 | l & 255]; + r ^= n ^ P[7]; + n = S[r >>> 24]; + n += S[256 | r >> 16 & 255]; + n ^= S[512 | r >> 8 & 255]; + n += S[768 | r & 255]; + l ^= n ^ P[8]; + n = S[l >>> 24]; + n += S[256 | l >> 16 & 255]; + n ^= S[512 | l >> 8 & 255]; + n += S[768 | l & 255]; + r ^= n ^ P[9]; + n = S[r >>> 24]; + n += S[256 | r >> 16 & 255]; + n ^= S[512 | r >> 8 & 255]; + n += S[768 | r & 255]; + l ^= n ^ P[10]; + n = S[l >>> 24]; + n += S[256 | l >> 16 & 255]; + n ^= S[512 | l >> 8 & 255]; + n += S[768 | l & 255]; + r ^= n ^ P[11]; + n = S[r >>> 24]; + n += S[256 | r >> 16 & 255]; + n ^= S[512 | r >> 8 & 255]; + n += S[768 | r & 255]; + l ^= n ^ P[12]; + n = S[l >>> 24]; + n += S[256 | l >> 16 & 255]; + n ^= S[512 | l >> 8 & 255]; + n += S[768 | l & 255]; + r ^= n ^ P[13]; + n = S[r >>> 24]; + n += S[256 | r >> 16 & 255]; + n ^= S[512 | r >> 8 & 255]; + n += S[768 | r & 255]; + l ^= n ^ P[14]; + n = S[l >>> 24]; + n += S[256 | l >> 16 & 255]; + n ^= S[512 | l >> 8 & 255]; + n += S[768 | l & 255]; + r ^= n ^ P[15]; + n = S[r >>> 24]; + n += S[256 | r >> 16 & 255]; + n ^= S[512 | r >> 8 & 255]; + n += S[768 | r & 255]; + l ^= n ^ P[16]; + lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1]; + lr[off + 1] = l; + return lr; + } + __name(_encipher, "_encipher"); + function _streamtoword(data, offp) { + for (var i = 0, word = 0; i < 4; ++i) + word = word << 8 | data[offp] & 255, offp = (offp + 1) % data.length; + return { + key: word, + offp + }; + } + __name(_streamtoword, "_streamtoword"); + function _key(key, P, S) { + var offset = 0, lr = [0, 0], plen = P.length, slen = S.length, sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offset), offset = sw.offp, P[i] = P[i] ^ sw.key; + for (i = 0; i < plen; i += 2) + lr = _encipher(lr, 0, P, S), P[i] = lr[0], P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + lr = _encipher(lr, 0, P, S), S[i] = lr[0], S[i + 1] = lr[1]; + } + __name(_key, "_key"); + function _ekskey(data, key, P, S) { + var offp = 0, lr = [0, 0], plen = P.length, slen = S.length, sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offp), offp = sw.offp, P[i] = P[i] ^ sw.key; + offp = 0; + for (i = 0; i < plen; i += 2) + sw = _streamtoword(data, offp), offp = sw.offp, lr[0] ^= sw.key, sw = _streamtoword(data, offp), offp = sw.offp, lr[1] ^= sw.key, lr = _encipher(lr, 0, P, S), P[i] = lr[0], P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + sw = _streamtoword(data, offp), offp = sw.offp, lr[0] ^= sw.key, sw = _streamtoword(data, offp), offp = sw.offp, lr[1] ^= sw.key, lr = _encipher(lr, 0, P, S), S[i] = lr[0], S[i + 1] = lr[1]; + } + __name(_ekskey, "_ekskey"); + function _crypt(b, salt, rounds, callback, progressCallback) { + var cdata = C_ORIG.slice(), clen = cdata.length, err; + if (rounds < 4 || rounds > 31) { + err = Error("Illegal number of rounds (4-31): " + rounds); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else throw err; + } + if (salt.length !== BCRYPT_SALT_LEN) { + err = Error( + "Illegal salt length: " + salt.length + " != " + BCRYPT_SALT_LEN + ); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else throw err; + } + rounds = 1 << rounds >>> 0; + var P, S, i = 0, j; + if (typeof Int32Array === "function") { + P = new Int32Array(P_ORIG); + S = new Int32Array(S_ORIG); + } else { + P = P_ORIG.slice(); + S = S_ORIG.slice(); + } + _ekskey(salt, b, P, S); + function next() { + if (progressCallback) progressCallback(i / rounds); + if (i < rounds) { + var start = Date.now(); + for (; i < rounds; ) { + i = i + 1; + _key(b, P, S); + _key(salt, P, S); + if (Date.now() - start > MAX_EXECUTION_TIME) break; + } + } else { + for (i = 0; i < 64; i++) + for (j = 0; j < clen >> 1; j++) _encipher(cdata, j << 1, P, S); + var ret = []; + for (i = 0; i < clen; i++) + ret.push((cdata[i] >> 24 & 255) >>> 0), ret.push((cdata[i] >> 16 & 255) >>> 0), ret.push((cdata[i] >> 8 & 255) >>> 0), ret.push((cdata[i] & 255) >>> 0); + if (callback) { + callback(null, ret); + return; + } else return ret; + } + if (callback) nextTick(next); + } + __name(next, "next"); + if (typeof callback !== "undefined") { + next(); + } else { + var res; + while (true) + if (typeof (res = next()) !== "undefined") return res || []; + } + } + __name(_crypt, "_crypt"); + function _hash(password, salt, callback, progressCallback) { + var err; + if (typeof password !== "string" || typeof salt !== "string") { + err = Error("Invalid string / salt: Not a string"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else throw err; + } + var minor, offset; + if (salt.charAt(0) !== "$" || salt.charAt(1) !== "2") { + err = Error("Invalid salt version: " + salt.substring(0, 2)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else throw err; + } + if (salt.charAt(2) === "$") + minor = String.fromCharCode(0), offset = 3; + else { + minor = salt.charAt(2); + if (minor !== "a" && minor !== "b" && minor !== "y" || salt.charAt(3) !== "$") { + err = Error("Invalid salt revision: " + salt.substring(2, 4)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else throw err; + } + offset = 4; + } + if (salt.charAt(offset + 2) > "$") { + err = Error("Missing salt rounds"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else throw err; + } + var r1 = parseInt(salt.substring(offset, offset + 1), 10) * 10, r2 = parseInt(salt.substring(offset + 1, offset + 2), 10), rounds = r1 + r2, real_salt = salt.substring(offset + 3, offset + 25); + password += minor >= "a" ? "\0" : ""; + var passwordb = utf8Array(password), saltb = base64_decode(real_salt, BCRYPT_SALT_LEN); + function finish(bytes) { + var res = []; + res.push("$2"); + if (minor >= "a") res.push(minor); + res.push("$"); + if (rounds < 10) res.push("0"); + res.push(rounds.toString()); + res.push("$"); + res.push(base64_encode(saltb, saltb.length)); + res.push(base64_encode(bytes, C_ORIG.length * 4 - 1)); + return res.join(""); + } + __name(finish, "finish"); + if (typeof callback == "undefined") + return finish(_crypt(passwordb, saltb, rounds)); + else { + _crypt( + passwordb, + saltb, + rounds, + function(err2, bytes) { + if (err2) callback(err2, null); + else callback(null, finish(bytes)); + }, + progressCallback + ); + } + } + __name(_hash, "_hash"); + function encodeBase64(bytes, length) { + return base64_encode(bytes, length); + } + __name(encodeBase64, "encodeBase64"); + function decodeBase64(string, length) { + return base64_decode(string, length); + } + __name(decodeBase64, "decodeBase64"); + var _default = _exports.default = { + setRandomFallback, + genSaltSync, + genSalt, + hashSync, + hash, + compareSync, + compare, + getRounds, + getSalt, + truncates, + encodeBase64, + decodeBase64 + }; + } + ); + } +}); + +// dist/sms/sms.service.js +var require_sms_service = __commonJS({ + "dist/sms/sms.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var SmsService_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SmsService = void 0; + var common_12 = require_common(); + var config_1 = require_config2(); + function maskPhone(phone) { + return phone.length <= 4 ? "****" : `${phone.slice(0, 4)}****${phone.slice(-2)}`; + } + __name(maskPhone, "maskPhone"); + var SmsService = SmsService_1 = class SmsService { + static { + __name(this, "SmsService"); + } + config; + logger = new common_12.Logger(SmsService_1.name); + constructor(config) { + this.config = config; + } + isEnabled() { + const raw2 = (this.config.get("SMS_ENABLED", "true") ?? "true").toLowerCase(); + return raw2 === "1" || raw2 === "true" || raw2 === "yes"; + } + async send(to, message) { + const url = this.config.get("SMS_API_URL", "http://185.231.112.101/api/createsms"); + const secretKey = this.config.get("SMS_SECRET_KEY")?.trim(); + if (!secretKey) { + this.logger.error("SMS_SECRET_KEY \u062A\u0646\u0638\u06CC\u0645 \u0646\u0634\u062F\u0647 \u0627\u0633\u062A"); + return { success: false, raw: "SMS_SECRET_KEY missing" }; + } + const platform = this.config.get("SMS_PLATFORM", "rayegansms"); + const host = this.resolveHost(); + try { + const response = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json", + secret_key: secretKey + }, + body: JSON.stringify({ + phone: to, + host, + text: message.trim(), + platform + }), + signal: AbortSignal.timeout(15e3) + }); + const text = await response.text(); + let body = text; + try { + body = text ? JSON.parse(text) : null; + } catch { + } + let success = response.ok; + if (success && body && typeof body === "object") { + const obj = body; + if ("success" in obj && obj.success === false) + success = false; + else if ("ok" in obj && obj.ok === false) + success = false; + else if (typeof obj.status === "string" && ["error", "failed", "fail"].includes(obj.status.toLowerCase())) { + success = false; + } + } + if (!success) { + this.logger.warn(`SMS failed to ${maskPhone(to)}: ${JSON.stringify(body)}`); + } + return { success, raw: body }; + } catch (err) { + this.logger.error(`SMS request error to ${maskPhone(to)}`, err instanceof Error ? err.stack : err); + return { + success: false, + raw: err instanceof Error ? err.message : String(err) + }; + } + } + buildOtpMessage(code) { + const appName = this.config.get("SMS_APP_NAME", "\u067E\u0627\u0631\u0686\u0647"); + return `\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641 \u0634\u0645\u0627 \u062C\u0647\u062A \u0648\u0631\u0648\u062F \u0628\u0647 \u0627\u067E\u0644\u06CC\u06A9\u06CC\u0634\u0646 ${appName} ${code} \u0645\u06CC \u0628\u0627\u0634\u062F`; + } + resolveHost() { + const fromEnv = this.config.get("SMS_HOST")?.trim() || this.config.get("SMS_APP_NAME")?.trim(); + if (fromEnv) + return fromEnv; + return "fabric"; + } + }; + exports2.SmsService = SmsService; + exports2.SmsService = SmsService = SmsService_1 = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [config_1.ConfigService]) + ], SmsService); + } +}); + +// dist/common/utils/phone.js +var require_phone = __commonJS({ + "dist/common/utils/phone.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.normalizePhone = normalizePhone; + exports2.isValidPhone = isValidPhone; + exports2.toEnglishDigits = toEnglishDigits; + function normalizePhone(raw2) { + let digits = raw2.replace(/\D/g, ""); + if (digits.startsWith("98") && digits.length === 12) { + digits = `0${digits.slice(2)}`; + } + if (digits.length === 10 && digits.startsWith("9")) { + digits = `0${digits}`; + } + return digits; + } + __name(normalizePhone, "normalizePhone"); + function isValidPhone(phone) { + return /^09\d{9}$/.test(phone); + } + __name(isValidPhone, "isValidPhone"); + function toEnglishDigits(value) { + return value.replace(/[۰-۹]/g, (d) => String("\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9".indexOf(d))).replace(/[٠-٩]/g, (d) => String("\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669".indexOf(d))); + } + __name(toEnglishDigits, "toEnglishDigits"); + } +}); + +// dist/auth/auth.service.js +var require_auth_service = __commonJS({ + "dist/auth/auth.service.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ (function() { + var ownKeys2 = /* @__PURE__ */ __name(function(o) { + ownKeys2 = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys2(o); + }, "ownKeys"); + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys2(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding2(result, mod, k[i]); + } + __setModuleDefault2(result, mod); + return result; + }; + })(); + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AuthService = void 0; + var common_12 = require_common(); + var config_1 = require_config2(); + var jwt_1 = require_jwt(); + var node_crypto_1 = require("node:crypto"); + var bcrypt = __importStar2(require_umd()); + var prisma_service_1 = require_prisma_service(); + var sms_service_1 = require_sms_service(); + var phone_1 = require_phone(); + var MAX_OTP_ATTEMPTS = 5; + var AuthService = class AuthService { + static { + __name(this, "AuthService"); + } + prisma; + jwt; + config; + sms; + constructor(prisma, jwt, config, sms) { + this.prisma = prisma; + this.jwt = jwt; + this.config = config; + this.sms = sms; + } + async requestOtp(dto) { + const phone = (0, phone_1.normalizePhone)((0, phone_1.toEnglishDigits)(dto.phone)); + if (!(0, phone_1.isValidPhone)(phone)) { + throw new common_12.BadRequestException("\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + const existing = await this.prisma.customer.findUnique({ + where: { phone } + }); + const isRegister = Boolean(dto.isRegister); + if (isRegister) { + if (!dto.firstName?.trim() || !dto.lastName?.trim()) { + throw new common_12.BadRequestException("\u0646\u0627\u0645 \u0648 \u0646\u0627\u0645 \u062E\u0627\u0646\u0648\u0627\u062F\u06AF\u06CC \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A"); + } + if (existing) { + throw new common_12.BadRequestException("\u0627\u06CC\u0646 \u0634\u0645\u0627\u0631\u0647 \u0642\u0628\u0644\u0627\u064B \u062B\u0628\u062A \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + } else if (!existing) { + throw new common_12.BadRequestException("\u06A9\u0627\u0631\u0628\u0631\u06CC \u0628\u0627 \u0627\u06CC\u0646 \u0645\u0634\u062E\u0635\u0627\u062A \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F\u061B \u0644\u0637\u0641\u0627\u064B \u062B\u0628\u062A\u200C\u0646\u0627\u0645 \u06A9\u0646\u06CC\u062F"); + } else if (!existing.isActive) { + throw new common_12.UnauthorizedException("\u062D\u0633\u0627\u0628 \u06A9\u0627\u0631\u0628\u0631\u06CC \u0634\u0645\u0627 \u063A\u06CC\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062A"); + } + const smsEnabled = this.sms.isEnabled(); + const code = smsEnabled ? String((0, node_crypto_1.randomInt)(1e3, 1e4)) : this.config.get("MOCK_OTP_CODE", "1234"); + const ttl = Number(this.config.get("OTP_TTL_MINUTES", 5)); + const expiresAt = new Date(Date.now() + ttl * 6e4); + const challenge = await this.prisma.$transaction(async (tx) => { + await tx.otpChallenge.deleteMany({ where: { phone } }); + return tx.otpChallenge.create({ + data: { + phone, + code, + firstName: dto.firstName?.trim(), + lastName: dto.lastName?.trim(), + isRegister, + expiresAt + } + }); + }); + if (smsEnabled) { + const sent = await this.sms.send(phone, this.sms.buildOtpMessage(code)); + if (!sent.success) { + await this.prisma.otpChallenge.deleteMany({ + where: { id: challenge.id } + }); + throw new common_12.ServiceUnavailableException("\u0627\u0631\u0633\u0627\u0644 \u067E\u06CC\u0627\u0645\u06A9 \u0628\u0627 \u062E\u0637\u0627 \u0645\u0648\u0627\u062C\u0647 \u0634\u062F\u061B \u062F\u0648\u0628\u0627\u0631\u0647 \u062A\u0644\u0627\u0634 \u06A9\u0646\u06CC\u062F"); + } + } + return { + success: true, + message: "\u06A9\u062F \u062A\u0623\u06CC\u06CC\u062F \u0627\u0631\u0633\u0627\u0644 \u0634\u062F", + expiresAt, + ...this.exposesDebugCode(smsEnabled) ? { debugCode: code } : {} + }; + } + exposesDebugCode(smsEnabled) { + if (smsEnabled) + return false; + return this.config.get("NODE_ENV") !== "production"; + } + async verifyOtp(dto) { + const phone = (0, phone_1.normalizePhone)((0, phone_1.toEnglishDigits)(dto.phone)); + const code = (0, phone_1.toEnglishDigits)(dto.code).trim(); + const challenge = await this.prisma.otpChallenge.findFirst({ + where: { phone }, + orderBy: { createdAt: "desc" } + }); + if (!challenge || challenge.expiresAt < /* @__PURE__ */ new Date()) { + throw new common_12.UnauthorizedException("\u06A9\u062F \u0645\u0646\u0642\u0636\u06CC \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + if (challenge.attempts >= MAX_OTP_ATTEMPTS) { + await this.prisma.otpChallenge.deleteMany({ where: { phone } }); + throw new common_12.UnauthorizedException("\u062A\u0639\u062F\u0627\u062F \u062A\u0644\u0627\u0634\u200C\u0647\u0627\u06CC \u0646\u0627\u062F\u0631\u0633\u062A \u0632\u06CC\u0627\u062F \u0627\u0633\u062A\u061B \u06A9\u062F \u062C\u062F\u06CC\u062F \u0628\u06AF\u06CC\u0631\u06CC\u062F"); + } + if (challenge.code !== code) { + await this.prisma.otpChallenge.update({ + where: { id: challenge.id }, + data: { attempts: { increment: 1 } } + }); + throw new common_12.UnauthorizedException("\u06A9\u062F \u062A\u0623\u06CC\u06CC\u062F \u0646\u0627\u062F\u0631\u0633\u062A \u0627\u0633\u062A"); + } + let user = await this.prisma.customer.findUnique({ where: { phone } }); + if (challenge.isRegister) { + if (user) { + throw new common_12.BadRequestException("\u0627\u06CC\u0646 \u0634\u0645\u0627\u0631\u0647 \u0642\u0628\u0644\u0627\u064B \u062B\u0628\u062A \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + user = await this.prisma.customer.create({ + data: { + phone, + firstName: challenge.firstName ?? "\u06A9\u0627\u0631\u0628\u0631", + lastName: challenge.lastName ?? "\u062C\u062F\u06CC\u062F" + } + }); + } else if (!user) { + throw new common_12.UnauthorizedException("\u06A9\u0627\u0631\u0628\u0631 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + } else if (!user.isActive) { + throw new common_12.UnauthorizedException("\u062D\u0633\u0627\u0628 \u06A9\u0627\u0631\u0628\u0631\u06CC \u0634\u0645\u0627 \u063A\u06CC\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062A"); + } + await this.prisma.otpChallenge.deleteMany({ where: { phone } }); + const accessToken = await this.signCustomerToken(user.id, user.phone, user.appRole); + return { + accessToken, + user: this.mapCustomer(user) + }; + } + async adminLogin(dto) { + const phone = (0, phone_1.normalizePhone)((0, phone_1.toEnglishDigits)(dto.phone)); + const admin = await this.prisma.adminUser.findUnique({ where: { phone } }); + if (!admin || !admin.isActive) { + throw new common_12.UnauthorizedException("\u0646\u0627\u0645 \u06A9\u0627\u0631\u0628\u0631\u06CC \u06CC\u0627 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u062F\u0631\u0633\u062A \u0627\u0633\u062A"); + } + const ok = await bcrypt.compare(dto.password, admin.passwordHash); + if (!ok) { + throw new common_12.UnauthorizedException("\u0646\u0627\u0645 \u06A9\u0627\u0631\u0628\u0631\u06CC \u06CC\u0627 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0646\u0627\u062F\u0631\u0633\u062A \u0627\u0633\u062A"); + } + await this.prisma.adminUser.update({ + where: { id: admin.id }, + data: { lastLoginAt: /* @__PURE__ */ new Date() } + }); + const accessToken = await this.jwt.signAsync({ + sub: admin.id, + type: "admin", + role: admin.role, + phone: admin.phone + }); + return { + accessToken, + user: { + id: admin.id, + fullName: admin.fullName, + phone: admin.phone, + email: admin.email, + role: admin.role + } + }; + } + async me(userId, type) { + if (type === "admin") { + const admin = await this.prisma.adminUser.findUnique({ + where: { id: userId } + }); + if (!admin) + throw new common_12.UnauthorizedException(); + return { + id: admin.id, + fullName: admin.fullName, + phone: admin.phone, + email: admin.email, + role: admin.role + }; + } + const user = await this.prisma.customer.findUnique({ + where: { id: userId } + }); + if (!user) + throw new common_12.UnauthorizedException(); + return this.mapCustomer(user); + } + async updateProfile(userId, dto) { + const data = {}; + if (dto.firstName !== void 0) + data.firstName = dto.firstName.trim(); + if (dto.lastName !== void 0) + data.lastName = dto.lastName.trim(); + if (dto.nationalId !== void 0) + data.nationalId = dto.nationalId.trim() || null; + if (dto.avatarUrl !== void 0) + data.avatarUrl = this.normalizeAvatar(dto.avatarUrl); + const user = await this.prisma.customer.update({ + where: { id: userId }, + data + }); + return this.mapCustomer(user); + } + normalizeAvatar(value) { + if (value == null || value === "") + return null; + if (!value.startsWith("data:image/")) { + throw new common_12.BadRequestException("\u0641\u0631\u0645\u062A \u062A\u0635\u0648\u06CC\u0631 \u067E\u0631\u0648\u0641\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A."); + } + if (value.length > 9e5) { + throw new common_12.BadRequestException("\u062D\u062C\u0645 \u062A\u0635\u0648\u06CC\u0631 \u067E\u0631\u0648\u0641\u0627\u06CC\u0644 \u062E\u06CC\u0644\u06CC \u0632\u06CC\u0627\u062F \u0627\u0633\u062A."); + } + return value; + } + async signCustomerToken(id, phone, appRole = "customer") { + return this.jwt.signAsync({ + sub: id, + type: "customer", + role: appRole, + phone + }); + } + mapCustomer(user) { + return { + id: user.id, + firstName: user.firstName, + lastName: user.lastName, + phone: user.phone, + nationalId: user.nationalId ?? void 0, + createdAt: user.createdAt.toISOString(), + appRole: user.appRole ?? "customer", + agentCode: user.agentCode ?? void 0, + levelLabel: user.levelLabel ?? void 0, + nextLevelLabel: user.nextLevelLabel ?? void 0, + pointsToNext: user.pointsToNext ?? void 0, + levelProgress: user.levelProgress ?? void 0, + businessName: user.businessName ?? void 0, + avatarUrl: user.avatarUrl ?? void 0 + }; + } + }; + exports2.AuthService = AuthService; + exports2.AuthService = AuthService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [ + prisma_service_1.PrismaService, + jwt_1.JwtService, + config_1.ConfigService, + sms_service_1.SmsService + ]) + ], AuthService); + } +}); + +// dist/auth/dto/auth.dto.js +var require_auth_dto = __commonJS({ + "dist/auth/dto/auth.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateProfileDto = exports2.AdminLoginDto = exports2.VerifyOtpDto = exports2.RequestOtpDto = void 0; + var class_validator_1 = require_cjs(); + var RequestOtpDto = class { + static { + __name(this, "RequestOtpDto"); + } + phone; + firstName; + lastName; + isRegister; + }; + exports2.RequestOtpDto = RequestOtpDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], RequestOtpDto.prototype, "phone", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], RequestOtpDto.prototype, "firstName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], RequestOtpDto.prototype, "lastName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], RequestOtpDto.prototype, "isRegister", void 0); + var VerifyOtpDto = class { + static { + __name(this, "VerifyOtpDto"); + } + phone; + code; + }; + exports2.VerifyOtpDto = VerifyOtpDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], VerifyOtpDto.prototype, "phone", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.Length)(4, 4), + __metadata2("design:type", String) + ], VerifyOtpDto.prototype, "code", void 0); + var AdminLoginDto = class { + static { + __name(this, "AdminLoginDto"); + } + phone; + password; + }; + exports2.AdminLoginDto = AdminLoginDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AdminLoginDto.prototype, "phone", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(4), + __metadata2("design:type", String) + ], AdminLoginDto.prototype, "password", void 0); + var UpdateProfileDto = class { + static { + __name(this, "UpdateProfileDto"); + } + firstName; + lastName; + nationalId; + avatarUrl; + }; + exports2.UpdateProfileDto = UpdateProfileDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateProfileDto.prototype, "firstName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateProfileDto.prototype, "lastName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateProfileDto.prototype, "nationalId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + __metadata2("design:type", Object) + ], UpdateProfileDto.prototype, "avatarUrl", void 0); + } +}); + +// dist/common/decorators/auth.decorators.js +var require_auth_decorators = __commonJS({ + "dist/common/decorators/auth.decorators.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AuthType = exports2.AUTH_TYPE_KEY = exports2.Roles = exports2.ROLES_KEY = exports2.Public = exports2.IS_PUBLIC_KEY = void 0; + var common_12 = require_common(); + exports2.IS_PUBLIC_KEY = "isPublic"; + var Public2 = /* @__PURE__ */ __name(() => (0, common_12.SetMetadata)(exports2.IS_PUBLIC_KEY, true), "Public"); + exports2.Public = Public2; + exports2.ROLES_KEY = "roles"; + var Roles = /* @__PURE__ */ __name((...roles) => (0, common_12.SetMetadata)(exports2.ROLES_KEY, roles), "Roles"); + exports2.Roles = Roles; + exports2.AUTH_TYPE_KEY = "authType"; + var AuthType = /* @__PURE__ */ __name((type) => (0, common_12.SetMetadata)(exports2.AUTH_TYPE_KEY, type), "AuthType"); + exports2.AuthType = AuthType; + } +}); + +// dist/common/decorators/current-user.decorator.js +var require_current_user_decorator = __commonJS({ + "dist/common/decorators/current-user.decorator.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CurrentUser = void 0; + var common_12 = require_common(); + exports2.CurrentUser = (0, common_12.createParamDecorator)((_data, ctx) => { + const request = ctx.switchToHttp().getRequest(); + return request.user; + }); + } +}); + +// dist/auth/auth.controller.js +var require_auth_controller = __commonJS({ + "dist/auth/auth.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AuthController = void 0; + var common_12 = require_common(); + var auth_service_1 = require_auth_service(); + var auth_dto_1 = require_auth_dto(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var AuthController = class AuthController { + static { + __name(this, "AuthController"); + } + authService; + constructor(authService) { + this.authService = authService; + } + health() { + return { ok: true, service: "fabric-trade-api" }; + } + requestOtp(dto) { + return this.authService.requestOtp(dto); + } + verifyOtp(dto) { + return this.authService.verifyOtp(dto); + } + adminLogin(dto) { + return this.authService.adminLogin(dto); + } + me(user) { + return this.authService.me(user.id, user.type); + } + updateProfile(user, dto) { + return this.authService.updateProfile(user.id, dto); + } + }; + exports2.AuthController = AuthController; + __decorate2([ + (0, auth_decorators_1.Public)(), + (0, common_12.Get)("health"), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], AuthController.prototype, "health", null); + __decorate2([ + (0, auth_decorators_1.Public)(), + (0, common_12.Post)("auth/otp/request"), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [auth_dto_1.RequestOtpDto]), + __metadata2("design:returntype", void 0) + ], AuthController.prototype, "requestOtp", null); + __decorate2([ + (0, auth_decorators_1.Public)(), + (0, common_12.Post)("auth/otp/verify"), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [auth_dto_1.VerifyOtpDto]), + __metadata2("design:returntype", void 0) + ], AuthController.prototype, "verifyOtp", null); + __decorate2([ + (0, auth_decorators_1.Public)(), + (0, common_12.Post)("admin/auth/login"), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [auth_dto_1.AdminLoginDto]), + __metadata2("design:returntype", void 0) + ], AuthController.prototype, "adminLogin", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)("auth/me"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], AuthController.prototype, "me", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Patch)("auth/profile"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, auth_dto_1.UpdateProfileDto]), + __metadata2("design:returntype", void 0) + ], AuthController.prototype, "updateProfile", null); + exports2.AuthController = AuthController = __decorate2([ + (0, common_12.Controller)(), + __metadata2("design:paramtypes", [auth_service_1.AuthService]) + ], AuthController); + } +}); + +// dist/sms/sms.module.js +var require_sms_module = __commonJS({ + "dist/sms/sms.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SmsModule = void 0; + var common_12 = require_common(); + var sms_service_1 = require_sms_service(); + var SmsModule = class SmsModule { + static { + __name(this, "SmsModule"); + } + }; + exports2.SmsModule = SmsModule; + exports2.SmsModule = SmsModule = __decorate2([ + (0, common_12.Module)({ + providers: [sms_service_1.SmsService], + exports: [sms_service_1.SmsService] + }) + ], SmsModule); + } +}); + +// dist/common/utils/jwt-secret.js +var require_jwt_secret = __commonJS({ + "dist/common/utils/jwt-secret.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.resolveJwtSecret = resolveJwtSecret; + var DEV_FALLBACK = "fabric-trade-dev-secret"; + function resolveJwtSecret(config) { + const secret = config.get("JWT_SECRET")?.trim(); + if (secret) + return secret; + if (config.get("NODE_ENV") === "production") { + throw new Error("JWT_SECRET \u062A\u0646\u0638\u06CC\u0645 \u0646\u0634\u062F\u0647 \u0627\u0633\u062A"); + } + return DEV_FALLBACK; + } + __name(resolveJwtSecret, "resolveJwtSecret"); + } +}); + +// dist/auth/auth.module.js +var require_auth_module = __commonJS({ + "dist/auth/auth.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AuthModule = void 0; + var common_12 = require_common(); + var jwt_1 = require_jwt(); + var config_1 = require_config2(); + var auth_service_1 = require_auth_service(); + var auth_controller_1 = require_auth_controller(); + var sms_module_1 = require_sms_module(); + var jwt_secret_1 = require_jwt_secret(); + var AuthModule = class AuthModule { + static { + __name(this, "AuthModule"); + } + }; + exports2.AuthModule = AuthModule; + exports2.AuthModule = AuthModule = __decorate2([ + (0, common_12.Module)({ + imports: [ + sms_module_1.SmsModule, + jwt_1.JwtModule.registerAsync({ + imports: [config_1.ConfigModule], + inject: [config_1.ConfigService], + useFactory: /* @__PURE__ */ __name((config) => ({ + secret: (0, jwt_secret_1.resolveJwtSecret)(config), + signOptions: { + expiresIn: config.get("JWT_EXPIRES_IN", "7d") + } + }), "useFactory") + }) + ], + controllers: [auth_controller_1.AuthController], + providers: [auth_service_1.AuthService], + exports: [auth_service_1.AuthService, jwt_1.JwtModule] + }) + ], AuthModule); + } +}); + +// dist/common/guards/jwt-auth.guard.js +var require_jwt_auth_guard = __commonJS({ + "dist/common/guards/jwt-auth.guard.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.JwtAuthGuard = void 0; + var common_12 = require_common(); + var core_12 = require_core3(); + var jwt_1 = require_jwt(); + var config_1 = require_config2(); + var auth_decorators_1 = require_auth_decorators(); + var jwt_secret_1 = require_jwt_secret(); + var JwtAuthGuard = class JwtAuthGuard { + static { + __name(this, "JwtAuthGuard"); + } + reflector; + jwtService; + config; + constructor(reflector, jwtService, config) { + this.reflector = reflector; + this.jwtService = jwtService; + this.config = config; + } + async canActivate(context) { + const isPublic = this.reflector.getAllAndOverride(auth_decorators_1.IS_PUBLIC_KEY, [ + context.getHandler(), + context.getClass() + ]); + if (isPublic) + return true; + const request = context.switchToHttp().getRequest(); + const authHeader = request.headers.authorization; + if (!authHeader?.startsWith("Bearer ")) { + throw new common_12.UnauthorizedException("\u062A\u0648\u06A9\u0646 \u0627\u062D\u0631\u0627\u0632 \u0647\u0648\u06CC\u062A \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A"); + } + const token = authHeader.slice(7); + let payload; + try { + payload = await this.jwtService.verifyAsync(token, { + secret: (0, jwt_secret_1.resolveJwtSecret)(this.config) + }); + } catch { + throw new common_12.UnauthorizedException("\u062A\u0648\u06A9\u0646 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u06CC\u0627 \u0645\u0646\u0642\u0636\u06CC \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + const user = { + id: payload.sub ?? payload.id, + type: payload.type, + role: payload.role, + phone: payload.phone + }; + request.user = user; + const authType = this.reflector.getAllAndOverride(auth_decorators_1.AUTH_TYPE_KEY, [context.getHandler(), context.getClass()]); + if (authType && authType !== "any" && user.type !== authType) { + throw new common_12.ForbiddenException("\u062F\u0633\u062A\u0631\u0633\u06CC \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A"); + } + const roles = this.reflector.getAllAndOverride(auth_decorators_1.ROLES_KEY, [ + context.getHandler(), + context.getClass() + ]); + if (roles?.length && (!user.role || !roles.includes(user.role))) { + throw new common_12.ForbiddenException("\u0646\u0642\u0634 \u06A9\u0627\u0631\u0628\u0631\u06CC \u06A9\u0627\u0641\u06CC \u0646\u06CC\u0633\u062A"); + } + return true; + } + }; + exports2.JwtAuthGuard = JwtAuthGuard; + exports2.JwtAuthGuard = JwtAuthGuard = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [ + core_12.Reflector, + jwt_1.JwtService, + config_1.ConfigService + ]) + ], JwtAuthGuard); + } +}); + +// dist/common/utils/meterage.js +var require_meterage = __commonJS({ + "dist/common/utils/meterage.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.FALLBACK_MAX_METERAGE = void 0; + exports2.resolveMaxMeterage = resolveMaxMeterage; + exports2.FALLBACK_MAX_METERAGE = 5e3; + function resolveMaxMeterage(companyValue, settingsValue) { + if (companyValue != null && companyValue > 0) + return companyValue; + if (settingsValue != null && settingsValue > 0) + return settingsValue; + return exports2.FALLBACK_MAX_METERAGE; + } + __name(resolveMaxMeterage, "resolveMaxMeterage"); + } +}); + +// dist/companies/companies.service.js +var require_companies_service = __commonJS({ + "dist/companies/companies.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CompaniesService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var meterage_1 = require_meterage(); + var CompaniesService = class CompaniesService { + static { + __name(this, "CompaniesService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async findAll(activeOnly = false) { + const [companies, fallbackMeterage] = await Promise.all([ + this.prisma.company.findMany({ + where: activeOnly ? { isActive: true } : void 0, + orderBy: [{ displayOrder: "asc" }, { name: "asc" }], + include: { + _count: { + select: { catalogs: true, products: true, bankAccounts: true } + } + } + }), + this.settingsMaxMeterage() + ]); + return companies.map((c) => this.mapCompany(c, fallbackMeterage)); + } + async findOne(id) { + const [company, fallbackMeterage] = await Promise.all([ + this.prisma.company.findUnique({ + where: { id }, + include: { + bankAccounts: { orderBy: { displayOrder: "asc" } }, + _count: { + select: { catalogs: true, products: true, bankAccounts: true } + } + } + }), + this.settingsMaxMeterage() + ]); + if (!company) + throw new common_12.NotFoundException("\u0634\u0631\u06A9\u062A \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return { + ...this.mapCompany(company, fallbackMeterage), + bankAccounts: company.bankAccounts.map((b) => this.mapBankAccount(b)) + }; + } + async settingsMaxMeterage() { + const settings = await this.prisma.systemSettings.findUnique({ + where: { id: "default" }, + select: { maxMeteragePerInvoice: true } + }); + return settings?.maxMeteragePerInvoice ?? null; + } + async create(dto) { + try { + const company = await this.prisma.company.create({ + data: { + name: dto.name.trim(), + slug: dto.slug.trim(), + description: dto.description?.trim() || null, + logoUrl: dto.logoUrl?.trim() || null, + displayOrder: dto.displayOrder ?? 0, + maxMeteragePerInvoice: dto.maxMeteragePerInvoice ?? null, + cashInvoiceValidityHours: dto.cashInvoiceValidityHours ?? 8, + cashInvoiceValidUntilHour: dto.cashInvoiceValidUntilHour ?? null, + isActive: dto.isActive ?? true + }, + include: { + _count: { + select: { catalogs: true, products: true, bankAccounts: true } + } + } + }); + return this.mapCompany(company); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u0627\u0633\u0644\u0627\u06AF \u0634\u0631\u06A9\u062A \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A"); + } + throw e; + } + } + async update(id, dto) { + await this.ensureCompany(id); + try { + const company = await this.prisma.company.update({ + where: { id }, + data: { + name: dto.name?.trim(), + slug: dto.slug?.trim(), + description: dto.description === void 0 ? void 0 : dto.description?.trim() || null, + logoUrl: dto.logoUrl === void 0 ? void 0 : dto.logoUrl?.trim() || null, + displayOrder: dto.displayOrder, + maxMeteragePerInvoice: dto.maxMeteragePerInvoice, + cashInvoiceValidityHours: dto.cashInvoiceValidityHours, + cashInvoiceValidUntilHour: dto.cashInvoiceValidUntilHour, + isActive: dto.isActive + }, + include: { + _count: { + select: { catalogs: true, products: true, bankAccounts: true } + } + } + }); + return this.mapCompany(company); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u0627\u0633\u0644\u0627\u06AF \u0634\u0631\u06A9\u062A \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A"); + } + throw e; + } + } + async setActive(id, isActive) { + await this.ensureCompany(id); + const company = await this.prisma.company.update({ + where: { id }, + data: { isActive }, + include: { + _count: { + select: { catalogs: true, products: true, bankAccounts: true } + } + } + }); + return this.mapCompany(company); + } + async listBankAccounts(companyId) { + await this.ensureCompany(companyId); + const accounts = await this.prisma.bankAccount.findMany({ + where: { companyId }, + orderBy: { displayOrder: "asc" } + }); + return accounts.map((a) => this.mapBankAccount(a)); + } + async createBankAccount(companyId, dto) { + await this.ensureCompany(companyId); + const account = await this.prisma.bankAccount.create({ + data: { + companyId, + bankName: dto.bankName.trim(), + accountHolder: dto.accountHolder.trim(), + accountNumber: dto.accountNumber.trim(), + cardNumber: dto.cardNumber.trim(), + iban: dto.iban.trim(), + notes: dto.notes?.trim() || null, + displayOrder: dto.displayOrder ?? 0, + isActive: dto.isActive ?? true + } + }); + return this.mapBankAccount(account); + } + async updateBankAccount(id, dto) { + await this.ensureBankAccount(id); + const account = await this.prisma.bankAccount.update({ + where: { id }, + data: { + bankName: dto.bankName?.trim(), + accountHolder: dto.accountHolder?.trim(), + accountNumber: dto.accountNumber?.trim(), + cardNumber: dto.cardNumber?.trim(), + iban: dto.iban?.trim(), + notes: dto.notes === void 0 ? void 0 : dto.notes?.trim() || null, + displayOrder: dto.displayOrder, + isActive: dto.isActive + } + }); + return this.mapBankAccount(account); + } + async setBankAccountActive(id, isActive) { + await this.ensureBankAccount(id); + const account = await this.prisma.bankAccount.update({ + where: { id }, + data: { isActive } + }); + return this.mapBankAccount(account); + } + async ensureCompany(id) { + const company = await this.prisma.company.findUnique({ where: { id } }); + if (!company) + throw new common_12.NotFoundException("\u0634\u0631\u06A9\u062A \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return company; + } + async ensureBankAccount(id) { + const account = await this.prisma.bankAccount.findUnique({ where: { id } }); + if (!account) + throw new common_12.NotFoundException("\u062D\u0633\u0627\u0628 \u0628\u0627\u0646\u06A9\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return account; + } + mapCompany(company, fallbackMaxMeterage = null) { + return { + id: company.id, + name: company.name, + slug: company.slug, + description: company.description ?? "", + logoUrl: company.logoUrl, + logo: company.logoUrl ?? void 0, + isActive: company.isActive, + displayOrder: company.displayOrder, + maxMeteragePerInvoice: (0, meterage_1.resolveMaxMeterage)(company.maxMeteragePerInvoice, fallbackMaxMeterage), + ownMaxMeteragePerInvoice: company.maxMeteragePerInvoice ?? void 0, + cashInvoiceValidityHours: company.cashInvoiceValidityHours, + cashInvoiceValidUntilHour: company.cashInvoiceValidUntilHour ?? void 0, + catalogCount: company._count?.catalogs ?? 0, + productCount: company._count?.products ?? 0, + bankAccountCount: company._count?.bankAccounts ?? 0, + createdAt: company.createdAt.toISOString(), + updatedAt: company.updatedAt.toISOString() + }; + } + mapBankAccount(account) { + return { + id: account.id, + companyId: account.companyId, + bankName: account.bankName, + accountHolder: account.accountHolder, + accountNumber: account.accountNumber, + cardNumber: account.cardNumber, + iban: account.iban, + notes: account.notes ?? void 0, + isActive: account.isActive, + displayOrder: account.displayOrder, + createdAt: account.createdAt.toISOString(), + updatedAt: account.updatedAt.toISOString() + }; + } + }; + exports2.CompaniesService = CompaniesService; + exports2.CompaniesService = CompaniesService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], CompaniesService); + } +}); + +// dist/companies/dto/company.dto.js +var require_company_dto = __commonJS({ + "dist/companies/dto/company.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateBankAccountDto = exports2.CreateBankAccountDto = exports2.SetActiveDto = exports2.UpdateCompanyDto = exports2.CreateCompanyDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var CreateCompanyDto = class { + static { + __name(this, "CreateCompanyDto"); + } + name; + slug; + description; + logoUrl; + displayOrder; + maxMeteragePerInvoice; + cashInvoiceValidityHours; + cashInvoiceValidUntilHour; + isActive; + }; + exports2.CreateCompanyDto = CreateCompanyDto; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateCompanyDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateCompanyDto.prototype, "slug", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateCompanyDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateCompanyDto.prototype, "logoUrl", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + __metadata2("design:type", Number) + ], CreateCompanyDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], CreateCompanyDto.prototype, "maxMeteragePerInvoice", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], CreateCompanyDto.prototype, "cashInvoiceValidityHours", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], CreateCompanyDto.prototype, "cashInvoiceValidUntilHour", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateCompanyDto.prototype, "isActive", void 0); + var UpdateCompanyDto = class { + static { + __name(this, "UpdateCompanyDto"); + } + name; + slug; + description; + logoUrl; + displayOrder; + maxMeteragePerInvoice; + cashInvoiceValidityHours; + cashInvoiceValidUntilHour; + isActive; + }; + exports2.UpdateCompanyDto = UpdateCompanyDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateCompanyDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateCompanyDto.prototype, "slug", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateCompanyDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateCompanyDto.prototype, "logoUrl", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + __metadata2("design:type", Number) + ], UpdateCompanyDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], UpdateCompanyDto.prototype, "maxMeteragePerInvoice", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], UpdateCompanyDto.prototype, "cashInvoiceValidityHours", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], UpdateCompanyDto.prototype, "cashInvoiceValidUntilHour", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateCompanyDto.prototype, "isActive", void 0); + var SetActiveDto = class { + static { + __name(this, "SetActiveDto"); + } + isActive; + }; + exports2.SetActiveDto = SetActiveDto; + __decorate2([ + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], SetActiveDto.prototype, "isActive", void 0); + var CreateBankAccountDto = class { + static { + __name(this, "CreateBankAccountDto"); + } + bankName; + accountHolder; + accountNumber; + cardNumber; + iban; + notes; + displayOrder; + isActive; + }; + exports2.CreateBankAccountDto = CreateBankAccountDto; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateBankAccountDto.prototype, "bankName", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateBankAccountDto.prototype, "accountHolder", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateBankAccountDto.prototype, "accountNumber", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateBankAccountDto.prototype, "cardNumber", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateBankAccountDto.prototype, "iban", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateBankAccountDto.prototype, "notes", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + __metadata2("design:type", Number) + ], CreateBankAccountDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateBankAccountDto.prototype, "isActive", void 0); + var UpdateBankAccountDto = class { + static { + __name(this, "UpdateBankAccountDto"); + } + bankName; + accountHolder; + accountNumber; + cardNumber; + iban; + notes; + displayOrder; + isActive; + }; + exports2.UpdateBankAccountDto = UpdateBankAccountDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateBankAccountDto.prototype, "bankName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateBankAccountDto.prototype, "accountHolder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateBankAccountDto.prototype, "accountNumber", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateBankAccountDto.prototype, "cardNumber", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateBankAccountDto.prototype, "iban", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateBankAccountDto.prototype, "notes", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + __metadata2("design:type", Number) + ], UpdateBankAccountDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateBankAccountDto.prototype, "isActive", void 0); + } +}); + +// dist/companies/companies.controller.js +var require_companies_controller = __commonJS({ + "dist/companies/companies.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BankAccountsController = exports2.CompaniesController = void 0; + var common_12 = require_common(); + var companies_service_1 = require_companies_service(); + var auth_decorators_1 = require_auth_decorators(); + var company_dto_1 = require_company_dto(); + var CompaniesController = class CompaniesController { + static { + __name(this, "CompaniesController"); + } + companiesService; + constructor(companiesService) { + this.companiesService = companiesService; + } + findAll(activeOnly) { + return this.companiesService.findAll(activeOnly === "true" || activeOnly === "1"); + } + findPublic() { + return this.companiesService.findAll(true); + } + findOne(id) { + return this.companiesService.findOne(id); + } + create(dto) { + return this.companiesService.create(dto); + } + update(id, dto) { + return this.companiesService.update(id, dto); + } + setActive(id, dto) { + return this.companiesService.setActive(id, dto.isActive); + } + listBankAccounts(companyId) { + return this.companiesService.listBankAccounts(companyId); + } + createBankAccount(companyId, dto) { + return this.companiesService.createBankAccount(companyId, dto); + } + }; + exports2.CompaniesController = CompaniesController; + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)(), + __param2(0, (0, common_12.Query)("activeOnly")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], CompaniesController.prototype, "findAll", null); + __decorate2([ + (0, auth_decorators_1.Public)(), + (0, common_12.Get)("public"), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], CompaniesController.prototype, "findPublic", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)(":id"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], CompaniesController.prototype, "findOne", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Post)(), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [company_dto_1.CreateCompanyDto]), + __metadata2("design:returntype", void 0) + ], CompaniesController.prototype, "create", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)(":id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, company_dto_1.UpdateCompanyDto]), + __metadata2("design:returntype", void 0) + ], CompaniesController.prototype, "update", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)(":id/active"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, company_dto_1.SetActiveDto]), + __metadata2("design:returntype", void 0) + ], CompaniesController.prototype, "setActive", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)(":companyId/bank-accounts"), + __param2(0, (0, common_12.Param)("companyId")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], CompaniesController.prototype, "listBankAccounts", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Post)(":companyId/bank-accounts"), + __param2(0, (0, common_12.Param)("companyId")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, company_dto_1.CreateBankAccountDto]), + __metadata2("design:returntype", void 0) + ], CompaniesController.prototype, "createBankAccount", null); + exports2.CompaniesController = CompaniesController = __decorate2([ + (0, common_12.Controller)("companies"), + __metadata2("design:paramtypes", [companies_service_1.CompaniesService]) + ], CompaniesController); + var BankAccountsController = class BankAccountsController { + static { + __name(this, "BankAccountsController"); + } + companiesService; + constructor(companiesService) { + this.companiesService = companiesService; + } + update(id, dto) { + return this.companiesService.updateBankAccount(id, dto); + } + setActive(id, dto) { + return this.companiesService.setBankAccountActive(id, dto.isActive); + } + }; + exports2.BankAccountsController = BankAccountsController; + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)(":id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, company_dto_1.UpdateBankAccountDto]), + __metadata2("design:returntype", void 0) + ], BankAccountsController.prototype, "update", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)(":id/active"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, company_dto_1.SetActiveDto]), + __metadata2("design:returntype", void 0) + ], BankAccountsController.prototype, "setActive", null); + exports2.BankAccountsController = BankAccountsController = __decorate2([ + (0, common_12.Controller)("bank-accounts"), + __metadata2("design:paramtypes", [companies_service_1.CompaniesService]) + ], BankAccountsController); + } +}); + +// dist/companies/companies.module.js +var require_companies_module = __commonJS({ + "dist/companies/companies.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CompaniesModule = void 0; + var common_12 = require_common(); + var companies_controller_1 = require_companies_controller(); + var companies_service_1 = require_companies_service(); + var CompaniesModule = class CompaniesModule { + static { + __name(this, "CompaniesModule"); + } + }; + exports2.CompaniesModule = CompaniesModule; + exports2.CompaniesModule = CompaniesModule = __decorate2([ + (0, common_12.Module)({ + controllers: [companies_controller_1.CompaniesController, companies_controller_1.BankAccountsController], + providers: [companies_service_1.CompaniesService], + exports: [companies_service_1.CompaniesService] + }) + ], CompaniesModule); + } +}); + +// dist/catalogs/catalogs.service.js +var require_catalogs_service = __commonJS({ + "dist/catalogs/catalogs.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CatalogsService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var CatalogsService = class CatalogsService { + static { + __name(this, "CatalogsService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async findAll(companyId, activeOnly = false) { + const catalogs = await this.prisma.catalog.findMany({ + where: { + ...companyId ? { companyId } : {}, + ...activeOnly ? { isActive: true } : {} + }, + orderBy: [{ displayOrder: "asc" }, { name: "asc" }], + include: { + company: { select: { name: true } }, + _count: { select: { products: true } } + } + }); + return catalogs.map((c) => this.map(c)); + } + async findOne(id) { + const catalog = await this.prisma.catalog.findUnique({ + where: { id }, + include: { + company: { select: { name: true } }, + _count: { select: { products: true } } + } + }); + if (!catalog) + throw new common_12.NotFoundException("\u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return this.map(catalog); + } + async create(dto) { + const company = await this.prisma.company.findUnique({ + where: { id: dto.companyId } + }); + if (!company) + throw new common_12.NotFoundException("\u0634\u0631\u06A9\u062A \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + try { + const catalog = await this.prisma.catalog.create({ + data: { + companyId: dto.companyId, + name: dto.name.trim(), + code: dto.code.trim(), + description: dto.description?.trim() || null, + displayOrder: dto.displayOrder ?? 0, + isActive: dto.isActive ?? true + }, + include: { + company: { select: { name: true } }, + _count: { select: { products: true } } + } + }); + return this.map(catalog); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u06A9\u062F \u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u062F\u0631 \u0627\u06CC\u0646 \u0634\u0631\u06A9\u062A \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A"); + } + throw e; + } + } + async update(id, dto) { + await this.ensure(id); + try { + const catalog = await this.prisma.catalog.update({ + where: { id }, + data: { + name: dto.name?.trim(), + code: dto.code?.trim(), + description: dto.description === void 0 ? void 0 : dto.description?.trim() || null, + displayOrder: dto.displayOrder, + isActive: dto.isActive + }, + include: { + company: { select: { name: true } }, + _count: { select: { products: true } } + } + }); + return this.map(catalog); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u06A9\u062F \u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u062F\u0631 \u0627\u06CC\u0646 \u0634\u0631\u06A9\u062A \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A"); + } + throw e; + } + } + async setActive(id, isActive) { + await this.ensure(id); + const catalog = await this.prisma.catalog.update({ + where: { id }, + data: { isActive }, + include: { + company: { select: { name: true } }, + _count: { select: { products: true } } + } + }); + return this.map(catalog); + } + async ensure(id) { + const catalog = await this.prisma.catalog.findUnique({ where: { id } }); + if (!catalog) + throw new common_12.NotFoundException("\u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return catalog; + } + map(catalog) { + return { + id: catalog.id, + companyId: catalog.companyId, + companyName: catalog.company.name, + name: catalog.name, + code: catalog.code, + description: catalog.description ?? void 0, + displayOrder: catalog.displayOrder, + isActive: catalog.isActive, + productCount: catalog._count.products, + createdAt: catalog.createdAt.toISOString(), + updatedAt: catalog.updatedAt.toISOString() + }; + } + }; + exports2.CatalogsService = CatalogsService; + exports2.CatalogsService = CatalogsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], CatalogsService); + } +}); + +// dist/catalogs/dto/catalog.dto.js +var require_catalog_dto = __commonJS({ + "dist/catalogs/dto/catalog.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SetCatalogActiveDto = exports2.UpdateCatalogDto = exports2.CreateCatalogDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var CreateCatalogDto = class { + static { + __name(this, "CreateCatalogDto"); + } + companyId; + name; + code; + description; + displayOrder; + isActive; + }; + exports2.CreateCatalogDto = CreateCatalogDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateCatalogDto.prototype, "companyId", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateCatalogDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateCatalogDto.prototype, "code", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateCatalogDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + __metadata2("design:type", Number) + ], CreateCatalogDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateCatalogDto.prototype, "isActive", void 0); + var UpdateCatalogDto = class { + static { + __name(this, "UpdateCatalogDto"); + } + name; + code; + description; + displayOrder; + isActive; + }; + exports2.UpdateCatalogDto = UpdateCatalogDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateCatalogDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateCatalogDto.prototype, "code", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateCatalogDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + __metadata2("design:type", Number) + ], UpdateCatalogDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateCatalogDto.prototype, "isActive", void 0); + var SetCatalogActiveDto = class { + static { + __name(this, "SetCatalogActiveDto"); + } + isActive; + }; + exports2.SetCatalogActiveDto = SetCatalogActiveDto; + __decorate2([ + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], SetCatalogActiveDto.prototype, "isActive", void 0); + } +}); + +// dist/catalogs/catalogs.controller.js +var require_catalogs_controller = __commonJS({ + "dist/catalogs/catalogs.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CatalogsController = void 0; + var common_12 = require_common(); + var catalogs_service_1 = require_catalogs_service(); + var auth_decorators_1 = require_auth_decorators(); + var catalog_dto_1 = require_catalog_dto(); + var CatalogsController = class CatalogsController { + static { + __name(this, "CatalogsController"); + } + catalogsService; + constructor(catalogsService) { + this.catalogsService = catalogsService; + } + findAll(companyId, activeOnly) { + return this.catalogsService.findAll(companyId, activeOnly === "true" || activeOnly === "1"); + } + findOne(id) { + return this.catalogsService.findOne(id); + } + create(dto) { + return this.catalogsService.create(dto); + } + update(id, dto) { + return this.catalogsService.update(id, dto); + } + setActive(id, dto) { + return this.catalogsService.setActive(id, dto.isActive); + } + }; + exports2.CatalogsController = CatalogsController; + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)(), + __param2(0, (0, common_12.Query)("companyId")), + __param2(1, (0, common_12.Query)("activeOnly")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, String]), + __metadata2("design:returntype", void 0) + ], CatalogsController.prototype, "findAll", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)(":id"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], CatalogsController.prototype, "findOne", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Post)(), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [catalog_dto_1.CreateCatalogDto]), + __metadata2("design:returntype", void 0) + ], CatalogsController.prototype, "create", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)(":id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, catalog_dto_1.UpdateCatalogDto]), + __metadata2("design:returntype", void 0) + ], CatalogsController.prototype, "update", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)(":id/active"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, catalog_dto_1.SetCatalogActiveDto]), + __metadata2("design:returntype", void 0) + ], CatalogsController.prototype, "setActive", null); + exports2.CatalogsController = CatalogsController = __decorate2([ + (0, common_12.Controller)("catalogs"), + __metadata2("design:paramtypes", [catalogs_service_1.CatalogsService]) + ], CatalogsController); + } +}); + +// dist/catalogs/catalogs.module.js +var require_catalogs_module = __commonJS({ + "dist/catalogs/catalogs.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CatalogsModule = void 0; + var common_12 = require_common(); + var catalogs_controller_1 = require_catalogs_controller(); + var catalogs_service_1 = require_catalogs_service(); + var CatalogsModule = class CatalogsModule { + static { + __name(this, "CatalogsModule"); + } + }; + exports2.CatalogsModule = CatalogsModule; + exports2.CatalogsModule = CatalogsModule = __decorate2([ + (0, common_12.Module)({ + controllers: [catalogs_controller_1.CatalogsController], + providers: [catalogs_service_1.CatalogsService], + exports: [catalogs_service_1.CatalogsService] + }) + ], CatalogsModule); + } +}); + +// dist/catalog/category-defs.js +var require_category_defs = __commonJS({ + "dist/catalog/category-defs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CATEGORY_IMAGE_KEYS = exports2.SEASON_CATEGORIES = exports2.USAGE_CATEGORIES = void 0; + exports2.asImageMap = asImageMap; + exports2.loadCatalogCategories = loadCatalogCategories; + exports2.USAGE_CATEGORIES = [ + { id: "trousers", title: "\u067E\u0627\u0631\u0686\u0647\u200C\u0647\u0627\u06CC \u0634\u0644\u0648\u0627\u0631\u06CC", subtitle: "\u0645\u0634\u0627\u0647\u062F\u0647 \u0645\u062D\u0635\u0648\u0644\u0627\u062A" }, + { id: "suit", title: "\u067E\u0627\u0631\u0686\u0647\u200C\u0647\u0627\u06CC \u06A9\u062A\u200C\u0634\u0644\u0648\u0627\u0631\u06CC", subtitle: "\u0645\u0634\u0627\u0647\u062F\u0647 \u0645\u062D\u0635\u0648\u0644\u0627\u062A" }, + { id: "shirt", title: "\u067E\u0627\u0631\u0686\u0647\u200C\u0647\u0627\u06CC \u067E\u06CC\u0631\u0627\u0647\u0646\u06CC", subtitle: "\u0645\u0634\u0627\u0647\u062F\u0647 \u0645\u062D\u0635\u0648\u0644\u0627\u062A" } + ]; + exports2.SEASON_CATEGORIES = [ + { + id: "summer", + title: "\u062A\u0627\u0628\u0633\u062A\u0627\u0646\u0647", + description: "\u0633\u0628\u06A9\u060C \u062E\u0646\u06A9 \u0648 \u0645\u0646\u0627\u0633\u0628 \u0641\u0635\u0644 \u06AF\u0631\u0645" + }, + { + id: "winter", + title: "\u0632\u0645\u0633\u062A\u0627\u0646\u0647", + description: "\u06AF\u0631\u0645 \u0648 \u0645\u0646\u0627\u0633\u0628 \u0641\u0635\u0644 \u0633\u0631\u062F" + }, + { + id: "all_season", + title: "\u0686\u0647\u0627\u0631\u0641\u0635\u0644", + description: "\u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u062F\u0631 \u0628\u06CC\u0634\u062A\u0631 \u0641\u0635\u0644\u200C\u0647\u0627\u06CC \u0633\u0627\u0644" + } + ]; + exports2.CATEGORY_IMAGE_KEYS = [ + ...exports2.USAGE_CATEGORIES.map((c) => c.id), + ...exports2.SEASON_CATEGORIES.map((c) => c.id) + ]; + function asImageMap(value) { + if (!value || typeof value !== "object" || Array.isArray(value)) + return {}; + const out = {}; + for (const [key, image] of Object.entries(value)) { + if (typeof image === "string" && image.trim()) + out[key] = image.trim(); + } + return out; + } + __name(asImageMap, "asImageMap"); + async function loadCatalogCategories(prisma) { + const settings = await prisma.systemSettings.findUnique({ + where: { id: "default" } + }); + const images = asImageMap(settings?.categoryImagesJson); + return { + usage: exports2.USAGE_CATEGORIES.map((item) => ({ + ...item, + imageUrl: images[item.id] || void 0 + })), + seasons: exports2.SEASON_CATEGORIES.map((item) => ({ + ...item, + imageUrl: images[item.id] || void 0 + })) + }; + } + __name(loadCatalogCategories, "loadCatalogCategories"); + } +}); + +// dist/products/products.service.js +var require_products_service = __commonJS({ + "dist/products/products.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ProductsService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var category_defs_1 = require_category_defs(); + var ProductsService = class ProductsService { + static { + __name(this, "ProductsService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + listCatalogCategories() { + return (0, category_defs_1.loadCatalogCategories)(this.prisma); + } + async findAll(filters) { + const products = await this.prisma.product.findMany({ + where: { + ...filters.catalogId ? { catalogId: filters.catalogId } : {}, + ...filters.companyId ? { companyId: filters.companyId } : {}, + ...filters.color ? { color: { contains: filters.color, mode: "insensitive" } } : {}, + ...filters.activeOnly ? { isActive: true } : {}, + ...filters.usageCategory ? { usageCategory: filters.usageCategory } : {}, + ...filters.season ? { season: filters.season } : {} + }, + orderBy: [{ isNew: "desc" }, { name: "asc" }, { color: "asc" }], + include: { + company: { select: { name: true } }, + catalog: { select: { code: true, name: true } } + } + }); + const hidePrice = await this.shouldHidePublicPrice(filters.hidePublicPrice); + return products.map((p) => this.map(p, hidePrice)); + } + async findOne(id, hidePublicPrice) { + const product = await this.prisma.product.findUnique({ + where: { id }, + include: { + company: { select: { name: true } }, + catalog: { select: { code: true, name: true } } + } + }); + if (!product) + throw new common_12.NotFoundException("\u0645\u062D\u0635\u0648\u0644 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const hidePrice = await this.shouldHidePublicPrice(hidePublicPrice); + return this.map(product, hidePrice); + } + async shouldHidePublicPrice(forceHide) { + if (forceHide === false) + return false; + if (forceHide === true) { + const settings = await this.prisma.systemSettings.findUnique({ + where: { id: "default" } + }); + return !(settings?.showCatalogPublicPrice ?? false); + } + return false; + } + async create(dto) { + const catalog = await this.prisma.catalog.findUnique({ + where: { id: dto.catalogId } + }); + if (!catalog) + throw new common_12.NotFoundException("\u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + if (catalog.companyId !== dto.companyId) { + throw new common_12.ConflictException("\u06A9\u0627\u062A\u0627\u0644\u0648\u06AF \u0645\u062A\u0639\u0644\u0642 \u0628\u0647 \u0627\u06CC\u0646 \u0634\u0631\u06A9\u062A \u0646\u06CC\u0633\u062A"); + } + const code = (dto.code || dto.productCode || "").trim(); + if (!code) + throw new common_12.ConflictException("\u06A9\u062F \u0645\u062D\u0635\u0648\u0644 \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A"); + try { + const product = await this.prisma.product.create({ + data: { + companyId: dto.companyId, + catalogId: dto.catalogId, + name: dto.name.trim(), + code, + color: dto.color.trim(), + description: dto.description?.trim() || null, + minMeterage: dto.minMeterage ?? 30, + orderMultiplier: dto.orderMultiplier ?? dto.orderStep ?? 10, + basePrice: this.pickNumber(dto.basePrice, dto.price), + stock: this.pickNumber(dto.stock, dto.internalStock), + isActive: dto.isActive ?? true, + usageCategory: dto.usageCategory ?? void 0, + season: dto.season ?? void 0, + widthCm: dto.widthCm, + composition: dto.composition?.trim() || null, + weightGrams: dto.weightGrams, + weaveType: dto.weaveType?.trim() || null, + subtitle: dto.subtitle?.trim() || null, + rollMeters: dto.rollMeters, + isNew: dto.isNew, + colorsJson: dto.colorsJson ?? void 0, + imageUrlsJson: dto.imageUrlsJson ?? void 0, + tagsJson: dto.tagsJson ?? void 0 + }, + include: { + company: { select: { name: true } }, + catalog: { select: { code: true, name: true } } + } + }); + return this.map(product); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u06A9\u062F \u0645\u062D\u0635\u0648\u0644 \u062F\u0631 \u0627\u06CC\u0646 \u0634\u0631\u06A9\u062A \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A"); + } + throw e; + } + } + async update(id, dto) { + await this.ensure(id); + const code = dto.code !== void 0 ? dto.code.trim() : dto.productCode !== void 0 ? dto.productCode.trim() : void 0; + try { + const product = await this.prisma.product.update({ + where: { id }, + data: { + catalogId: dto.catalogId, + name: dto.name?.trim(), + code, + color: dto.color?.trim(), + description: dto.description === void 0 ? void 0 : dto.description?.trim() || null, + minMeterage: dto.minMeterage, + orderMultiplier: dto.orderMultiplier !== void 0 ? dto.orderMultiplier : dto.orderStep, + basePrice: dto.basePrice !== void 0 ? dto.basePrice : dto.price !== void 0 ? dto.price : void 0, + stock: dto.stock !== void 0 ? dto.stock : dto.internalStock !== void 0 ? dto.internalStock : void 0, + isActive: dto.isActive, + usageCategory: dto.usageCategory !== void 0 ? dto.usageCategory : void 0, + season: dto.season !== void 0 ? dto.season : void 0, + widthCm: dto.widthCm, + composition: dto.composition === void 0 ? void 0 : dto.composition?.trim() || null, + weightGrams: dto.weightGrams, + weaveType: dto.weaveType === void 0 ? void 0 : dto.weaveType?.trim() || null, + subtitle: dto.subtitle === void 0 ? void 0 : dto.subtitle?.trim() || null, + rollMeters: dto.rollMeters, + isNew: dto.isNew, + colorsJson: dto.colorsJson, + imageUrlsJson: dto.imageUrlsJson, + tagsJson: dto.tagsJson + }, + include: { + company: { select: { name: true } }, + catalog: { select: { code: true, name: true } } + } + }); + return this.map(product); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u06A9\u062F \u0645\u062D\u0635\u0648\u0644 \u062F\u0631 \u0627\u06CC\u0646 \u0634\u0631\u06A9\u062A \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A"); + } + throw e; + } + } + async setActive(id, isActive) { + await this.ensure(id); + const product = await this.prisma.product.update({ + where: { id }, + data: { isActive }, + include: { + company: { select: { name: true } }, + catalog: { select: { code: true, name: true } } + } + }); + return this.map(product); + } + async listFavoriteIds(customerId) { + const rows = await this.prisma.productFavorite.findMany({ + where: { customerId }, + select: { productId: true }, + orderBy: { createdAt: "desc" } + }); + return rows.map((r) => r.productId); + } + async toggleFavorite(customerId, productId) { + await this.ensure(productId); + const existing = await this.prisma.productFavorite.findUnique({ + where: { + customerId_productId: { customerId, productId } + } + }); + if (existing) { + await this.prisma.productFavorite.delete({ where: { id: existing.id } }); + return { productId, favorited: false }; + } + await this.prisma.productFavorite.create({ + data: { customerId, productId } + }); + return { productId, favorited: true }; + } + async removeFavorite(customerId, productId) { + await this.prisma.productFavorite.deleteMany({ + where: { customerId, productId } + }); + return { productId, favorited: false }; + } + pickNumber(primary, alias) { + if (primary !== void 0) + return primary; + if (alias !== void 0) + return alias; + return null; + } + async ensure(id) { + const product = await this.prisma.product.findUnique({ where: { id } }); + if (!product) + throw new common_12.NotFoundException("\u0645\u062D\u0635\u0648\u0644 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return product; + } + map(product, hidePrice = false) { + const colors = Array.isArray(product.colorsJson) ? product.colorsJson : product.color ? [product.color] : []; + const tags = Array.isArray(product.tagsJson) ? product.tagsJson : []; + const price = hidePrice ? null : product.basePrice; + return { + id: product.id, + companyId: product.companyId, + companyName: product.company.name, + catalogId: product.catalogId, + catalogCode: product.catalog.code, + catalogName: product.catalog.name, + name: product.name, + code: product.code, + productCode: product.code, + color: product.color, + description: product.description ?? void 0, + minMeterage: product.minMeterage, + orderMultiplier: product.orderMultiplier, + orderStep: product.orderMultiplier, + basePrice: price, + price, + stock: product.stock, + internalStock: product.stock ?? 0, + isActive: product.isActive, + categoryId: product.usageCategory ?? "other", + usageCategory: product.usageCategory ?? "other", + season: product.season ?? "all_season", + widthCm: product.widthCm ?? void 0, + composition: product.composition ?? void 0, + weightGrams: product.weightGrams ?? void 0, + weaveType: product.weaveType ?? void 0, + colors, + tags, + imageUrls: Array.isArray(product.imageUrlsJson) ? product.imageUrlsJson : [], + subtitle: product.subtitle ?? void 0, + rollMeters: product.rollMeters ?? 50, + isNew: product.isNew ?? false, + createdAt: product.createdAt.toISOString(), + updatedAt: product.updatedAt.toISOString() + }; + } + }; + exports2.ProductsService = ProductsService; + exports2.ProductsService = ProductsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], ProductsService); + } +}); + +// dist/products/dto/product.dto.js +var require_product_dto = __commonJS({ + "dist/products/dto/product.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SetProductActiveDto = exports2.UpdateProductDto = exports2.CreateProductDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var CreateProductDto = class { + static { + __name(this, "CreateProductDto"); + } + companyId; + catalogId; + name; + code; + productCode; + color; + description; + minMeterage; + orderMultiplier; + orderStep; + basePrice; + price; + stock; + internalStock; + isActive; + usageCategory; + season; + widthCm; + composition; + weightGrams; + weaveType; + subtitle; + rollMeters; + isNew; + colorsJson; + imageUrlsJson; + tagsJson; + }; + exports2.CreateProductDto = CreateProductDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateProductDto.prototype, "companyId", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateProductDto.prototype, "catalogId", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateProductDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateProductDto.prototype, "code", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateProductDto.prototype, "productCode", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateProductDto.prototype, "color", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateProductDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], CreateProductDto.prototype, "minMeterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(1e-3), + __metadata2("design:type", Number) + ], CreateProductDto.prototype, "orderMultiplier", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(1e-3), + __metadata2("design:type", Number) + ], CreateProductDto.prototype, "orderStep", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], CreateProductDto.prototype, "basePrice", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], CreateProductDto.prototype, "price", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], CreateProductDto.prototype, "stock", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], CreateProductDto.prototype, "internalStock", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateProductDto.prototype, "isActive", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateProductDto.prototype, "usageCategory", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateProductDto.prototype, "season", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], CreateProductDto.prototype, "widthCm", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateProductDto.prototype, "composition", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], CreateProductDto.prototype, "weightGrams", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateProductDto.prototype, "weaveType", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateProductDto.prototype, "subtitle", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], CreateProductDto.prototype, "rollMeters", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateProductDto.prototype, "isNew", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + __metadata2("design:type", Array) + ], CreateProductDto.prototype, "colorsJson", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + __metadata2("design:type", Array) + ], CreateProductDto.prototype, "imageUrlsJson", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + __metadata2("design:type", Array) + ], CreateProductDto.prototype, "tagsJson", void 0); + var UpdateProductDto = class { + static { + __name(this, "UpdateProductDto"); + } + catalogId; + name; + code; + productCode; + color; + description; + minMeterage; + orderMultiplier; + orderStep; + basePrice; + price; + stock; + internalStock; + isActive; + usageCategory; + season; + widthCm; + composition; + weightGrams; + weaveType; + subtitle; + rollMeters; + isNew; + colorsJson; + imageUrlsJson; + tagsJson; + }; + exports2.UpdateProductDto = UpdateProductDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateProductDto.prototype, "catalogId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateProductDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateProductDto.prototype, "code", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateProductDto.prototype, "productCode", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateProductDto.prototype, "color", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], UpdateProductDto.prototype, "minMeterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(1e-3), + __metadata2("design:type", Number) + ], UpdateProductDto.prototype, "orderMultiplier", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(1e-3), + __metadata2("design:type", Number) + ], UpdateProductDto.prototype, "orderStep", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "basePrice", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "price", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "stock", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "internalStock", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateProductDto.prototype, "isActive", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateProductDto.prototype, "usageCategory", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateProductDto.prototype, "season", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "widthCm", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "composition", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "weightGrams", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "weaveType", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateProductDto.prototype, "subtitle", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], UpdateProductDto.prototype, "rollMeters", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateProductDto.prototype, "isNew", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + __metadata2("design:type", Array) + ], UpdateProductDto.prototype, "colorsJson", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + __metadata2("design:type", Array) + ], UpdateProductDto.prototype, "imageUrlsJson", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + __metadata2("design:type", Array) + ], UpdateProductDto.prototype, "tagsJson", void 0); + var SetProductActiveDto = class { + static { + __name(this, "SetProductActiveDto"); + } + isActive; + }; + exports2.SetProductActiveDto = SetProductActiveDto; + __decorate2([ + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], SetProductActiveDto.prototype, "isActive", void 0); + } +}); + +// dist/products/products.controller.js +var require_products_controller = __commonJS({ + "dist/products/products.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ProductsController = void 0; + var common_12 = require_common(); + var products_service_1 = require_products_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var product_dto_1 = require_product_dto(); + var ProductsController = class ProductsController { + static { + __name(this, "ProductsController"); + } + productsService; + constructor(productsService) { + this.productsService = productsService; + } + categories() { + return this.productsService.listCatalogCategories(); + } + findAll(user, catalogId, companyId, color, activeOnly, categoryId, usageCategory, season) { + const isAdmin = user?.type === "admin"; + return this.productsService.findAll({ + catalogId, + companyId, + color, + activeOnly: activeOnly === "true" || activeOnly === "1", + usageCategory: usageCategory || categoryId, + season, + hidePublicPrice: !isAdmin + }); + } + favoriteIds(user) { + return this.productsService.listFavoriteIds(user.id); + } + toggleFavorite(user, id) { + return this.productsService.toggleFavorite(user.id, id); + } + removeFavorite(user, id) { + return this.productsService.removeFavorite(user.id, id); + } + findOne(user, id) { + return this.productsService.findOne(id, user?.type !== "admin"); + } + create(dto) { + return this.productsService.create(dto); + } + update(id, dto) { + return this.productsService.update(id, dto); + } + setActive(id, dto) { + return this.productsService.setActive(id, dto.isActive); + } + }; + exports2.ProductsController = ProductsController; + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)("meta/categories"), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], ProductsController.prototype, "categories", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)(), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Query)("catalogId")), + __param2(2, (0, common_12.Query)("companyId")), + __param2(3, (0, common_12.Query)("color")), + __param2(4, (0, common_12.Query)("activeOnly")), + __param2(5, (0, common_12.Query)("categoryId")), + __param2(6, (0, common_12.Query)("usageCategory")), + __param2(7, (0, common_12.Query)("season")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, String, String, String, String, String, String]), + __metadata2("design:returntype", void 0) + ], ProductsController.prototype, "findAll", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Get)("favorites/ids"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], ProductsController.prototype, "favoriteIds", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Post)(":id/favorite"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], ProductsController.prototype, "toggleFavorite", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Delete)(":id/favorite"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], ProductsController.prototype, "removeFavorite", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)(":id"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], ProductsController.prototype, "findOne", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Post)(), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [product_dto_1.CreateProductDto]), + __metadata2("design:returntype", void 0) + ], ProductsController.prototype, "create", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)(":id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, product_dto_1.UpdateProductDto]), + __metadata2("design:returntype", void 0) + ], ProductsController.prototype, "update", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)(":id/active"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, product_dto_1.SetProductActiveDto]), + __metadata2("design:returntype", void 0) + ], ProductsController.prototype, "setActive", null); + exports2.ProductsController = ProductsController = __decorate2([ + (0, common_12.Controller)("products"), + __metadata2("design:paramtypes", [products_service_1.ProductsService]) + ], ProductsController); + } +}); + +// dist/products/products.module.js +var require_products_module = __commonJS({ + "dist/products/products.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ProductsModule = void 0; + var common_12 = require_common(); + var products_controller_1 = require_products_controller(); + var products_service_1 = require_products_service(); + var ProductsModule = class ProductsModule { + static { + __name(this, "ProductsModule"); + } + }; + exports2.ProductsModule = ProductsModule; + exports2.ProductsModule = ProductsModule = __decorate2([ + (0, common_12.Module)({ + controllers: [products_controller_1.ProductsController], + providers: [products_service_1.ProductsService], + exports: [products_service_1.ProductsService] + }) + ], ProductsModule); + } +}); + +// dist/common/utils/name.js +var require_name = __commonJS({ + "dist/common/utils/name.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.splitFullName = splitFullName; + exports2.joinFullName = joinFullName; + function splitFullName(name) { + const trimmed = name.trim().replace(/\s+/g, " "); + if (!trimmed) { + return { firstName: "\u0645\u0634\u062A\u0631\u06CC", lastName: "\u062C\u062F\u06CC\u062F" }; + } + const parts = trimmed.split(" "); + if (parts.length === 1) { + return { firstName: parts[0], lastName: "" }; + } + return { + firstName: parts[0], + lastName: parts.slice(1).join(" ") + }; + } + __name(splitFullName, "splitFullName"); + function joinFullName(firstName, lastName) { + return `${firstName} ${lastName}`.trim(); + } + __name(joinFullName, "joinFullName"); + } +}); + +// dist/customers/customers.service.js +var require_customers_service = __commonJS({ + "dist/customers/customers.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CustomersService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var phone_1 = require_phone(); + var name_1 = require_name(); + var customerInclude = { + company: { select: { name: true } }, + orders: { select: { totalMeterage: true } }, + levelDef: { select: { id: true, code: true, label: true } }, + assignedAgent: { + select: { id: true, firstName: true, lastName: true, phone: true, agentCode: true } + }, + customerBrands: { + include: { brand: { select: { id: true, name: true } } } + } + }; + var CustomersService = class CustomersService { + static { + __name(this, "CustomersService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async findAll(q, appRole) { + const customers = await this.prisma.customer.findMany({ + where: { + ...appRole ? { appRole } : {}, + ...q ? { + OR: [ + { firstName: { contains: q, mode: "insensitive" } }, + { lastName: { contains: q, mode: "insensitive" } }, + { phone: { contains: (0, phone_1.toEnglishDigits)(q) } }, + { nationalId: { contains: (0, phone_1.toEnglishDigits)(q) } }, + { agentCode: { contains: q, mode: "insensitive" } } + ] + } : {} + }, + orderBy: { createdAt: "desc" }, + include: customerInclude + }); + return customers.map((c) => this.map(c)); + } + async findOne(id) { + const customer = await this.prisma.customer.findUnique({ + where: { id }, + include: customerInclude + }); + if (!customer) + throw new common_12.NotFoundException("\u0645\u0634\u062A\u0631\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return this.map(customer); + } + async create(dto) { + const phone = (0, phone_1.normalizePhone)((0, phone_1.toEnglishDigits)(dto.phone)); + if (!(0, phone_1.isValidPhone)(phone)) { + throw new common_12.BadRequestException("\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + const { firstName, lastName } = this.resolveNames(dto); + await this.assertCompany(dto.companyId); + await this.assertLevel(dto.levelDefId); + await this.assertAgent(dto.assignedAgentId); + try { + const customer = await this.prisma.$transaction(async (tx) => { + const created = await tx.customer.create({ + data: { + firstName, + lastName, + phone, + nationalId: dto.nationalId?.trim() || null, + customerType: dto.customerType ?? client_1.CustomerType.wholesale, + companyId: dto.companyId || null, + isActive: dto.isActive ?? true, + levelDefId: dto.levelDefId || null, + assignedAgentId: dto.assignedAgentId || null, + appRole: dto.appRole ?? client_1.AppUserRole.customer, + agentCode: dto.agentCode?.trim() || null + } + }); + if (dto.brandIds?.length) { + await tx.customerBrand.createMany({ + data: dto.brandIds.map((brandId) => ({ + customerId: created.id, + brandId + })), + skipDuplicates: true + }); + } + return tx.customer.findUniqueOrThrow({ + where: { id: created.id }, + include: customerInclude + }); + }); + return this.map(customer); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u0627\u06CC\u0646 \u0634\u0645\u0627\u0631\u0647 \u0642\u0628\u0644\u0627\u064B \u062B\u0628\u062A \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + throw e; + } + } + async update(id, dto) { + await this.ensure(id); + const phone = dto.phone !== void 0 ? (0, phone_1.normalizePhone)((0, phone_1.toEnglishDigits)(dto.phone)) : void 0; + if (phone !== void 0 && !(0, phone_1.isValidPhone)(phone)) { + throw new common_12.BadRequestException("\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + let firstName; + let lastName; + if (dto.name !== void 0 || dto.firstName !== void 0 || dto.lastName !== void 0) { + const names = this.resolveNames(dto); + firstName = names.firstName; + lastName = names.lastName; + } + if (dto.companyId !== void 0) + await this.assertCompany(dto.companyId); + if (dto.levelDefId !== void 0) + await this.assertLevel(dto.levelDefId); + if (dto.assignedAgentId !== void 0) { + await this.assertAgent(dto.assignedAgentId, id); + } + try { + const customer = await this.prisma.$transaction(async (tx) => { + await tx.customer.update({ + where: { id }, + data: { + firstName, + lastName, + phone, + nationalId: dto.nationalId === void 0 ? void 0 : dto.nationalId?.trim() || null, + customerType: dto.customerType, + companyId: dto.companyId === void 0 ? void 0 : dto.companyId || null, + isActive: dto.isActive, + levelDefId: dto.levelDefId === void 0 ? void 0 : dto.levelDefId || null, + assignedAgentId: dto.assignedAgentId === void 0 ? void 0 : dto.assignedAgentId || null, + appRole: dto.appRole, + agentCode: dto.agentCode === void 0 ? void 0 : dto.agentCode?.trim() || null + } + }); + if (dto.brandIds !== void 0) { + await tx.customerBrand.deleteMany({ where: { customerId: id } }); + if (dto.brandIds.length) { + await tx.customerBrand.createMany({ + data: dto.brandIds.map((brandId) => ({ + customerId: id, + brandId + })), + skipDuplicates: true + }); + } + } + return tx.customer.findUniqueOrThrow({ + where: { id }, + include: customerInclude + }); + }); + return this.map(customer); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u0627\u06CC\u0646 \u0634\u0645\u0627\u0631\u0647 \u0642\u0628\u0644\u0627\u064B \u062B\u0628\u062A \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + throw e; + } + } + async setActive(id, isActive) { + await this.ensure(id); + const customer = await this.prisma.customer.update({ + where: { id }, + data: { isActive }, + include: customerInclude + }); + return this.map(customer); + } + resolveNames(dto) { + if (dto.name?.trim()) { + return (0, name_1.splitFullName)(dto.name); + } + const firstName = dto.firstName?.trim(); + const lastName = dto.lastName?.trim() ?? ""; + if (!firstName) { + throw new common_12.BadRequestException("\u0646\u0627\u0645 \u0645\u0634\u062A\u0631\u06CC \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A"); + } + return { firstName, lastName }; + } + async ensure(id) { + const customer = await this.prisma.customer.findUnique({ where: { id } }); + if (!customer) + throw new common_12.NotFoundException("\u0645\u0634\u062A\u0631\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return customer; + } + async assertCompany(companyId) { + if (!companyId) + return; + const company = await this.prisma.company.findUnique({ + where: { id: companyId } + }); + if (!company) + throw new common_12.NotFoundException("\u0634\u0631\u06A9\u062A \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + } + async assertLevel(levelDefId) { + if (!levelDefId) + return; + const level = await this.prisma.customerLevelDef.findUnique({ + where: { id: levelDefId } + }); + if (!level) + throw new common_12.NotFoundException("\u0633\u0637\u062D \u0645\u0634\u062A\u0631\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + } + async assertAgent(agentId, customerId) { + if (!agentId) + return; + if (customerId && agentId === customerId) { + throw new common_12.BadRequestException("\u0648\u0627\u0633\u0637\u0647 \u0646\u0645\u06CC\u200C\u062A\u0648\u0627\u0646\u062F \u062E\u0648\u062F\u0634 \u0628\u0627\u0634\u062F"); + } + const agent = await this.prisma.customer.findUnique({ + where: { id: agentId } + }); + if (!agent || agent.appRole !== client_1.AppUserRole.agent) { + throw new common_12.BadRequestException("\u0648\u0627\u0633\u0637\u0647 \u0645\u0639\u062A\u0628\u0631 \u0646\u06CC\u0633\u062A"); + } + } + map(customer) { + const totalMeterage = customer.orders.reduce((sum, o) => sum + o.totalMeterage, 0); + const name = (0, name_1.joinFullName)(customer.firstName, customer.lastName); + const agentName = customer.assignedAgent ? (0, name_1.joinFullName)(customer.assignedAgent.firstName, customer.assignedAgent.lastName) : ""; + return { + id: customer.id, + firstName: customer.firstName, + lastName: customer.lastName, + name, + phone: customer.phone, + nationalId: customer.nationalId ?? "", + customerType: customer.customerType, + companyId: customer.companyId, + companyName: customer.company?.name ?? "", + orderCount: customer.orders.length, + totalMeterage, + isActive: customer.isActive, + appRole: customer.appRole, + agentCode: customer.agentCode ?? "", + levelDefId: customer.levelDefId, + levelCode: customer.levelDef?.code ?? "", + levelLabel: customer.levelDef?.label ?? "", + assignedAgentId: customer.assignedAgentId, + assignedAgentName: agentName, + assignedAgentPhone: customer.assignedAgent?.phone ?? "", + brandIds: customer.customerBrands.map((cb) => cb.brandId), + brands: customer.customerBrands.map((cb) => ({ + id: cb.brand.id, + name: cb.brand.name + })), + registeredAt: customer.createdAt.toISOString(), + createdAt: customer.createdAt.toISOString(), + updatedAt: customer.updatedAt.toISOString() + }; + } + }; + exports2.CustomersService = CustomersService; + exports2.CustomersService = CustomersService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], CustomersService); + } +}); + +// dist/customers/dto/customer.dto.js +var require_customer_dto = __commonJS({ + "dist/customers/dto/customer.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SetCustomerActiveDto = exports2.UpdateCustomerDto = exports2.CreateCustomerDto = void 0; + var class_validator_1 = require_cjs(); + var client_1 = require_default2(); + var CreateCustomerDto = class { + static { + __name(this, "CreateCustomerDto"); + } + firstName; + lastName; + name; + phone; + nationalId; + customerType; + companyId; + isActive; + levelDefId; + assignedAgentId; + appRole; + agentCode; + brandIds; + }; + exports2.CreateCustomerDto = CreateCustomerDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateCustomerDto.prototype, "firstName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateCustomerDto.prototype, "lastName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateCustomerDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(10), + __metadata2("design:type", String) + ], CreateCustomerDto.prototype, "phone", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateCustomerDto.prototype, "nationalId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.CustomerType), + __metadata2("design:type", String) + ], CreateCustomerDto.prototype, "customerType", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateCustomerDto.prototype, "companyId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateCustomerDto.prototype, "isActive", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateCustomerDto.prototype, "levelDefId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateCustomerDto.prototype, "assignedAgentId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.AppUserRole), + __metadata2("design:type", String) + ], CreateCustomerDto.prototype, "appRole", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateCustomerDto.prototype, "agentCode", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsArray)(), + (0, class_validator_1.IsString)({ each: true }), + __metadata2("design:type", Array) + ], CreateCustomerDto.prototype, "brandIds", void 0); + var UpdateCustomerDto = class { + static { + __name(this, "UpdateCustomerDto"); + } + firstName; + lastName; + name; + phone; + nationalId; + customerType; + companyId; + isActive; + levelDefId; + assignedAgentId; + appRole; + agentCode; + brandIds; + }; + exports2.UpdateCustomerDto = UpdateCustomerDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateCustomerDto.prototype, "firstName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateCustomerDto.prototype, "lastName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateCustomerDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateCustomerDto.prototype, "phone", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateCustomerDto.prototype, "nationalId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.CustomerType), + __metadata2("design:type", String) + ], UpdateCustomerDto.prototype, "customerType", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateCustomerDto.prototype, "companyId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateCustomerDto.prototype, "isActive", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateCustomerDto.prototype, "levelDefId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateCustomerDto.prototype, "assignedAgentId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.AppUserRole), + __metadata2("design:type", String) + ], UpdateCustomerDto.prototype, "appRole", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateCustomerDto.prototype, "agentCode", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsArray)(), + (0, class_validator_1.IsString)({ each: true }), + __metadata2("design:type", Array) + ], UpdateCustomerDto.prototype, "brandIds", void 0); + var SetCustomerActiveDto = class { + static { + __name(this, "SetCustomerActiveDto"); + } + isActive; + }; + exports2.SetCustomerActiveDto = SetCustomerActiveDto; + __decorate2([ + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], SetCustomerActiveDto.prototype, "isActive", void 0); + } +}); + +// dist/customers/customers.controller.js +var require_customers_controller = __commonJS({ + "dist/customers/customers.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CustomersController = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var customers_service_1 = require_customers_service(); + var auth_decorators_1 = require_auth_decorators(); + var customer_dto_1 = require_customer_dto(); + var CustomersController = class CustomersController { + static { + __name(this, "CustomersController"); + } + customersService; + constructor(customersService) { + this.customersService = customersService; + } + findAll(q, appRole) { + return this.customersService.findAll(q, appRole); + } + findOne(id) { + return this.customersService.findOne(id); + } + create(dto) { + return this.customersService.create(dto); + } + update(id, dto) { + return this.customersService.update(id, dto); + } + setActive(id, dto) { + return this.customersService.setActive(id, dto.isActive); + } + }; + exports2.CustomersController = CustomersController; + __decorate2([ + (0, common_12.Get)(), + __param2(0, (0, common_12.Query)("q")), + __param2(1, (0, common_12.Query)("appRole")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, String]), + __metadata2("design:returntype", void 0) + ], CustomersController.prototype, "findAll", null); + __decorate2([ + (0, common_12.Get)(":id"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], CustomersController.prototype, "findOne", null); + __decorate2([ + (0, common_12.Post)(), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [customer_dto_1.CreateCustomerDto]), + __metadata2("design:returntype", void 0) + ], CustomersController.prototype, "create", null); + __decorate2([ + (0, common_12.Patch)(":id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, customer_dto_1.UpdateCustomerDto]), + __metadata2("design:returntype", void 0) + ], CustomersController.prototype, "update", null); + __decorate2([ + (0, common_12.Patch)(":id/active"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, customer_dto_1.SetCustomerActiveDto]), + __metadata2("design:returntype", void 0) + ], CustomersController.prototype, "setActive", null); + exports2.CustomersController = CustomersController = __decorate2([ + (0, common_12.Controller)("admin/customers"), + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales"), + __metadata2("design:paramtypes", [customers_service_1.CustomersService]) + ], CustomersController); + } +}); + +// dist/customers/customers.module.js +var require_customers_module = __commonJS({ + "dist/customers/customers.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CustomersModule = void 0; + var common_12 = require_common(); + var customers_controller_1 = require_customers_controller(); + var customers_service_1 = require_customers_service(); + var CustomersModule = class CustomersModule { + static { + __name(this, "CustomersModule"); + } + }; + exports2.CustomersModule = CustomersModule; + exports2.CustomersModule = CustomersModule = __decorate2([ + (0, common_12.Module)({ + controllers: [customers_controller_1.CustomersController], + providers: [customers_service_1.CustomersService], + exports: [customers_service_1.CustomersService] + }) + ], CustomersModule); + } +}); + +// dist/admin-users/admin-users.service.js +var require_admin_users_service = __commonJS({ + "dist/admin-users/admin-users.service.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: /* @__PURE__ */ __name(function() { + return m[k]; + }, "get") }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + })); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }); + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ (function() { + var ownKeys2 = /* @__PURE__ */ __name(function(o) { + ownKeys2 = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys2(o); + }, "ownKeys"); + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys2(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding2(result, mod, k[i]); + } + __setModuleDefault2(result, mod); + return result; + }; + })(); + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AdminUsersService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var bcrypt = __importStar2(require_umd()); + var prisma_service_1 = require_prisma_service(); + var phone_1 = require_phone(); + var DEFAULT_PASSWORD = "123456"; + var AdminUsersService = class AdminUsersService { + static { + __name(this, "AdminUsersService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async findAll() { + const users = await this.prisma.adminUser.findMany({ + orderBy: { createdAt: "desc" } + }); + return users.map((u) => this.map(u)); + } + async findOne(id) { + const user = await this.prisma.adminUser.findUnique({ where: { id } }); + if (!user) + throw new common_12.NotFoundException("\u06A9\u0627\u0631\u0628\u0631 \u0627\u062F\u0645\u06CC\u0646 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return this.map(user); + } + async create(dto) { + const phone = (0, phone_1.normalizePhone)((0, phone_1.toEnglishDigits)(dto.phone)); + if (!(0, phone_1.isValidPhone)(phone)) { + throw new common_12.BadRequestException("\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + const passwordHash = await bcrypt.hash(dto.password?.trim() || DEFAULT_PASSWORD, 10); + const email = dto.email?.trim().toLowerCase() || `${phone.replace(/\D/g, "")}@noemail.local`; + try { + const user = await this.prisma.adminUser.create({ + data: { + fullName: dto.fullName.trim(), + phone, + email, + passwordHash, + role: dto.role ?? client_1.AdminRole.admin, + isActive: dto.isActive ?? true + } + }); + return this.map(user); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u0634\u0645\u0627\u0631\u0647 \u06CC\u0627 \u0627\u06CC\u0645\u06CC\u0644 \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A"); + } + throw e; + } + } + async update(id, dto) { + await this.ensure(id); + const phone = dto.phone !== void 0 ? (0, phone_1.normalizePhone)((0, phone_1.toEnglishDigits)(dto.phone)) : void 0; + if (phone !== void 0 && !(0, phone_1.isValidPhone)(phone)) { + throw new common_12.BadRequestException("\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + const data = { + fullName: dto.fullName?.trim(), + phone, + email: dto.email === void 0 ? void 0 : dto.email.trim() ? dto.email.trim().toLowerCase() : void 0, + role: dto.role, + isActive: dto.isActive + }; + if (dto.password?.trim()) { + data.passwordHash = await bcrypt.hash(dto.password.trim(), 10); + } + try { + const user = await this.prisma.adminUser.update({ + where: { id }, + data + }); + return this.map(user); + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u0634\u0645\u0627\u0631\u0647 \u06CC\u0627 \u0627\u06CC\u0645\u06CC\u0644 \u062A\u06A9\u0631\u0627\u0631\u06CC \u0627\u0633\u062A"); + } + throw e; + } + } + async setActive(id, isActive) { + await this.ensure(id); + const user = await this.prisma.adminUser.update({ + where: { id }, + data: { isActive } + }); + return this.map(user); + } + async ensure(id) { + const user = await this.prisma.adminUser.findUnique({ where: { id } }); + if (!user) + throw new common_12.NotFoundException("\u06A9\u0627\u0631\u0628\u0631 \u0627\u062F\u0645\u06CC\u0646 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return user; + } + map(user) { + return { + id: user.id, + fullName: user.fullName, + phone: user.phone, + email: user.email, + role: user.role, + isActive: user.isActive, + lastLoginAt: user.lastLoginAt?.toISOString() ?? null, + createdAt: user.createdAt.toISOString(), + updatedAt: user.updatedAt.toISOString() + }; + } + }; + exports2.AdminUsersService = AdminUsersService; + exports2.AdminUsersService = AdminUsersService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], AdminUsersService); + } +}); + +// dist/admin-users/dto/admin-user.dto.js +var require_admin_user_dto = __commonJS({ + "dist/admin-users/dto/admin-user.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SetAdminActiveDto = exports2.UpdateAdminUserDto = exports2.CreateAdminUserDto = void 0; + var class_validator_1 = require_cjs(); + var client_1 = require_default2(); + var CreateAdminUserDto = class { + static { + __name(this, "CreateAdminUserDto"); + } + fullName; + phone; + email; + password; + role; + isActive; + }; + exports2.CreateAdminUserDto = CreateAdminUserDto; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateAdminUserDto.prototype, "fullName", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(10), + __metadata2("design:type", String) + ], CreateAdminUserDto.prototype, "phone", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEmail)(), + __metadata2("design:type", String) + ], CreateAdminUserDto.prototype, "email", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(4), + __metadata2("design:type", String) + ], CreateAdminUserDto.prototype, "password", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.AdminRole), + __metadata2("design:type", String) + ], CreateAdminUserDto.prototype, "role", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateAdminUserDto.prototype, "isActive", void 0); + var UpdateAdminUserDto = class { + static { + __name(this, "UpdateAdminUserDto"); + } + fullName; + phone; + email; + password; + role; + isActive; + }; + exports2.UpdateAdminUserDto = UpdateAdminUserDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateAdminUserDto.prototype, "fullName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateAdminUserDto.prototype, "phone", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEmail)(), + __metadata2("design:type", String) + ], UpdateAdminUserDto.prototype, "email", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(4), + __metadata2("design:type", String) + ], UpdateAdminUserDto.prototype, "password", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.AdminRole), + __metadata2("design:type", String) + ], UpdateAdminUserDto.prototype, "role", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateAdminUserDto.prototype, "isActive", void 0); + var SetAdminActiveDto = class { + static { + __name(this, "SetAdminActiveDto"); + } + isActive; + }; + exports2.SetAdminActiveDto = SetAdminActiveDto; + __decorate2([ + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], SetAdminActiveDto.prototype, "isActive", void 0); + } +}); + +// dist/admin-users/admin-users.controller.js +var require_admin_users_controller = __commonJS({ + "dist/admin-users/admin-users.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AdminUsersController = void 0; + var common_12 = require_common(); + var admin_users_service_1 = require_admin_users_service(); + var auth_decorators_1 = require_auth_decorators(); + var admin_user_dto_1 = require_admin_user_dto(); + var AdminUsersController = class AdminUsersController { + static { + __name(this, "AdminUsersController"); + } + adminUsersService; + constructor(adminUsersService) { + this.adminUsersService = adminUsersService; + } + findAll() { + return this.adminUsersService.findAll(); + } + findOne(id) { + return this.adminUsersService.findOne(id); + } + create(dto) { + return this.adminUsersService.create(dto); + } + update(id, dto) { + return this.adminUsersService.update(id, dto); + } + setActive(id, dto) { + return this.adminUsersService.setActive(id, dto.isActive); + } + }; + exports2.AdminUsersController = AdminUsersController; + __decorate2([ + (0, common_12.Get)(), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], AdminUsersController.prototype, "findAll", null); + __decorate2([ + (0, common_12.Get)(":id"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], AdminUsersController.prototype, "findOne", null); + __decorate2([ + (0, common_12.Post)(), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [admin_user_dto_1.CreateAdminUserDto]), + __metadata2("design:returntype", void 0) + ], AdminUsersController.prototype, "create", null); + __decorate2([ + (0, common_12.Patch)(":id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, admin_user_dto_1.UpdateAdminUserDto]), + __metadata2("design:returntype", void 0) + ], AdminUsersController.prototype, "update", null); + __decorate2([ + (0, common_12.Patch)(":id/active"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, admin_user_dto_1.SetAdminActiveDto]), + __metadata2("design:returntype", void 0) + ], AdminUsersController.prototype, "setActive", null); + exports2.AdminUsersController = AdminUsersController = __decorate2([ + (0, common_12.Controller)("admin/users"), + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin"), + __metadata2("design:paramtypes", [admin_users_service_1.AdminUsersService]) + ], AdminUsersController); + } +}); + +// dist/admin-users/admin-users.module.js +var require_admin_users_module = __commonJS({ + "dist/admin-users/admin-users.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AdminUsersModule = void 0; + var common_12 = require_common(); + var admin_users_controller_1 = require_admin_users_controller(); + var admin_users_service_1 = require_admin_users_service(); + var AdminUsersModule = class AdminUsersModule { + static { + __name(this, "AdminUsersModule"); + } + }; + exports2.AdminUsersModule = AdminUsersModule; + exports2.AdminUsersModule = AdminUsersModule = __decorate2([ + (0, common_12.Module)({ + controllers: [admin_users_controller_1.AdminUsersController], + providers: [admin_users_service_1.AdminUsersService], + exports: [admin_users_service_1.AdminUsersService] + }) + ], AdminUsersModule); + } +}); + +// dist/common/utils/order-number.js +var require_order_number = __commonJS({ + "dist/common/utils/order-number.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.generateOrderNumber = generateOrderNumber; + function generateOrderNumber(date = /* @__PURE__ */ new Date()) { + const year = new Intl.DateTimeFormat("fa-IR-u-ca-persian", { + year: "numeric" + }).format(date); + const persianYear = year.replace(/[^\d]/g, "") || "1403"; + const seq = Math.floor(Math.random() * 9e3) + 1e3; + return `ORD-${persianYear}-${seq}`; + } + __name(generateOrderNumber, "generateOrderNumber"); + } +}); + +// dist/common/utils/tehran-time.js +var require_tehran_time = __commonJS({ + "dist/common/utils/tehran-time.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.tehranCalendarDay = tehranCalendarDay; + exports2.calendarDayOf = calendarDayOf; + exports2.addDays = addDays; + exports2.diffInDays = diffInDays; + exports2.tehranAtHour = tehranAtHour; + var TEHRAN_OFFSET_MS = (3 * 60 + 30) * 60 * 1e3; + var DAY_MS = 24 * 60 * 60 * 1e3; + function utcStartOfDay(date) { + const d = new Date(date); + d.setUTCHours(0, 0, 0, 0); + return d; + } + __name(utcStartOfDay, "utcStartOfDay"); + function tehranCalendarDay(date) { + return utcStartOfDay(new Date(date.getTime() + TEHRAN_OFFSET_MS)); + } + __name(tehranCalendarDay, "tehranCalendarDay"); + function calendarDayOf(date) { + return utcStartOfDay(new Date(date)); + } + __name(calendarDayOf, "calendarDayOf"); + function addDays(date, days) { + return new Date(date.getTime() + days * DAY_MS); + } + __name(addDays, "addDays"); + function diffInDays(from, to) { + return Math.round((to.getTime() - from.getTime()) / DAY_MS); + } + __name(diffInDays, "diffInDays"); + function tehranAtHour(date, hour) { + return new Date(tehranCalendarDay(date).getTime() + hour * 60 * 60 * 1e3 - TEHRAN_OFFSET_MS); + } + __name(tehranAtHour, "tehranAtHour"); + } +}); + +// dist/common/utils/check-rass.js +var require_check_rass = __commonJS({ + "dist/common/utils/check-rass.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.calculateCheckRass = calculateCheckRass; + var tehran_time_1 = require_tehran_time(); + function calculateCheckRass(checks, baseDate = /* @__PURE__ */ new Date()) { + if (checks.length === 0) { + return { + checkCount: 0, + totalAmount: 0, + nearestDueDate: null, + farthestDueDate: null, + rassDays: 0, + rassDate: null + }; + } + const base = (0, tehran_time_1.tehranCalendarDay)(baseDate); + let totalAmount = 0; + let weightedDays = 0; + const dueDates = []; + for (const check of checks) { + const due = (0, tehran_time_1.calendarDayOf)(check.dueDate); + dueDates.push(due); + const days = Math.max(0, (0, tehran_time_1.diffInDays)(base, due)); + totalAmount += check.amount; + weightedDays += check.amount * days; + } + const rassDays = totalAmount > 0 ? Math.round(weightedDays / totalAmount) : 0; + const rassDate = (0, tehran_time_1.addDays)(base, rassDays); + dueDates.sort((a, b) => a.getTime() - b.getTime()); + return { + checkCount: checks.length, + totalAmount, + nearestDueDate: dueDates[0]?.toISOString() ?? null, + farthestDueDate: dueDates[dueDates.length - 1]?.toISOString() ?? null, + rassDays, + rassDate: rassDate.toISOString() + }; + } + __name(calculateCheckRass, "calculateCheckRass"); + } +}); + +// dist/common/utils/cash-expiry.js +var require_cash_expiry = __commonJS({ + "dist/common/utils/cash-expiry.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.computeCashInvoiceExpiry = computeCashInvoiceExpiry; + exports2.earliestCashInvoiceExpiry = earliestCashInvoiceExpiry; + var tehran_time_1 = require_tehran_time(); + function computeCashInvoiceExpiry(company) { + const now = /* @__PURE__ */ new Date(); + if (company.cashInvoiceValidUntilHour != null && Number.isFinite(company.cashInvoiceValidUntilHour)) { + const expires = (0, tehran_time_1.tehranAtHour)(now, company.cashInvoiceValidUntilHour); + if (expires.getTime() <= now.getTime()) { + return (0, tehran_time_1.tehranAtHour)((0, tehran_time_1.addDays)(now, 1), company.cashInvoiceValidUntilHour); + } + return expires; + } + return new Date(now.getTime() + company.cashInvoiceValidityHours * 60 * 60 * 1e3); + } + __name(computeCashInvoiceExpiry, "computeCashInvoiceExpiry"); + function earliestCashInvoiceExpiry(companies) { + if (!companies.length) { + return new Date(Date.now() + 8 * 60 * 60 * 1e3); + } + return companies.map((company) => computeCashInvoiceExpiry(company)).reduce((earliest, current) => current.getTime() < earliest.getTime() ? current : earliest); + } + __name(earliestCashInvoiceExpiry, "earliestCashInvoiceExpiry"); + } +}); + +// dist/common/utils/order-status.js +var require_order_status = __commonJS({ + "dist/common/utils/order-status.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ORDER_STATUS_LABELS = exports2.ADMIN_STATUS_MAP = void 0; + exports2.resolveAdminStatusFilter = resolveAdminStatusFilter; + exports2.toAdminStatus = toAdminStatus; + var client_1 = require_default2(); + exports2.ADMIN_STATUS_MAP = { + pending_review: [ + client_1.OrderStatus.cart, + client_1.OrderStatus.submitted, + client_1.OrderStatus.awaiting_review, + client_1.OrderStatus.pricing + ], + awaiting_customer: [ + client_1.OrderStatus.awaiting_settlement, + client_1.OrderStatus.awaiting_settlement_fix, + client_1.OrderStatus.check_in_progress, + client_1.OrderStatus.cash_in_progress, + client_1.OrderStatus.cash_invoice_issued, + client_1.OrderStatus.awaiting_cash_payment + ], + pending_check: [client_1.OrderStatus.awaiting_check_review], + pending_payment: [ + client_1.OrderStatus.cash_payment_submitted, + client_1.OrderStatus.awaiting_cash_confirmation + ], + needs_correction: [client_1.OrderStatus.needs_correction], + check_correction: [client_1.OrderStatus.check_needs_fix, client_1.OrderStatus.check_rejected], + final_approval: [ + client_1.OrderStatus.final_approved, + client_1.OrderStatus.checks_approved, + client_1.OrderStatus.cash_confirmed, + client_1.OrderStatus.preparing, + client_1.OrderStatus.ready_to_ship + ], + shipped: [client_1.OrderStatus.shipped], + delivered: [client_1.OrderStatus.delivered] + }; + var TERMINAL_STATUSES = [ + client_1.OrderStatus.cancelled, + client_1.OrderStatus.rejected, + client_1.OrderStatus.expired + ]; + function resolveAdminStatusFilter(status) { + if (!status) + return void 0; + if (exports2.ADMIN_STATUS_MAP[status]) + return exports2.ADMIN_STATUS_MAP[status]; + if (Object.values(client_1.OrderStatus).includes(status)) { + return [status]; + } + return void 0; + } + __name(resolveAdminStatusFilter, "resolveAdminStatusFilter"); + function toAdminStatus(status) { + for (const [admin, list] of Object.entries(exports2.ADMIN_STATUS_MAP)) { + if (list.includes(status)) + return admin; + } + if (TERMINAL_STATUSES.includes(status)) + return status; + return "pending_review"; + } + __name(toAdminStatus, "toAdminStatus"); + exports2.ORDER_STATUS_LABELS = { + cart: "\u0633\u0628\u062F \u062E\u0631\u06CC\u062F", + awaiting_settlement: "\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 \u062A\u0633\u0648\u06CC\u0647", + cash_in_progress: "\u062F\u0631 \u062D\u0627\u0644 \u062B\u0628\u062A \u0646\u0642\u062F\u06CC", + check_in_progress: "\u062F\u0631 \u062D\u0627\u0644 \u062B\u0628\u062A \u0686\u06A9", + submitted: "\u062B\u0628\u062A\u200C\u0634\u062F\u0647", + awaiting_review: "\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 \u0628\u0631\u0631\u0633\u06CC", + pricing: "\u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC", + needs_correction: "\u0646\u06CC\u0627\u0632 \u0628\u0647 \u0627\u0635\u0644\u0627\u062D", + awaiting_settlement_fix: "\u0627\u0635\u0644\u0627\u062D \u062A\u0633\u0648\u06CC\u0647", + cash_invoice_issued: "\u0635\u062F\u0648\u0631 \u0641\u0627\u06A9\u062A\u0648\u0631 \u0646\u0642\u062F\u06CC", + awaiting_cash_payment: "\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 \u067E\u0631\u062F\u0627\u062E\u062A \u0646\u0642\u062F\u06CC", + cash_payment_submitted: "\u0631\u0633\u06CC\u062F \u0646\u0642\u062F\u06CC \u0627\u0631\u0633\u0627\u0644\u200C\u0634\u062F\u0647", + awaiting_cash_confirmation: "\u062A\u0623\u06CC\u06CC\u062F \u067E\u0631\u062F\u0627\u062E\u062A \u0646\u0642\u062F\u06CC", + cash_confirmed: "\u067E\u0631\u062F\u0627\u062E\u062A \u0646\u0642\u062F\u06CC \u062A\u0623\u06CC\u06CC\u062F \u0634\u062F", + awaiting_check_review: "\u0628\u0631\u0631\u0633\u06CC \u0686\u06A9", + check_needs_fix: "\u0627\u0635\u0644\u0627\u062D \u0686\u06A9", + check_rejected: "\u0631\u062F \u0686\u06A9", + checks_approved: "\u062A\u0623\u06CC\u06CC\u062F \u0686\u06A9\u200C\u0647\u0627", + final_approved: "\u062A\u0623\u06CC\u06CC\u062F \u0646\u0647\u0627\u06CC\u06CC", + preparing: "\u0622\u0645\u0627\u062F\u0647\u200C\u0633\u0627\u0632\u06CC", + ready_to_ship: "\u0622\u0645\u0627\u062F\u0647 \u0627\u0631\u0633\u0627\u0644", + shipped: "\u0627\u0631\u0633\u0627\u0644\u200C\u0634\u062F\u0647", + delivered: "\u062A\u062D\u0648\u06CC\u0644\u200C\u0634\u062F\u0647", + cancelled: "\u0644\u063A\u0648 \u0634\u062F\u0647", + rejected: "\u0631\u062F \u0634\u062F\u0647", + expired: "\u0645\u0646\u0642\u0636\u06CC" + }; + } +}); + +// dist/common/utils/order-transitions.js +var require_order_transitions = __commonJS({ + "dist/common/utils/order-transitions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ORDER_TRANSITIONS = void 0; + exports2.isFinalStatus = isFinalStatus; + exports2.allowedTransitions = allowedTransitions; + exports2.canTransition = canTransition; + exports2.assertTransition = assertTransition; + var common_12 = require_common(); + var client_1 = require_default2(); + var order_status_1 = require_order_status(); + exports2.ORDER_TRANSITIONS = { + awaiting_review: [client_1.OrderStatus.pricing], + pricing: [client_1.OrderStatus.awaiting_settlement], + awaiting_settlement: [ + client_1.OrderStatus.awaiting_cash_payment, + client_1.OrderStatus.check_in_progress, + client_1.OrderStatus.pricing + ], + awaiting_cash_payment: [ + client_1.OrderStatus.awaiting_cash_confirmation, + client_1.OrderStatus.expired + ], + awaiting_cash_confirmation: [ + client_1.OrderStatus.cash_confirmed, + client_1.OrderStatus.awaiting_cash_payment + ], + cash_confirmed: [client_1.OrderStatus.final_approved], + check_in_progress: [client_1.OrderStatus.awaiting_check_review], + awaiting_check_review: [ + client_1.OrderStatus.checks_approved, + client_1.OrderStatus.check_needs_fix + ], + check_needs_fix: [client_1.OrderStatus.awaiting_check_review], + checks_approved: [client_1.OrderStatus.final_approved], + final_approved: [client_1.OrderStatus.preparing], + preparing: [client_1.OrderStatus.ready_to_ship], + ready_to_ship: [client_1.OrderStatus.shipped], + shipped: [client_1.OrderStatus.delivered], + delivered: [], + cancelled: [], + rejected: [], + expired: [], + cart: [client_1.OrderStatus.awaiting_review], + submitted: [client_1.OrderStatus.awaiting_review], + needs_correction: [client_1.OrderStatus.awaiting_review, client_1.OrderStatus.pricing], + awaiting_settlement_fix: [client_1.OrderStatus.awaiting_settlement], + cash_in_progress: [client_1.OrderStatus.awaiting_cash_payment], + cash_invoice_issued: [client_1.OrderStatus.awaiting_cash_payment], + cash_payment_submitted: [client_1.OrderStatus.awaiting_cash_confirmation], + check_rejected: [client_1.OrderStatus.check_needs_fix] + }; + var ADMIN_TERMINAL_TRANSITIONS = [ + client_1.OrderStatus.cancelled, + client_1.OrderStatus.rejected + ]; + var FINAL_STATUSES = [ + client_1.OrderStatus.delivered, + client_1.OrderStatus.cancelled, + client_1.OrderStatus.rejected, + client_1.OrderStatus.expired + ]; + function isFinalStatus(status) { + return FINAL_STATUSES.includes(status); + } + __name(isFinalStatus, "isFinalStatus"); + function allowedTransitions(from) { + const next = [...exports2.ORDER_TRANSITIONS[from] ?? []]; + if (!isFinalStatus(from)) { + for (const terminal of ADMIN_TERMINAL_TRANSITIONS) { + if (!next.includes(terminal)) + next.push(terminal); + } + } + return next; + } + __name(allowedTransitions, "allowedTransitions"); + function canTransition(from, to) { + return allowedTransitions(from).includes(to); + } + __name(canTransition, "canTransition"); + function assertTransition(from, to) { + if (canTransition(from, to)) + return; + throw new common_12.BadRequestException(`\u062A\u063A\u06CC\u06CC\u0631 \u0648\u0636\u0639\u06CC\u062A \u0627\u0632 \xAB${order_status_1.ORDER_STATUS_LABELS[from]}\xBB \u0628\u0647 \xAB${order_status_1.ORDER_STATUS_LABELS[to]}\xBB \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A`); + } + __name(assertTransition, "assertTransition"); + } +}); + +// dist/notifications/notification-events.js +var require_notification_events = __commonJS({ + "dist/notifications/notification-events.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CUSTOMER_EVENTS = void 0; + exports2.eventForStatus = eventForStatus; + var client_1 = require_default2(); + function money(amount) { + if (!amount) + return "\u2014"; + return `${Math.round(amount).toLocaleString("fa-IR")} \u062A\u0648\u0645\u0627\u0646`; + } + __name(money, "money"); + function eventForStatus(status) { + switch (status) { + case client_1.OrderStatus.awaiting_settlement: + return "invoice_priced"; + case client_1.OrderStatus.preparing: + case client_1.OrderStatus.final_approved: + return "order_preparing"; + case client_1.OrderStatus.ready_to_ship: + return "order_ready_to_ship"; + case client_1.OrderStatus.shipped: + return "order_shipped"; + case client_1.OrderStatus.delivered: + return "order_delivered"; + case client_1.OrderStatus.cancelled: + case client_1.OrderStatus.rejected: + return "order_cancelled"; + case client_1.OrderStatus.expired: + return "cash_invoice_expired"; + default: + return null; + } + } + __name(eventForStatus, "eventForStatus"); + exports2.CUSTOMER_EVENTS = { + order_submitted: { + title: "\u0633\u0641\u0627\u0631\u0634 \u0634\u0645\u0627 \u062B\u0628\u062A \u0634\u062F", + body: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062B\u0628\u062A \u0634\u062F \u0648 \u0628\u0631\u0627\u06CC \u0628\u0631\u0631\u0633\u06CC \u0648 \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u0628\u0647 \u06A9\u0627\u0631\u0634\u0646\u0627\u0633\u0627\u0646 \u0645\u0627 \u0631\u0633\u06CC\u062F.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062F\u0631 ${c.appName} \u062B\u0628\u062A \u0634\u062F. \u067E\u0633 \u0627\u0632 \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC\u060C \u0641\u0627\u06A9\u062A\u0648\u0631 \u0628\u0631\u0627\u06CC \u0634\u0645\u0627 \u0627\u0631\u0633\u0627\u0644 \u0645\u06CC\u200C\u0634\u0648\u062F.`, "sms"), + tone: client_1.NotificationTone.info, + smsSwitch: "smsOrderRegistered" + }, + invoice_priced: { + title: "\u0641\u0627\u06A9\u062A\u0648\u0631 \u0633\u0641\u0627\u0631\u0634 \u0634\u0645\u0627 \u0635\u0627\u062F\u0631 \u0634\u062F", + body: /* @__PURE__ */ __name((c) => `\u0645\u0628\u0644\u063A \u0641\u0627\u06A9\u062A\u0648\u0631 \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} ${money(c.amount)} \u0627\u0633\u062A. \u0628\u0631\u0627\u06CC \u0627\u062F\u0627\u0645\u0647\u060C \u0631\u0648\u0634 \u062A\u0633\u0648\u06CC\u0647 \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0641\u0627\u06A9\u062A\u0648\u0631 \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0628\u0647 \u0645\u0628\u0644\u063A ${money(c.amount)} \u0635\u0627\u062F\u0631 \u0634\u062F. \u0628\u0631\u0627\u06CC \u0627\u0646\u062A\u062E\u0627\u0628 \u0631\u0648\u0634 \u062A\u0633\u0648\u06CC\u0647 \u0628\u0647 \u067E\u0646\u0644 ${c.appName} \u0645\u0631\u0627\u062C\u0639\u0647 \u06A9\u0646\u06CC\u062F.`, "sms"), + tone: client_1.NotificationTone.success, + smsSwitch: "smsPricingReady" + }, + checks_approved: { + title: "\u0686\u06A9\u200C\u0647\u0627\u06CC \u0634\u0645\u0627 \u062A\u0627\u06CC\u06CC\u062F \u0634\u062F", + body: /* @__PURE__ */ __name((c) => `\u0647\u0645\u0647 \u0686\u06A9\u200C\u0647\u0627\u06CC \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u0627\u06CC\u06CC\u062F \u0634\u062F\u0646\u062F.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0686\u06A9\u200C\u0647\u0627\u06CC \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u0627\u06CC\u06CC\u062F \u0634\u062F \u0648 \u0633\u0641\u0627\u0631\u0634 \u0628\u0647 \u0645\u0631\u062D\u0644\u0647 \u0622\u0645\u0627\u062F\u0647\u200C\u0633\u0627\u0632\u06CC \u0645\u06CC\u200C\u0631\u0648\u062F.`, "sms"), + tone: client_1.NotificationTone.success, + smsSwitch: "smsCheckReview" + }, + checks_need_fix: { + title: "\u0686\u06A9 \u0634\u0645\u0627 \u0646\u06CC\u0627\u0632 \u0628\u0647 \u0627\u0635\u0644\u0627\u062D \u062F\u0627\u0631\u062F", + body: /* @__PURE__ */ __name((c) => `\u06CC\u06A9 \u06CC\u0627 \u0686\u0646\u062F \u0686\u06A9 \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u0627\u06CC\u06CC\u062F \u0646\u0634\u062F${c.note ? `: ${c.note}` : "."} \u0644\u0637\u0641\u0627\u064B \u0686\u06A9\u200C\u0647\u0627 \u0631\u0627 \u0627\u0635\u0644\u0627\u062D \u0648 \u0645\u062C\u062F\u062F\u0627\u064B \u0627\u0631\u0633\u0627\u0644 \u06A9\u0646\u06CC\u062F.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0686\u06A9 \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u0627\u06CC\u06CC\u062F \u0646\u0634\u062F. \u0628\u0631\u0627\u06CC \u0627\u0635\u0644\u0627\u062D \u0686\u06A9\u200C\u0647\u0627 \u0628\u0647 \u067E\u0646\u0644 ${c.appName} \u0645\u0631\u0627\u062C\u0639\u0647 \u06A9\u0646\u06CC\u062F.`, "sms"), + tone: client_1.NotificationTone.danger, + smsSwitch: "smsCheckReview" + }, + receipt_approved: { + title: "\u067E\u0631\u062F\u0627\u062E\u062A \u0634\u0645\u0627 \u062A\u0627\u06CC\u06CC\u062F \u0634\u062F", + body: /* @__PURE__ */ __name((c) => `\u0631\u0633\u06CC\u062F \u067E\u0631\u062F\u0627\u062E\u062A \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u0627\u06CC\u06CC\u062F \u0634\u062F.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0631\u0633\u06CC\u062F \u067E\u0631\u062F\u0627\u062E\u062A \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u0627\u06CC\u06CC\u062F \u0634\u062F. \u0633\u0641\u0627\u0631\u0634 \u0634\u0645\u0627 \u062F\u0631 \u062D\u0627\u0644 \u0622\u0645\u0627\u062F\u0647\u200C\u0633\u0627\u0632\u06CC \u0627\u0633\u062A.`, "sms"), + tone: client_1.NotificationTone.success, + smsSwitch: "smsPaymentReminder" + }, + receipt_rejected: { + title: "\u0631\u0633\u06CC\u062F \u067E\u0631\u062F\u0627\u062E\u062A \u062A\u0627\u06CC\u06CC\u062F \u0646\u0634\u062F", + body: /* @__PURE__ */ __name((c) => `\u0631\u0633\u06CC\u062F \u067E\u0631\u062F\u0627\u062E\u062A \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u0627\u06CC\u06CC\u062F \u0646\u0634\u062F${c.note ? `: ${c.note}` : "."} \u0644\u0637\u0641\u0627\u064B \u0631\u0633\u06CC\u062F \u0635\u062D\u06CC\u062D \u0631\u0627 \u062B\u0628\u062A \u06A9\u0646\u06CC\u062F.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0631\u0633\u06CC\u062F \u067E\u0631\u062F\u0627\u062E\u062A \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u0627\u06CC\u06CC\u062F \u0646\u0634\u062F. \u0644\u0637\u0641\u0627\u064B \u062F\u0631 \u067E\u0646\u0644 ${c.appName} \u0631\u0633\u06CC\u062F \u0631\u0627 \u0627\u0635\u0644\u0627\u062D \u06A9\u0646\u06CC\u062F.`, "sms"), + tone: client_1.NotificationTone.danger, + smsSwitch: "smsPaymentReminder" + }, + cash_invoice_reminder: { + title: "\u06CC\u0627\u062F\u0622\u0648\u0631\u06CC \u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A", + body: /* @__PURE__ */ __name((c) => `\u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u0641\u0627\u06A9\u062A\u0648\u0631 \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0628\u0647 \u067E\u0627\u06CC\u0627\u0646 \u0646\u0632\u062F\u06CC\u06A9 \u0627\u0633\u062A. \u0645\u0628\u0644\u063A \u0642\u0627\u0628\u0644 \u067E\u0631\u062F\u0627\u062E\u062A ${money(c.amount)}.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u0641\u0627\u06A9\u062A\u0648\u0631 \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062F\u0631 \u062D\u0627\u0644 \u067E\u0627\u06CC\u0627\u0646 \u0627\u0633\u062A. \u0645\u0628\u0644\u063A ${money(c.amount)}.`, "sms"), + tone: client_1.NotificationTone.warning, + smsSwitch: "smsPaymentReminder" + }, + cash_invoice_expired: { + title: "\u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u0641\u0627\u06A9\u062A\u0648\u0631 \u062A\u0645\u0627\u0645 \u0634\u062F", + body: /* @__PURE__ */ __name((c) => `\u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u0641\u0627\u06A9\u062A\u0648\u0631 \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0628\u0647 \u067E\u0627\u06CC\u0627\u0646 \u0631\u0633\u06CC\u062F. \u0628\u0631\u0627\u06CC \u062B\u0628\u062A \u0633\u0641\u0627\u0631\u0634 \u062A\u0627\u0632\u0647 \u0628\u0627 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u062A\u0645\u0627\u0633 \u0628\u06AF\u06CC\u0631\u06CC\u062F.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u0641\u0627\u06A9\u062A\u0648\u0631 \u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0628\u0647 \u067E\u0627\u06CC\u0627\u0646 \u0631\u0633\u06CC\u062F.`, "sms"), + tone: client_1.NotificationTone.danger, + smsSwitch: "smsPaymentReminder" + }, + order_preparing: { + title: "\u0633\u0641\u0627\u0631\u0634 \u062F\u0631 \u062D\u0627\u0644 \u0622\u0645\u0627\u062F\u0647\u200C\u0633\u0627\u0632\u06CC", + body: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u0627\u06CC\u06CC\u062F \u0646\u0647\u0627\u06CC\u06CC \u0634\u062F \u0648 \u062F\u0631 \u062D\u0627\u0644 \u0622\u0645\u0627\u062F\u0647\u200C\u0633\u0627\u0632\u06CC \u0627\u0633\u062A.`, "body"), + tone: client_1.NotificationTone.info, + smsSwitch: null + }, + order_ready_to_ship: { + title: "\u0633\u0641\u0627\u0631\u0634 \u0622\u0645\u0627\u062F\u0647 \u0627\u0631\u0633\u0627\u0644 \u0627\u0633\u062A", + body: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0622\u0645\u0627\u062F\u0647 \u0627\u0631\u0633\u0627\u0644 \u0634\u062F.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0622\u0645\u0627\u062F\u0647 \u0627\u0631\u0633\u0627\u0644 \u0634\u062F.`, "sms"), + tone: client_1.NotificationTone.info, + smsSwitch: "smsShippingUpdate" + }, + order_shipped: { + title: "\u0633\u0641\u0627\u0631\u0634 \u0627\u0631\u0633\u0627\u0644 \u0634\u062F", + body: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0627\u0631\u0633\u0627\u0644 \u0634\u062F${c.carrier ? ` (${c.carrier})` : ""}${c.trackingNumber ? ` \u0628\u0627 \u06A9\u062F \u0631\u0647\u06AF\u06CC\u0631\u06CC ${c.trackingNumber}` : ""}.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0627\u0631\u0633\u0627\u0644 \u0634\u062F${c.trackingNumber ? `. \u06A9\u062F \u0631\u0647\u06AF\u06CC\u0631\u06CC: ${c.trackingNumber}` : "."}`, "sms"), + tone: client_1.NotificationTone.success, + smsSwitch: "smsShippingUpdate" + }, + order_delivered: { + title: "\u0633\u0641\u0627\u0631\u0634 \u062A\u062D\u0648\u06CC\u0644 \u0634\u062F", + body: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u062D\u0648\u06CC\u0644 \u062F\u0627\u062F\u0647 \u0634\u062F. \u0627\u0632 \u062E\u0631\u06CC\u062F \u0634\u0645\u0627 \u0633\u067E\u0627\u0633\u06AF\u0632\u0627\u0631\u06CC\u0645.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u062A\u062D\u0648\u06CC\u0644 \u062F\u0627\u062F\u0647 \u0634\u062F. \u0627\u0632 \u062E\u0631\u06CC\u062F \u0634\u0645\u0627 \u0633\u067E\u0627\u0633\u06AF\u0632\u0627\u0631\u06CC\u0645.`, "sms"), + tone: client_1.NotificationTone.success, + smsSwitch: "smsShippingUpdate" + }, + order_cancelled: { + title: "\u0633\u0641\u0627\u0631\u0634 \u0644\u063A\u0648 \u0634\u062F", + body: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0644\u063A\u0648 \u0634\u062F${c.note ? `: ${c.note}` : "."} \u0628\u0631\u0627\u06CC \u0627\u0637\u0644\u0627\u0639\u0627\u062A \u0628\u06CC\u0634\u062A\u0631 \u0628\u0627 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u062A\u0645\u0627\u0633 \u0628\u06AF\u06CC\u0631\u06CC\u062F.`, "body"), + sms: /* @__PURE__ */ __name((c) => `\u0633\u0641\u0627\u0631\u0634 ${c.orderNumber} \u0644\u063A\u0648 \u0634\u062F.`, "sms"), + tone: client_1.NotificationTone.danger, + smsSwitch: null + } + }; + } +}); + +// dist/notifications/notifications.service.js +var require_notifications_service = __commonJS({ + "dist/notifications/notifications.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var NotificationsService_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NotificationsService = void 0; + var common_12 = require_common(); + var config_1 = require_config2(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var sms_service_1 = require_sms_service(); + var notification_events_1 = require_notification_events(); + var NotificationsService = NotificationsService_1 = class NotificationsService { + static { + __name(this, "NotificationsService"); + } + prisma; + sms; + config; + logger = new common_12.Logger(NotificationsService_1.name); + constructor(prisma, sms, config) { + this.prisma = prisma; + this.sms = sms; + this.config = config; + } + async notifyOrderEvent(orderId, event, options = {}) { + try { + const order = await this.prisma.order.findUnique({ + where: { id: orderId }, + select: { + id: true, + orderNumber: true, + userId: true, + finalAmount: true, + totalAmount: true, + user: { select: { phone: true } } + } + }); + if (!order) + return; + const template = notification_events_1.CUSTOMER_EVENTS[event]; + const ctx = { + orderNumber: order.orderNumber, + appName: this.appName(), + amount: options.amount ?? order.finalAmount ?? order.totalAmount ?? void 0, + note: options.note ?? null, + carrier: options.carrier ?? null, + trackingNumber: options.trackingNumber ?? null + }; + const notification = await this.prisma.customerNotification.create({ + data: { + customerId: order.userId, + orderId: order.id, + event, + title: template.title, + body: template.body(ctx), + tone: template.tone, + link: `/orders/${order.id}` + } + }); + if (!template.sms || !template.smsSwitch) + return; + const enabled = await this.isSmsEventEnabled(template.smsSwitch); + if (!enabled || !this.sms.isEnabled()) + return; + const result = await this.sms.send(order.user.phone, template.sms(ctx)); + if (result.success) { + await this.prisma.customerNotification.update({ + where: { id: notification.id }, + data: { smsSent: true } + }); + } + } catch (err) { + this.logger.error(`notifyOrderEvent(${event}) failed for order ${orderId}`, err instanceof Error ? err.stack : err); + } + } + dispatchOrderEvent(orderId, event, options = {}) { + void this.notifyOrderEvent(orderId, event, options); + } + async notifyAdmin(input) { + try { + await this.prisma.adminNotification.create({ + data: { + title: input.title, + body: input.body, + tone: input.tone ?? client_1.NotificationTone.info, + link: input.link ?? null + } + }); + } catch (err) { + this.logger.error("notifyAdmin failed", err instanceof Error ? err.stack : err); + } + } + dispatchAdmin(input) { + void this.notifyAdmin(input); + } + async listForCustomer(customerId, limit = 50) { + const rows = await this.prisma.customerNotification.findMany({ + where: { customerId }, + orderBy: { sentAt: "desc" }, + take: limit + }); + return rows.map((n) => ({ + id: n.id, + orderId: n.orderId ?? void 0, + event: n.event, + title: n.title, + body: n.body, + tone: n.tone ?? client_1.NotificationTone.info, + link: n.link ?? void 0, + isRead: n.isRead, + sentAt: n.sentAt.toISOString() + })); + } + async unreadCount(customerId) { + const count = await this.prisma.customerNotification.count({ + where: { customerId, isRead: false } + }); + return { count }; + } + async markRead(customerId, id) { + const existing = await this.prisma.customerNotification.findFirst({ + where: { id, customerId }, + select: { id: true } + }); + if (!existing) + throw new common_12.NotFoundException("\u0627\u0639\u0644\u0627\u0646 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + await this.prisma.customerNotification.update({ + where: { id }, + data: { isRead: true } + }); + return this.unreadCount(customerId); + } + async markAllRead(customerId) { + await this.prisma.customerNotification.updateMany({ + where: { customerId, isRead: false }, + data: { isRead: true } + }); + return { count: 0 }; + } + async markAdminRead(id) { + await this.prisma.adminNotification.updateMany({ + where: { id }, + data: { isRead: true } + }); + return { ok: true }; + } + async markAllAdminRead() { + await this.prisma.adminNotification.updateMany({ + where: { isRead: false }, + data: { isRead: true } + }); + return { ok: true }; + } + async broadcastToCustomers(input) { + const where = input.customerIds?.length ? { id: { in: input.customerIds }, isActive: true } : { isActive: true, appRole: "customer" }; + const customers = await this.prisma.customer.findMany({ + where, + select: { id: true } + }); + if (!customers.length) + return { sent: 0 }; + await this.prisma.customerNotification.createMany({ + data: customers.map((c) => ({ + customerId: c.id, + event: "admin_broadcast", + title: input.title.trim(), + body: input.body.trim(), + tone: input.tone ?? "info" + })) + }); + return { sent: customers.length }; + } + appName() { + return this.config.get("SMS_APP_NAME", "\u067E\u0627\u0631\u0686\u0647") ?? "\u067E\u0627\u0631\u0686\u0647"; + } + async isSmsEventEnabled(key) { + const settings = await this.prisma.systemSettings.findUnique({ + where: { id: "default" }, + select: { + smsOrderRegistered: true, + smsPricingReady: true, + smsPaymentReminder: true, + smsCheckReview: true, + smsShippingUpdate: true + } + }); + return settings ? settings[key] : true; + } + }; + exports2.NotificationsService = NotificationsService; + exports2.NotificationsService = NotificationsService = NotificationsService_1 = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [ + prisma_service_1.PrismaService, + sms_service_1.SmsService, + config_1.ConfigService + ]) + ], NotificationsService); + } +}); + +// dist/orders/orders.service.js +var require_orders_service = __commonJS({ + "dist/orders/orders.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.OrdersService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var order_number_1 = require_order_number(); + var check_rass_1 = require_check_rass(); + var cash_expiry_1 = require_cash_expiry(); + var order_status_1 = require_order_status(); + var order_transitions_1 = require_order_transitions(); + var meterage_1 = require_meterage(); + var notifications_service_1 = require_notifications_service(); + var notification_events_1 = require_notification_events(); + var name_1 = require_name(); + var phone_1 = require_phone(); + var orderInclude = { + items: true, + checks: { orderBy: { row: "asc" } }, + cashReceipt: true, + statusHistory: { orderBy: { changedAt: "asc" } }, + shipment: true, + user: true, + company: true + }; + function roundMoney(value) { + return Math.round(value * 100) / 100; + } + __name(roundMoney, "roundMoney"); + var CHECK_EDITABLE_STATUSES = [ + client_1.OrderStatus.check_in_progress, + client_1.OrderStatus.awaiting_check_review, + client_1.OrderStatus.check_needs_fix, + client_1.OrderStatus.check_rejected + ]; + var PRICE_HIDDEN_STATUSES = [ + client_1.OrderStatus.awaiting_review, + client_1.OrderStatus.pricing + ]; + var OrdersService = class OrdersService { + static { + __name(this, "OrdersService"); + } + prisma; + notifications; + constructor(prisma, notifications) { + this.prisma = prisma; + this.notifications = notifications; + } + async findMyOrders(userId) { + const orders = await this.prisma.order.findMany({ + where: { userId }, + orderBy: { createdAt: "desc" }, + include: orderInclude + }); + return orders.map((o) => this.mapOrder(o)); + } + async findMyOrder(userId, id) { + const order = await this.getOrder(id); + if (order.userId !== userId) { + throw new common_12.ForbiddenException("\u062F\u0633\u062A\u0631\u0633\u06CC \u0628\u0647 \u0627\u06CC\u0646 \u0633\u0641\u0627\u0631\u0634 \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A"); + } + return this.mapOrder(order); + } + async findAdminOrders(filters) { + const statuses = (0, order_status_1.resolveAdminStatusFilter)(filters.status); + const q = filters.q?.trim(); + const orders = await this.prisma.order.findMany({ + where: { + ...statuses ? { status: { in: statuses } } : {}, + ...q ? { + OR: [ + { orderNumber: { contains: q, mode: "insensitive" } }, + { companyName: { contains: q, mode: "insensitive" } }, + { + user: { + OR: [ + { firstName: { contains: q, mode: "insensitive" } }, + { lastName: { contains: q, mode: "insensitive" } }, + { phone: { contains: (0, phone_1.toEnglishDigits)(q) } } + ] + } + } + ] + } : {} + }, + orderBy: { createdAt: "desc" }, + include: orderInclude + }); + return orders.map((o) => this.mapOrder(o, true)); + } + async findAdminOrder(id) { + const order = await this.getOrder(id); + return this.mapOrder(order, true); + } + async submitOrder(userId, dto) { + const settings = await this.prisma.systemSettings.findUnique({ + where: { id: "default" }, + select: { + maxMeteragePerInvoice: true, + minOrderRollsPerProduct: true + } + }); + const minRolls = settings?.minOrderRollsPerProduct ?? 1; + const productIds = dto.items.map((i) => i.productId); + const uniqueProductIds = [...new Set(productIds)]; + if (uniqueProductIds.length !== productIds.length) { + throw new common_12.BadRequestException("\u0645\u062D\u0635\u0648\u0644 \u062A\u06A9\u0631\u0627\u0631\u06CC \u062F\u0631 \u0633\u0641\u0627\u0631\u0634 \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A"); + } + const products = await this.prisma.product.findMany({ + where: { id: { in: uniqueProductIds } }, + include: { catalog: true, company: true } + }); + const productMap = new Map(products.map((p) => [p.id, p])); + for (const item of dto.items) { + const product = productMap.get(item.productId); + if (!product) { + throw new common_12.BadRequestException("\u06CC\u06A9 \u06CC\u0627 \u0686\u0646\u062F \u0645\u062D\u0635\u0648\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A \u06CC\u0627 \u062F\u06CC\u06AF\u0631 \u062F\u0631 \u0633\u06CC\u0633\u062A\u0645 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F. \u0633\u0628\u062F \u0631\u0627 \u062E\u0627\u0644\u06CC \u06A9\u0646\u06CC\u062F \u0648 \u062F\u0648\u0628\u0627\u0631\u0647 \u0627\u0636\u0627\u0641\u0647 \u06A9\u0646\u06CC\u062F."); + } + if (!product.isActive) { + throw new common_12.BadRequestException(`\u0645\u062D\u0635\u0648\u0644 \xAB${product.name}\xBB \u063A\u06CC\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062A \u0648 \u0642\u0627\u0628\u0644 \u0633\u0641\u0627\u0631\u0634 \u0646\u06CC\u0633\u062A`); + } + if (!product.company?.isActive) { + throw new common_12.BadRequestException(`\u0634\u0631\u06A9\u062A \u0645\u062D\u0635\u0648\u0644 \xAB${product.name}\xBB \u063A\u06CC\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062A`); + } + } + const meterageByCompany = /* @__PURE__ */ new Map(); + for (const item of dto.items) { + const product = productMap.get(item.productId); + const current = meterageByCompany.get(product.companyId); + if (current) { + current.meterage += item.meterage; + } else { + meterageByCompany.set(product.companyId, { + name: product.company.name, + meterage: item.meterage, + max: product.company.maxMeteragePerInvoice + }); + } + } + for (const row of meterageByCompany.values()) { + const maxMeterageResolved = (0, meterage_1.resolveMaxMeterage)(row.max, settings?.maxMeteragePerInvoice); + if (row.meterage > maxMeterageResolved) { + throw new common_12.BadRequestException(`\u062D\u062F\u0627\u06A9\u062B\u0631 \u0645\u062A\u0631\u0627\u0698 \u0645\u062C\u0627\u0632 \u0641\u0627\u06A9\u062A\u0648\u0631 \u0628\u0631\u0627\u06CC \xAB${row.name}\xBB \u0628\u0631\u0627\u0628\u0631 ${maxMeterageResolved} \u0645\u062A\u0631 \u0627\u0633\u062A`); + } + } + let totalMeterage = 0; + const itemsData = dto.items.map((item) => { + const product = productMap.get(item.productId); + if (item.meterage < product.minMeterage) { + throw new common_12.BadRequestException(`\u062D\u062F\u0627\u0642\u0644 \u0645\u062A\u0631\u0627\u0698 \u0628\u0631\u0627\u06CC ${product.name} \u0628\u0631\u0627\u0628\u0631 ${product.minMeterage} \u0627\u0633\u062A`); + } + const rem = Math.round(item.meterage / product.orderMultiplier * 1e3) / 1e3; + if (Math.abs(rem - Math.round(rem)) > 1e-6) { + throw new common_12.BadRequestException(`\u0645\u062A\u0631\u0627\u0698 ${product.name} \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${product.orderMultiplier} \u0628\u0627\u0634\u062F`); + } + const rollMeters = product.rollMeters && product.rollMeters > 0 ? product.rollMeters : product.minMeterage > 0 ? product.minMeterage : 50; + if (item.meterage / rollMeters + 1e-9 < minRolls) { + throw new common_12.BadRequestException(`\u062D\u062F\u0627\u0642\u0644 \u0633\u0641\u0627\u0631\u0634 \u0628\u0631\u0627\u06CC ${product.name} \u0628\u0631\u0627\u0628\u0631 ${minRolls} \u0637\u0627\u0642\u0647 \u0627\u0633\u062A`); + } + totalMeterage += item.meterage; + return { + productId: product.id, + catalogCode: product.catalog.code, + productName: product.name, + productCode: product.code, + color: product.color, + requestedMeterage: item.meterage, + notes: item.notes?.trim() || null, + companyId: product.companyId, + companyName: product.company.name + }; + }); + const companyNames = [ + ...new Set(itemsData.map((item) => item.companyName).filter(Boolean)) + ]; + const preferredCompanyId = itemsData.some((item) => item.companyId === dto.companyId) ? dto.companyId : itemsData[0].companyId; + const primaryCompany = products.find((p) => p.companyId === preferredCompanyId)?.company; + if (!primaryCompany) { + throw new common_12.NotFoundException("\u0634\u0631\u06A9\u062A \u0645\u062D\u0635\u0648\u0644\u0627\u062A \u06CC\u0627\u0641\u062A \u0646\u0634\u062F \u06CC\u0627 \u063A\u06CC\u0631\u0641\u0639\u0627\u0644 \u0627\u0633\u062A"); + } + const order = await this.createWithUniqueOrderNumber((orderNumber) => this.prisma.$transaction(async (tx) => { + const created = await tx.order.create({ + data: { + orderNumber, + userId, + companyId: primaryCompany.id, + companyName: companyNames.join("\u060C "), + settlementType: null, + checkMode: null, + status: client_1.OrderStatus.awaiting_review, + totalMeterage, + notes: dto.notes?.trim() || null, + items: { create: itemsData }, + statusHistory: { + create: [ + { + fromStatus: null, + toStatus: client_1.OrderStatus.awaiting_review, + changedBy: "customer", + note: "\u0633\u0641\u0627\u0631\u0634 \u062B\u0628\u062A \u0634\u062F \u0648 \u0628\u0631\u0627\u06CC \u0628\u0631\u0631\u0633\u06CC \u0645\u062F\u06CC\u0631\u06CC\u062A \u0627\u0631\u0633\u0627\u0644 \u0634\u062F" + } + ] + } + }, + include: orderInclude + }); + const cart = await tx.cart.findFirst({ where: { userId } }); + if (cart) { + await tx.cartItem.deleteMany({ + where: { + cartId: cart.id, + productId: { in: uniqueProductIds } + } + }); + const remaining = await tx.cartItem.findFirst({ + where: { cartId: cart.id } + }); + await tx.cart.update({ + where: { id: cart.id }, + data: { companyId: remaining?.companyId ?? null } + }); + } + return created; + })); + this.notifications.dispatchOrderEvent(order.id, "order_submitted"); + this.notifications.dispatchAdmin({ + title: "\u0633\u0641\u0627\u0631\u0634 \u062C\u062F\u06CC\u062F \u062B\u0628\u062A \u0634\u062F", + body: `\u0633\u0641\u0627\u0631\u0634 ${order.orderNumber} \u0628\u0627 ${order.items.length} \u0642\u0644\u0645 \u0648 ${order.totalMeterage} \u0645\u062A\u0631 \u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u0627\u0633\u062A.`, + link: `/orders/${order.id}` + }); + return this.mapOrder(order); + } + async chooseSettlement(userId, id, dto) { + const order = await this.getOrder(id); + if (order.userId !== userId) { + throw new common_12.ForbiddenException("\u062F\u0633\u062A\u0631\u0633\u06CC \u0628\u0647 \u0627\u06CC\u0646 \u0633\u0641\u0627\u0631\u0634 \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A"); + } + if (order.status !== client_1.OrderStatus.awaiting_settlement) { + throw new common_12.BadRequestException("\u0627\u0646\u062A\u062E\u0627\u0628 \u0631\u0648\u0634 \u062A\u0633\u0648\u06CC\u0647 \u0641\u0642\u0637 \u067E\u0633 \u0627\u0632 \u0635\u062F\u0648\u0631 \u0641\u0627\u06A9\u062A\u0648\u0631 \u062A\u0648\u0633\u0637 \u0645\u062F\u06CC\u0631\u06CC\u062A \u0627\u0645\u06A9\u0627\u0646\u200C\u067E\u0630\u06CC\u0631 \u0627\u0633\u062A"); + } + const isCash = dto.settlementType === client_1.SettlementType.cash; + const nextStatus = isCash ? client_1.OrderStatus.awaiting_cash_payment : client_1.OrderStatus.check_in_progress; + (0, order_transitions_1.assertTransition)(order.status, nextStatus); + const cashCompanies = isCash ? await this.companiesForOrder(order) : []; + await this.prisma.$transaction(async (tx) => { + await tx.order.update({ + where: { id }, + data: { + settlementType: dto.settlementType, + checkMode: isCash ? null : dto.checkMode ?? client_1.CheckRegistrationMode.full, + cashInvoiceExpiresAt: isCash ? (0, cash_expiry_1.earliestCashInvoiceExpiry)(cashCompanies) : null, + cashReminderSentAt: null, + status: nextStatus + } + }); + await tx.orderStatusHistory.create({ + data: { + orderId: id, + fromStatus: order.status, + toStatus: nextStatus, + changedBy: "customer", + note: isCash ? "\u0645\u0634\u062A\u0631\u06CC \u062A\u0633\u0648\u06CC\u0647 \u0646\u0642\u062F\u06CC \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0631\u062F" : "\u0645\u0634\u062A\u0631\u06CC \u062A\u0633\u0648\u06CC\u0647 \u0686\u06A9\u06CC \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0631\u062F" + } + }); + }); + return this.findMyOrder(userId, id); + } + async adminCreate(adminId, dto) { + const company = await this.prisma.company.findUnique({ + where: { id: dto.companyId } + }); + if (!company) + throw new common_12.NotFoundException("\u0634\u0631\u06A9\u062A \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + let userId = dto.customerId || dto.userId; + if (userId) { + const existing = await this.prisma.customer.findUnique({ + where: { id: userId } + }); + if (!existing) { + throw new common_12.BadRequestException("\u0645\u0634\u062A\u0631\u06CC \u0627\u0646\u062A\u062E\u0627\u0628\u200C\u0634\u062F\u0647 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + } + } else if (dto.customerPhone) { + const phone = (0, phone_1.normalizePhone)((0, phone_1.toEnglishDigits)(dto.customerPhone)); + if (!(0, phone_1.isValidPhone)(phone)) { + throw new common_12.BadRequestException("\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + let customer = await this.prisma.customer.findUnique({ + where: { phone } + }); + if (!customer) { + const names = (0, name_1.splitFullName)(dto.customerName || "\u0645\u0634\u062A\u0631\u06CC \u062C\u062F\u06CC\u062F"); + customer = await this.prisma.customer.create({ + data: { + phone, + firstName: names.firstName, + lastName: names.lastName || "\u062C\u062F\u06CC\u062F" + } + }); + } + userId = customer.id; + } + if (!userId) { + throw new common_12.BadRequestException("\u0627\u0646\u062A\u062E\u0627\u0628 \u0645\u0634\u062A\u0631\u06CC \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A"); + } + const totalMeterage = dto.meterage ?? 0; + const ownerId = userId; + const order = await this.createWithUniqueOrderNumber((orderNumber) => this.prisma.order.create({ + data: { + orderNumber, + userId: ownerId, + companyId: company.id, + companyName: company.name, + settlementType: null, + status: client_1.OrderStatus.awaiting_review, + totalMeterage, + notes: dto.notes?.trim() || null, + statusHistory: { + create: { + fromStatus: null, + toStatus: client_1.OrderStatus.awaiting_review, + changedBy: `admin:${adminId}`, + note: "\u0633\u0641\u0627\u0631\u0634 \u062A\u0648\u0633\u0637 \u0627\u062F\u0645\u06CC\u0646 \u062B\u0628\u062A \u0634\u062F" + } + } + }, + include: orderInclude + })); + return this.mapOrder(order, true); + } + async updatePricing(id, adminId, dto) { + const order = await this.getOrder(id); + const unknown = dto.items.find((item) => !order.items.some((i) => i.id === item.id)); + if (unknown) { + throw new common_12.BadRequestException(`\u0622\u06CC\u062A\u0645 ${unknown.id} \u06CC\u0627\u0641\u062A \u0646\u0634\u062F`); + } + await this.prisma.$transaction(async (tx) => { + let totalAmount = 0; + let totalMeterage = 0; + for (const existing of order.items) { + const item = dto.items.find((i) => i.id === existing.id); + const unitPrice = item?.unitPrice !== void 0 ? item.unitPrice : item?.supplyPrice !== void 0 ? item.supplyPrice : existing.unitPrice ?? 0; + const unitDiscount = item?.unitDiscount ?? existing.unitDiscount ?? 0; + if (unitDiscount > unitPrice) { + throw new common_12.BadRequestException("\u062A\u062E\u0641\u06CC\u0641 \u0648\u0627\u062D\u062F \u0646\u0645\u06CC\u200C\u062A\u0648\u0627\u0646\u062F \u0627\u0632 \u0642\u06CC\u0645\u062A \u0648\u0627\u062D\u062F \u0628\u06CC\u0634\u062A\u0631 \u0628\u0627\u0634\u062F"); + } + const confirmed = item?.confirmedMeterage ?? existing.confirmedMeterage ?? existing.requestedMeterage; + const lineTotal = roundMoney(Math.max(0, (unitPrice - unitDiscount) * confirmed)); + totalAmount += lineTotal; + totalMeterage += confirmed; + if (!item) + continue; + await tx.orderItem.update({ + where: { id: existing.id }, + data: { + confirmedMeterage: confirmed, + unitPrice, + unitDiscount, + lineTotal + } + }); + } + totalAmount = roundMoney(totalAmount); + const shippingCost = dto.shippingCost ?? order.shippingCost ?? 0; + const totalDiscount = dto.totalDiscount ?? order.totalDiscount ?? 0; + const finalAmount = roundMoney(Math.max(0, totalAmount + shippingCost - totalDiscount)); + const nextStatus = order.status === client_1.OrderStatus.awaiting_review || order.status === client_1.OrderStatus.pricing ? client_1.OrderStatus.pricing : order.status; + await tx.order.update({ + where: { id }, + data: { + totalAmount, + totalMeterage, + shippingCost, + totalDiscount, + finalAmount, + status: nextStatus + } + }); + if (nextStatus !== order.status) { + await tx.orderStatusHistory.create({ + data: { + orderId: id, + fromStatus: order.status, + toStatus: nextStatus, + changedBy: `admin:${adminId}`, + note: dto.note || "\u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u0627\u0646\u062C\u0627\u0645 \u0634\u062F" + } + }); + } + }); + return this.findAdminOrder(id); + } + async updateStatus(id, adminId, dto) { + const order = await this.getOrder(id); + if (order.status === dto.status) { + return this.mapOrder(order, true); + } + if (dto.force) { + if (!dto.reason?.trim()) { + throw new common_12.BadRequestException("\u0628\u0631\u0627\u06CC \u062A\u063A\u06CC\u06CC\u0631 \u062F\u0633\u062A\u06CC \u0648\u0636\u0639\u06CC\u062A\u060C \u0630\u06A9\u0631 \u062F\u0644\u06CC\u0644 \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A"); + } + } else { + (0, order_transitions_1.assertTransition)(order.status, dto.status); + } + if (dto.status === client_1.OrderStatus.awaiting_settlement && (order.finalAmount ?? 0) <= 0) { + throw new common_12.BadRequestException("\u0627\u0628\u062A\u062F\u0627 \u0633\u0641\u0627\u0631\u0634 \u0631\u0627 \u0642\u06CC\u0645\u062A\u200C\u06AF\u0630\u0627\u0631\u06CC \u06A9\u0646\u06CC\u062F \u062A\u0627 \u0641\u0627\u06A9\u062A\u0648\u0631 \u0642\u0627\u0628\u0644 \u0627\u0631\u0633\u0627\u0644 \u0628\u0627\u0634\u062F"); + } + const needsCashExpiry = (dto.status === client_1.OrderStatus.cash_invoice_issued || dto.status === client_1.OrderStatus.awaiting_cash_payment) && !order.cashInvoiceExpiresAt; + const cashExpiry = needsCashExpiry ? (0, cash_expiry_1.earliestCashInvoiceExpiry)(await this.companiesForOrder(order)) : null; + await this.prisma.$transaction(async (tx) => { + await tx.order.update({ + where: { id }, + data: { status: dto.status } + }); + await tx.orderStatusHistory.create({ + data: { + orderId: id, + fromStatus: order.status, + toStatus: dto.status, + changedBy: `admin:${adminId}`, + note: dto.force ? `\u062A\u063A\u06CC\u06CC\u0631 \u062F\u0633\u062A\u06CC \u0648\u0636\u0639\u06CC\u062A${dto.note ? ` \u2014 ${dto.note}` : ""}` : dto.note || null, + reason: dto.reason || null + } + }); + if (cashExpiry) { + await tx.order.update({ + where: { id }, + data: { cashInvoiceExpiresAt: cashExpiry } + }); + } + }); + const event = (0, notification_events_1.eventForStatus)(dto.status); + if (event) { + this.notifications.dispatchOrderEvent(id, event, { + note: dto.reason ?? dto.note ?? null + }); + } + return this.findAdminOrder(id); + } + async updateChecks(userId, id, dto) { + const order = await this.getOrder(id); + if (order.userId !== userId) { + throw new common_12.ForbiddenException("\u062F\u0633\u062A\u0631\u0633\u06CC \u0628\u0647 \u0627\u06CC\u0646 \u0633\u0641\u0627\u0631\u0634 \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A"); + } + if (order.settlementType !== client_1.SettlementType.check) { + throw new common_12.BadRequestException("\u0627\u06CC\u0646 \u0633\u0641\u0627\u0631\u0634 \u062A\u0633\u0648\u06CC\u0647 \u0686\u06A9\u06CC \u0646\u06CC\u0633\u062A"); + } + if (!CHECK_EDITABLE_STATUSES.includes(order.status)) { + throw new common_12.BadRequestException("\u062F\u0631 \u0648\u0636\u0639\u06CC\u062A \u0641\u0639\u0644\u06CC \u0633\u0641\u0627\u0631\u0634 \u0627\u0645\u06A9\u0627\u0646 \u0648\u06CC\u0631\u0627\u06CC\u0634 \u0686\u06A9\u200C\u0647\u0627 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F"); + } + if (!dto.checks.length) { + throw new common_12.BadRequestException("\u062D\u062F\u0627\u0642\u0644 \u06CC\u06A9 \u0686\u06A9 \u0644\u0627\u0632\u0645 \u0627\u0633\u062A"); + } + const checkMode = dto.checkMode ?? order.checkMode ?? client_1.CheckRegistrationMode.full; + const rass = (0, check_rass_1.calculateCheckRass)(dto.checks.map((c) => ({ amount: c.amount, dueDate: c.dueDate })), order.createdAt); + const goesToReview = order.status === client_1.OrderStatus.check_in_progress || order.status === client_1.OrderStatus.check_needs_fix || order.status === client_1.OrderStatus.check_rejected; + const nextStatus = goesToReview ? client_1.OrderStatus.awaiting_check_review : order.status; + const isFix = order.status !== client_1.OrderStatus.check_in_progress; + await this.prisma.$transaction(async (tx) => { + await tx.check.deleteMany({ where: { orderId: id } }); + await tx.check.createMany({ + data: dto.checks.map((c, index) => ({ + orderId: id, + ...this.mapCheckCreate(c, index + 1, checkMode) + })) + }); + await tx.order.update({ + where: { id }, + data: { + checkMode, + checkRassDays: rass.rassDays, + checkRassDate: rass.rassDate ? new Date(rass.rassDate) : null, + status: nextStatus + } + }); + if (nextStatus !== order.status) { + await tx.orderStatusHistory.create({ + data: { + orderId: id, + fromStatus: order.status, + toStatus: nextStatus, + changedBy: "customer", + note: isFix ? "\u0686\u06A9\u200C\u0647\u0627 \u0627\u0635\u0644\u0627\u062D \u0648 \u0645\u062C\u062F\u062F\u0627\u064B \u0627\u0631\u0633\u0627\u0644 \u0634\u062F" : "\u0686\u06A9\u200C\u0647\u0627 \u0628\u0631\u0627\u06CC \u0628\u0631\u0631\u0633\u06CC \u0627\u0631\u0633\u0627\u0644 \u0634\u062F" + } + }); + } + }); + if (nextStatus !== order.status) { + this.notifications.dispatchAdmin({ + title: isFix ? "\u0686\u06A9\u200C\u0647\u0627\u06CC \u0627\u0635\u0644\u0627\u062D\u200C\u0634\u062F\u0647 \u0631\u0633\u06CC\u062F" : "\u0686\u06A9\u200C\u0647\u0627\u06CC \u0633\u0641\u0627\u0631\u0634 \u062B\u0628\u062A \u0634\u062F", + body: `\u0645\u0634\u062A\u0631\u06CC ${dto.checks.length} \u0686\u06A9 \u0628\u0631\u0627\u06CC \u0633\u0641\u0627\u0631\u0634 ${order.orderNumber} \u062B\u0628\u062A \u06A9\u0631\u062F \u0648 \u0645\u0646\u062A\u0638\u0631 \u0628\u0631\u0631\u0633\u06CC \u0627\u0633\u062A.`, + link: `/orders/${id}/checks` + }); + } + return this.findMyOrder(userId, id); + } + mapCheckCreate(c, row, defaultMode) { + return { + row, + amount: c.amount, + dueDate: new Date(c.dueDate), + sayadId: c.sayadId?.trim() || null, + checkNumber: c.checkNumber?.trim() || null, + ownerNationalId: c.ownerNationalId?.trim() || null, + ownerFirstName: c.ownerFirstName?.trim() || null, + ownerLastName: c.ownerLastName?.trim() || null, + bankName: c.bankName?.trim() || null, + branchName: c.branchName?.trim() || null, + frontImage: c.frontImage || null, + backImage: c.backImage || null, + notes: c.notes?.trim() || null, + mode: c.mode ?? defaultMode + }; + } + async nextOrderNumber() { + for (let i = 0; i < 5; i++) { + const orderNumber = (0, order_number_1.generateOrderNumber)(); + const exists = await this.prisma.order.findUnique({ + where: { orderNumber } + }); + if (!exists) + return orderNumber; + } + return `${(0, order_number_1.generateOrderNumber)()}-${Date.now().toString().slice(-3)}`; + } + async createWithUniqueOrderNumber(create) { + for (let attempt = 0; ; attempt++) { + const orderNumber = await this.nextOrderNumber(); + try { + return await create(orderNumber); + } catch (e) { + const isDuplicate = e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002"; + if (!isDuplicate || attempt >= 4) + throw e; + } + } + } + async companiesForOrder(order) { + const companyIds = [ + ...new Set([ + order.companyId, + ...order.items.map((item) => item.companyId).filter(Boolean) + ].filter(Boolean)) + ]; + if (!companyIds.length) + return order.company ? [order.company] : []; + const companies = await this.prisma.company.findMany({ + where: { id: { in: companyIds } } + }); + return companies.length ? companies : order.company ? [order.company] : []; + } + async getOrder(id) { + const order = await this.prisma.order.findUnique({ + where: { id }, + include: orderInclude + }); + if (!order) + throw new common_12.NotFoundException("\u0633\u0641\u0627\u0631\u0634 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return order; + } + mapOrder(order, adminView = false) { + const customerName = (0, name_1.joinFullName)(order.user.firstName, order.user.lastName); + const hidePrices = !adminView && PRICE_HIDDEN_STATUSES.includes(order.status); + const base = { + id: order.id, + orderNumber: order.orderNumber, + userId: order.userId, + companyId: order.companyId, + companyName: order.companyName, + settlementType: order.settlementType, + settlementMethod: order.settlementType, + checkMode: order.checkMode ?? void 0, + status: order.status, + adminStatus: (0, order_status_1.toAdminStatus)(order.status), + allowedTransitions: adminView ? (0, order_transitions_1.allowedTransitions)(order.status) : [], + totalMeterage: order.totalMeterage, + meterage: order.totalMeterage, + totalAmount: hidePrices ? null : order.totalAmount, + shippingCost: hidePrices ? null : order.shippingCost, + totalDiscount: hidePrices ? null : order.totalDiscount, + finalAmount: hidePrices ? null : order.finalAmount, + pricesVisible: !hidePrices, + notes: order.notes ?? void 0, + checkRassDays: order.checkRassDays ?? void 0, + checkRassDate: order.checkRassDate?.toISOString(), + cashInvoiceExpiresAt: order.cashInvoiceExpiresAt?.toISOString(), + createdAt: order.createdAt.toISOString(), + updatedAt: order.updatedAt.toISOString(), + customerName, + customerPhone: order.user.phone, + customerNationalId: order.user.nationalId ?? void 0, + customerType: order.user.customerType, + items: order.items.map((item) => ({ + id: item.id, + productId: item.productId ?? void 0, + catalogCode: item.catalogCode, + productName: item.productName, + productCode: item.productCode ?? void 0, + color: item.color, + requestedMeterage: item.requestedMeterage, + confirmedMeterage: item.confirmedMeterage, + unitPrice: hidePrices ? null : item.unitPrice, + supplyPrice: hidePrices ? null : item.unitPrice, + unitDiscount: hidePrices ? null : item.unitDiscount ?? 0, + discount: hidePrices ? null : item.unitDiscount ?? 0, + lineTotal: hidePrices ? null : item.lineTotal, + totalAmount: hidePrices ? null : item.lineTotal, + notes: item.notes ?? void 0, + companyId: item.companyId, + companyName: item.companyName + })), + checks: order.checks.map((c) => ({ + id: c.id, + orderId: c.orderId, + row: c.row, + amount: c.amount, + dueDate: c.dueDate.toISOString(), + sayadId: c.sayadId ?? void 0, + checkNumber: c.checkNumber ?? void 0, + ownerNationalId: c.ownerNationalId ?? void 0, + ownerFirstName: c.ownerFirstName ?? void 0, + ownerLastName: c.ownerLastName ?? void 0, + bankName: c.bankName ?? "", + branchName: c.branchName ?? void 0, + frontImage: c.frontImage ?? void 0, + backImage: c.backImage ?? void 0, + notes: c.notes ?? void 0, + mode: c.mode, + status: c.status, + createdAt: c.createdAt.toISOString(), + updatedAt: c.updatedAt.toISOString() + })), + cashReceipt: order.cashReceipt ? { + id: order.cashReceipt.id, + amount: order.cashReceipt.amount, + paidAmount: order.cashReceipt.paidAmount, + transferDate: order.cashReceipt.transferDate?.toISOString() ?? null, + transferTime: order.cashReceipt.transferTime ?? void 0, + trackingNumber: order.cashReceipt.trackingNumber ?? void 0, + trackingCode: order.cashReceipt.trackingNumber ?? void 0, + destinationAccountId: order.cashReceipt.destinationAccountId ?? void 0, + receiptImage: order.cashReceipt.receiptImage ?? void 0, + notes: order.cashReceipt.notes ?? void 0, + expiresAt: order.cashReceipt.expiresAt?.toISOString() ?? order.cashInvoiceExpiresAt?.toISOString(), + status: order.cashReceipt.status, + submittedAt: order.cashReceipt.submittedAt?.toISOString(), + createdAt: order.cashReceipt.createdAt.toISOString() + } : void 0, + shipment: order.shipment ? { + id: order.shipment.id, + orderId: order.shipment.orderId, + carrier: order.shipment.carrier, + trackingNumber: order.shipment.trackingNumber ?? "", + meterage: order.shipment.meterage, + status: order.shipment.status, + shippedAt: order.shipment.shippedAt?.toISOString() ?? null, + deliveredAt: order.shipment.deliveredAt?.toISOString() ?? null + } : void 0, + statusHistory: order.statusHistory.map((h) => ({ + id: h.id, + fromStatus: h.fromStatus, + toStatus: h.toStatus, + changedBy: h.changedBy, + note: h.note ?? void 0, + reason: h.reason ?? void 0, + changedAt: h.changedAt.toISOString() + })) + }; + return base; + } + }; + exports2.OrdersService = OrdersService; + exports2.OrdersService = OrdersService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [ + prisma_service_1.PrismaService, + notifications_service_1.NotificationsService + ]) + ], OrdersService); + } +}); + +// dist/orders/dto/order.dto.js +var require_order_dto = __commonJS({ + "dist/orders/dto/order.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateOrderChecksDto = exports2.UpdateOrderStatusDto = exports2.UpdateOrderPricingDto = exports2.OrderItemPricingDto = exports2.AdminCreateOrderDto = exports2.ChooseSettlementDto = exports2.SubmitOrderDto = exports2.SubmitOrderCheckDto = exports2.SubmitOrderItemDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var client_1 = require_default2(); + var SubmitOrderItemDto = class { + static { + __name(this, "SubmitOrderItemDto"); + } + productId; + meterage; + requestedMeterage; + notes; + }; + exports2.SubmitOrderItemDto = SubmitOrderItemDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderItemDto.prototype, "productId", void 0); + __decorate2([ + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(1e-3), + __metadata2("design:type", Number) + ], SubmitOrderItemDto.prototype, "meterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + __metadata2("design:type", Number) + ], SubmitOrderItemDto.prototype, "requestedMeterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderItemDto.prototype, "notes", void 0); + var SubmitOrderCheckDto = class { + static { + __name(this, "SubmitOrderCheckDto"); + } + amount; + dueDate; + sayadId; + checkNumber; + ownerNationalId; + ownerFirstName; + ownerLastName; + bankName; + branchName; + frontImage; + backImage; + notes; + mode; + }; + exports2.SubmitOrderCheckDto = SubmitOrderCheckDto; + __decorate2([ + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], SubmitOrderCheckDto.prototype, "amount", void 0); + __decorate2([ + (0, class_validator_1.IsDateString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "dueDate", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "sayadId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "checkNumber", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "ownerNationalId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "ownerFirstName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "ownerLastName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "bankName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "branchName", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "frontImage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "backImage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "notes", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.CheckRegistrationMode), + __metadata2("design:type", String) + ], SubmitOrderCheckDto.prototype, "mode", void 0); + var SubmitOrderDto = class { + static { + __name(this, "SubmitOrderDto"); + } + companyId; + settlementType; + settlementMethod; + checkMode; + notes; + items; + checks; + }; + exports2.SubmitOrderDto = SubmitOrderDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderDto.prototype, "companyId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.SettlementType), + __metadata2("design:type", String) + ], SubmitOrderDto.prototype, "settlementType", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.SettlementType), + __metadata2("design:type", String) + ], SubmitOrderDto.prototype, "settlementMethod", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.CheckRegistrationMode), + __metadata2("design:type", String) + ], SubmitOrderDto.prototype, "checkMode", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitOrderDto.prototype, "notes", void 0); + __decorate2([ + (0, class_validator_1.IsArray)(), + (0, class_validator_1.ArrayMinSize)(1), + (0, class_validator_1.ValidateNested)({ each: true }), + (0, class_transformer_1.Type)(() => SubmitOrderItemDto), + __metadata2("design:type", Array) + ], SubmitOrderDto.prototype, "items", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsArray)(), + (0, class_validator_1.ValidateNested)({ each: true }), + (0, class_transformer_1.Type)(() => SubmitOrderCheckDto), + __metadata2("design:type", Array) + ], SubmitOrderDto.prototype, "checks", void 0); + var ChooseSettlementDto = class { + static { + __name(this, "ChooseSettlementDto"); + } + settlementType; + checkMode; + }; + exports2.ChooseSettlementDto = ChooseSettlementDto; + __decorate2([ + (0, class_validator_1.IsEnum)(client_1.SettlementType), + __metadata2("design:type", String) + ], ChooseSettlementDto.prototype, "settlementType", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.CheckRegistrationMode), + __metadata2("design:type", String) + ], ChooseSettlementDto.prototype, "checkMode", void 0); + var AdminCreateOrderDto = class { + static { + __name(this, "AdminCreateOrderDto"); + } + customerId; + userId; + customerPhone; + customerName; + companyId; + settlementType; + settlementMethod; + meterage; + notes; + items; + }; + exports2.AdminCreateOrderDto = AdminCreateOrderDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AdminCreateOrderDto.prototype, "customerId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AdminCreateOrderDto.prototype, "userId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AdminCreateOrderDto.prototype, "customerPhone", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AdminCreateOrderDto.prototype, "customerName", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AdminCreateOrderDto.prototype, "companyId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.SettlementType), + __metadata2("design:type", String) + ], AdminCreateOrderDto.prototype, "settlementType", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.SettlementType), + __metadata2("design:type", String) + ], AdminCreateOrderDto.prototype, "settlementMethod", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], AdminCreateOrderDto.prototype, "meterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AdminCreateOrderDto.prototype, "notes", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsArray)(), + (0, class_validator_1.ValidateNested)({ each: true }), + (0, class_transformer_1.Type)(() => SubmitOrderItemDto), + __metadata2("design:type", Array) + ], AdminCreateOrderDto.prototype, "items", void 0); + var OrderItemPricingDto = class { + static { + __name(this, "OrderItemPricingDto"); + } + id; + confirmedMeterage; + unitPrice; + supplyPrice; + unitDiscount; + }; + exports2.OrderItemPricingDto = OrderItemPricingDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], OrderItemPricingDto.prototype, "id", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], OrderItemPricingDto.prototype, "confirmedMeterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], OrderItemPricingDto.prototype, "unitPrice", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], OrderItemPricingDto.prototype, "supplyPrice", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], OrderItemPricingDto.prototype, "unitDiscount", void 0); + var UpdateOrderPricingDto = class { + static { + __name(this, "UpdateOrderPricingDto"); + } + items; + shippingCost; + totalDiscount; + note; + }; + exports2.UpdateOrderPricingDto = UpdateOrderPricingDto; + __decorate2([ + (0, class_validator_1.IsArray)(), + (0, class_validator_1.ValidateNested)({ each: true }), + (0, class_transformer_1.Type)(() => OrderItemPricingDto), + __metadata2("design:type", Array) + ], UpdateOrderPricingDto.prototype, "items", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], UpdateOrderPricingDto.prototype, "shippingCost", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], UpdateOrderPricingDto.prototype, "totalDiscount", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateOrderPricingDto.prototype, "note", void 0); + var UpdateOrderStatusDto = class { + static { + __name(this, "UpdateOrderStatusDto"); + } + status; + note; + reason; + force; + }; + exports2.UpdateOrderStatusDto = UpdateOrderStatusDto; + __decorate2([ + (0, class_validator_1.IsEnum)(client_1.OrderStatus), + __metadata2("design:type", String) + ], UpdateOrderStatusDto.prototype, "status", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateOrderStatusDto.prototype, "note", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateOrderStatusDto.prototype, "reason", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Boolean), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateOrderStatusDto.prototype, "force", void 0); + var UpdateOrderChecksDto = class { + static { + __name(this, "UpdateOrderChecksDto"); + } + checks; + checkMode; + }; + exports2.UpdateOrderChecksDto = UpdateOrderChecksDto; + __decorate2([ + (0, class_validator_1.IsArray)(), + (0, class_validator_1.ValidateNested)({ each: true }), + (0, class_transformer_1.Type)(() => SubmitOrderCheckDto), + __metadata2("design:type", Array) + ], UpdateOrderChecksDto.prototype, "checks", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.CheckRegistrationMode), + __metadata2("design:type", String) + ], UpdateOrderChecksDto.prototype, "checkMode", void 0); + } +}); + +// dist/orders/orders.controller.js +var require_orders_controller = __commonJS({ + "dist/orders/orders.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AdminOrdersController = exports2.CustomerOrdersController = void 0; + var common_12 = require_common(); + var orders_service_1 = require_orders_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var order_dto_1 = require_order_dto(); + var CustomerOrdersController = class CustomerOrdersController { + static { + __name(this, "CustomerOrdersController"); + } + ordersService; + constructor(ordersService) { + this.ordersService = ordersService; + } + findMine(user) { + return this.ordersService.findMyOrders(user.id); + } + findOne(user, id) { + return this.ordersService.findMyOrder(user.id, id); + } + submit(user, dto) { + return this.ordersService.submitOrder(user.id, dto); + } + chooseSettlement(user, id, dto) { + return this.ordersService.chooseSettlement(user.id, id, dto); + } + updateChecks(user, id, dto) { + return this.ordersService.updateChecks(user.id, id, dto); + } + }; + exports2.CustomerOrdersController = CustomerOrdersController; + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Get)(), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], CustomerOrdersController.prototype, "findMine", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Get)(":id"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], CustomerOrdersController.prototype, "findOne", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Post)(), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, order_dto_1.SubmitOrderDto]), + __metadata2("design:returntype", void 0) + ], CustomerOrdersController.prototype, "submit", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Post)(":id/settlement"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, order_dto_1.ChooseSettlementDto]), + __metadata2("design:returntype", void 0) + ], CustomerOrdersController.prototype, "chooseSettlement", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Patch)(":id/checks"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, order_dto_1.UpdateOrderChecksDto]), + __metadata2("design:returntype", void 0) + ], CustomerOrdersController.prototype, "updateChecks", null); + exports2.CustomerOrdersController = CustomerOrdersController = __decorate2([ + (0, common_12.Controller)("orders"), + __metadata2("design:paramtypes", [orders_service_1.OrdersService]) + ], CustomerOrdersController); + var AdminOrdersController = class AdminOrdersController { + static { + __name(this, "AdminOrdersController"); + } + ordersService; + constructor(ordersService) { + this.ordersService = ordersService; + } + findAll(status, q) { + return this.ordersService.findAdminOrders({ status, q }); + } + findOne(id) { + return this.ordersService.findAdminOrder(id); + } + create(user, dto) { + return this.ordersService.adminCreate(user.id, dto); + } + updatePricing(user, id, dto) { + return this.ordersService.updatePricing(id, user.id, dto); + } + updateStatus(user, id, dto) { + return this.ordersService.updateStatus(id, user.id, dto); + } + }; + exports2.AdminOrdersController = AdminOrdersController; + __decorate2([ + (0, common_12.Get)(), + __param2(0, (0, common_12.Query)("status")), + __param2(1, (0, common_12.Query)("q")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, String]), + __metadata2("design:returntype", void 0) + ], AdminOrdersController.prototype, "findAll", null); + __decorate2([ + (0, common_12.Get)(":id"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], AdminOrdersController.prototype, "findOne", null); + __decorate2([ + (0, common_12.Post)(), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, order_dto_1.AdminCreateOrderDto]), + __metadata2("design:returntype", void 0) + ], AdminOrdersController.prototype, "create", null); + __decorate2([ + (0, common_12.Patch)(":id/pricing"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, order_dto_1.UpdateOrderPricingDto]), + __metadata2("design:returntype", void 0) + ], AdminOrdersController.prototype, "updatePricing", null); + __decorate2([ + (0, common_12.Patch)(":id/status"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, order_dto_1.UpdateOrderStatusDto]), + __metadata2("design:returntype", void 0) + ], AdminOrdersController.prototype, "updateStatus", null); + exports2.AdminOrdersController = AdminOrdersController = __decorate2([ + (0, common_12.Controller)("admin/orders"), + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales", "finance"), + __metadata2("design:paramtypes", [orders_service_1.OrdersService]) + ], AdminOrdersController); + } +}); + +// dist/orders/cash-invoice-scheduler.service.js +var require_cash_invoice_scheduler_service = __commonJS({ + "dist/orders/cash-invoice-scheduler.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var CashInvoiceSchedulerService_1; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CashInvoiceSchedulerService = void 0; + var common_12 = require_common(); + var schedule_1 = require_schedule(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var notifications_service_1 = require_notifications_service(); + var PAYABLE_STATUSES = [ + client_1.OrderStatus.awaiting_cash_payment, + client_1.OrderStatus.cash_invoice_issued + ]; + var REMINDER_WINDOW_MS = 60 * 60 * 1e3; + var CashInvoiceSchedulerService = CashInvoiceSchedulerService_1 = class CashInvoiceSchedulerService { + static { + __name(this, "CashInvoiceSchedulerService"); + } + prisma; + notifications; + logger = new common_12.Logger(CashInvoiceSchedulerService_1.name); + constructor(prisma, notifications) { + this.prisma = prisma; + this.notifications = notifications; + } + async handleCashInvoices() { + await this.sendReminders(); + await this.expireOverdueInvoices(); + } + async sendReminders() { + const now = /* @__PURE__ */ new Date(); + const soon = new Date(now.getTime() + REMINDER_WINDOW_MS); + try { + const orders = await this.prisma.order.findMany({ + where: { + status: { in: PAYABLE_STATUSES }, + cashReminderSentAt: null, + cashInvoiceExpiresAt: { gt: now, lte: soon } + }, + select: { id: true, finalAmount: true } + }); + for (const order of orders) { + await this.prisma.order.update({ + where: { id: order.id }, + data: { cashReminderSentAt: now } + }); + await this.notifications.notifyOrderEvent(order.id, "cash_invoice_reminder", { amount: order.finalAmount }); + } + return orders.length; + } catch (err) { + this.logger.error("sendReminders failed", err instanceof Error ? err.stack : err); + return 0; + } + } + async expireOverdueInvoices() { + const now = /* @__PURE__ */ new Date(); + try { + const orders = await this.prisma.order.findMany({ + where: { + status: { in: PAYABLE_STATUSES }, + cashInvoiceExpiresAt: { lt: now } + }, + select: { id: true, orderNumber: true, status: true } + }); + for (const order of orders) { + await this.prisma.$transaction([ + this.prisma.order.update({ + where: { id: order.id }, + data: { status: client_1.OrderStatus.expired } + }), + this.prisma.orderStatusHistory.create({ + data: { + orderId: order.id, + fromStatus: order.status, + toStatus: client_1.OrderStatus.expired, + changedBy: "system", + note: "\u067E\u0627\u06CC\u0627\u0646 \u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u0641\u0627\u06A9\u062A\u0648\u0631 \u0646\u0642\u062F\u06CC" + } + }) + ]); + await this.notifications.notifyOrderEvent(order.id, "cash_invoice_expired"); + this.notifications.dispatchAdmin({ + title: "\u0641\u0627\u06A9\u062A\u0648\u0631 \u0646\u0642\u062F\u06CC \u0645\u0646\u0642\u0636\u06CC \u0634\u062F", + body: `\u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u0633\u0641\u0627\u0631\u0634 ${order.orderNumber} \u0628\u0647 \u067E\u0627\u06CC\u0627\u0646 \u0631\u0633\u06CC\u062F \u0648 \u0633\u0641\u0627\u0631\u0634 \u0645\u0646\u0642\u0636\u06CC \u0634\u062F.`, + link: "/orders" + }); + } + if (orders.length) { + this.logger.log(`${orders.length} \u0641\u0627\u06A9\u062A\u0648\u0631 \u0646\u0642\u062F\u06CC \u0645\u0646\u0642\u0636\u06CC \u0634\u062F`); + } + return orders.length; + } catch (err) { + this.logger.error("expireOverdueInvoices failed", err instanceof Error ? err.stack : err); + return 0; + } + } + }; + exports2.CashInvoiceSchedulerService = CashInvoiceSchedulerService; + __decorate2([ + (0, schedule_1.Cron)(schedule_1.CronExpression.EVERY_10_MINUTES), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", Promise) + ], CashInvoiceSchedulerService.prototype, "handleCashInvoices", null); + exports2.CashInvoiceSchedulerService = CashInvoiceSchedulerService = CashInvoiceSchedulerService_1 = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [ + prisma_service_1.PrismaService, + notifications_service_1.NotificationsService + ]) + ], CashInvoiceSchedulerService); + } +}); + +// dist/notifications/notifications.controller.js +var require_notifications_controller = __commonJS({ + "dist/notifications/notifications.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AdminNotificationsController = exports2.CustomerNotificationsController = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var class_validator_1 = require_cjs(); + var notifications_service_1 = require_notifications_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var CustomerNotificationsController = class CustomerNotificationsController { + static { + __name(this, "CustomerNotificationsController"); + } + notifications; + constructor(notifications) { + this.notifications = notifications; + } + list(user) { + return this.notifications.listForCustomer(user.id); + } + unreadCount(user) { + return this.notifications.unreadCount(user.id); + } + markAllRead(user) { + return this.notifications.markAllRead(user.id); + } + markRead(user, id) { + return this.notifications.markRead(user.id, id); + } + }; + exports2.CustomerNotificationsController = CustomerNotificationsController; + __decorate2([ + (0, common_12.Get)(), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], CustomerNotificationsController.prototype, "list", null); + __decorate2([ + (0, common_12.Get)("unread-count"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], CustomerNotificationsController.prototype, "unreadCount", null); + __decorate2([ + (0, common_12.Patch)("read-all"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], CustomerNotificationsController.prototype, "markAllRead", null); + __decorate2([ + (0, common_12.Patch)(":id/read"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], CustomerNotificationsController.prototype, "markRead", null); + exports2.CustomerNotificationsController = CustomerNotificationsController = __decorate2([ + (0, common_12.Controller)("notifications"), + (0, auth_decorators_1.AuthType)("customer"), + __metadata2("design:paramtypes", [notifications_service_1.NotificationsService]) + ], CustomerNotificationsController); + var BroadcastDto = class { + static { + __name(this, "BroadcastDto"); + } + title; + body; + customerIds; + tone; + }; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], BroadcastDto.prototype, "title", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], BroadcastDto.prototype, "body", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsArray)(), + (0, class_validator_1.ArrayNotEmpty)(), + (0, class_validator_1.IsString)({ each: true }), + __metadata2("design:type", Array) + ], BroadcastDto.prototype, "customerIds", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.NotificationTone), + __metadata2("design:type", String) + ], BroadcastDto.prototype, "tone", void 0); + var AdminNotificationsController = class AdminNotificationsController { + static { + __name(this, "AdminNotificationsController"); + } + notifications; + constructor(notifications) { + this.notifications = notifications; + } + broadcast(dto) { + return this.notifications.broadcastToCustomers(dto); + } + markAllRead() { + return this.notifications.markAllAdminRead(); + } + markRead(id) { + return this.notifications.markAdminRead(id); + } + }; + exports2.AdminNotificationsController = AdminNotificationsController; + __decorate2([ + (0, common_12.Post)("broadcast"), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [BroadcastDto]), + __metadata2("design:returntype", void 0) + ], AdminNotificationsController.prototype, "broadcast", null); + __decorate2([ + (0, common_12.Patch)("read-all"), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], AdminNotificationsController.prototype, "markAllRead", null); + __decorate2([ + (0, common_12.Patch)(":id/read"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], AdminNotificationsController.prototype, "markRead", null); + exports2.AdminNotificationsController = AdminNotificationsController = __decorate2([ + (0, common_12.Controller)("admin/notifications"), + (0, auth_decorators_1.AuthType)("admin"), + __metadata2("design:paramtypes", [notifications_service_1.NotificationsService]) + ], AdminNotificationsController); + } +}); + +// dist/notifications/notifications.module.js +var require_notifications_module = __commonJS({ + "dist/notifications/notifications.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NotificationsModule = void 0; + var common_12 = require_common(); + var notifications_service_1 = require_notifications_service(); + var notifications_controller_1 = require_notifications_controller(); + var sms_module_1 = require_sms_module(); + var NotificationsModule = class NotificationsModule { + static { + __name(this, "NotificationsModule"); + } + }; + exports2.NotificationsModule = NotificationsModule; + exports2.NotificationsModule = NotificationsModule = __decorate2([ + (0, common_12.Module)({ + imports: [sms_module_1.SmsModule], + controllers: [notifications_controller_1.CustomerNotificationsController, notifications_controller_1.AdminNotificationsController], + providers: [notifications_service_1.NotificationsService], + exports: [notifications_service_1.NotificationsService] + }) + ], NotificationsModule); + } +}); + +// dist/orders/orders.module.js +var require_orders_module = __commonJS({ + "dist/orders/orders.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.OrdersModule = void 0; + var common_12 = require_common(); + var orders_controller_1 = require_orders_controller(); + var orders_service_1 = require_orders_service(); + var cash_invoice_scheduler_service_1 = require_cash_invoice_scheduler_service(); + var notifications_module_1 = require_notifications_module(); + var OrdersModule = class OrdersModule { + static { + __name(this, "OrdersModule"); + } + }; + exports2.OrdersModule = OrdersModule; + exports2.OrdersModule = OrdersModule = __decorate2([ + (0, common_12.Module)({ + imports: [notifications_module_1.NotificationsModule], + controllers: [orders_controller_1.CustomerOrdersController, orders_controller_1.AdminOrdersController], + providers: [orders_service_1.OrdersService, cash_invoice_scheduler_service_1.CashInvoiceSchedulerService], + exports: [orders_service_1.OrdersService] + }) + ], OrdersModule); + } +}); + +// dist/checks/checks.service.js +var require_checks_service = __commonJS({ + "dist/checks/checks.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ChecksService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var notifications_service_1 = require_notifications_service(); + var name_1 = require_name(); + var ChecksService = class ChecksService { + static { + __name(this, "ChecksService"); + } + prisma; + notifications; + constructor(prisma, notifications) { + this.prisma = prisma; + this.notifications = notifications; + } + async findByOrder(orderId) { + const order = await this.prisma.order.findUnique({ + where: { id: orderId } + }); + if (!order) + throw new common_12.NotFoundException("\u0633\u0641\u0627\u0631\u0634 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const checks = await this.prisma.check.findMany({ + where: { orderId }, + orderBy: { row: "asc" } + }); + return checks.map((c) => this.map(c)); + } + async findAll(status) { + const where = status && Object.values(client_1.CheckStatus).includes(status) ? { status } : {}; + const checks = await this.prisma.check.findMany({ + where, + include: { + order: { + include: { user: true } + } + }, + orderBy: [{ dueDate: "asc" }, { createdAt: "desc" }] + }); + return checks.map((c) => ({ + ...this.map(c), + orderNumber: c.order.orderNumber, + customerName: (0, name_1.joinFullName)(c.order.user.firstName, c.order.user.lastName), + orderStatus: c.order.status, + settlementType: c.order.settlementType + })); + } + async updateStatus(id, adminId, dto) { + const check = await this.prisma.check.findUnique({ + where: { id }, + include: { order: { include: { checks: true } } } + }); + if (!check) + throw new common_12.NotFoundException("\u0686\u06A9 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + let notifyStatus = null; + const updated = await this.prisma.$transaction(async (tx) => { + const result = await tx.check.update({ + where: { id }, + data: { + status: dto.status, + notes: dto.note ? [check.notes, dto.note].filter(Boolean).join("\n") : check.notes + } + }); + const siblings = await tx.check.findMany({ + where: { orderId: check.orderId } + }); + const allApproved = siblings.every((c) => c.status === client_1.CheckStatus.approved); + const anyRejected = siblings.some((c) => c.status === client_1.CheckStatus.rejected); + let nextStatus = null; + if (anyRejected) { + nextStatus = client_1.OrderStatus.check_needs_fix; + } else if (allApproved) { + nextStatus = client_1.OrderStatus.checks_approved; + } + if (nextStatus && nextStatus !== check.order.status) { + await tx.order.update({ + where: { id: check.orderId }, + data: { status: nextStatus } + }); + await tx.orderStatusHistory.create({ + data: { + orderId: check.orderId, + fromStatus: check.order.status, + toStatus: nextStatus, + changedBy: `admin:${adminId}`, + note: dto.note || `\u0648\u0636\u0639\u06CC\u062A \u0686\u06A9 \u0628\u0647 ${dto.status} \u062A\u063A\u06CC\u06CC\u0631 \u06A9\u0631\u062F` + } + }); + notifyStatus = nextStatus; + } + return result; + }); + if (notifyStatus === client_1.OrderStatus.checks_approved) { + this.notifications.dispatchOrderEvent(check.orderId, "checks_approved"); + } else if (notifyStatus === client_1.OrderStatus.check_needs_fix) { + this.notifications.dispatchOrderEvent(check.orderId, "checks_need_fix", { + note: dto.note ?? null + }); + } + return this.map(updated); + } + map(c) { + return { + id: c.id, + orderId: c.orderId, + row: c.row, + amount: c.amount, + dueDate: c.dueDate.toISOString(), + sayadId: c.sayadId ?? "", + checkNumber: c.checkNumber ?? void 0, + ownerNationalId: c.ownerNationalId ?? void 0, + ownerFirstName: c.ownerFirstName ?? void 0, + ownerLastName: c.ownerLastName ?? void 0, + bankName: c.bankName ?? "", + branchName: c.branchName ?? void 0, + frontImage: c.frontImage ?? void 0, + backImage: c.backImage ?? void 0, + notes: c.notes ?? void 0, + mode: c.mode, + status: c.status, + createdAt: c.createdAt.toISOString(), + updatedAt: c.updatedAt.toISOString() + }; + } + }; + exports2.ChecksService = ChecksService; + exports2.ChecksService = ChecksService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [ + prisma_service_1.PrismaService, + notifications_service_1.NotificationsService + ]) + ], ChecksService); + } +}); + +// dist/checks/dto/check.dto.js +var require_check_dto = __commonJS({ + "dist/checks/dto/check.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateCheckStatusDto = void 0; + var class_validator_1 = require_cjs(); + var client_1 = require_default2(); + var UpdateCheckStatusDto = class { + static { + __name(this, "UpdateCheckStatusDto"); + } + status; + note; + }; + exports2.UpdateCheckStatusDto = UpdateCheckStatusDto; + __decorate2([ + (0, class_validator_1.IsEnum)(client_1.CheckStatus), + __metadata2("design:type", String) + ], UpdateCheckStatusDto.prototype, "status", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateCheckStatusDto.prototype, "note", void 0); + } +}); + +// dist/checks/checks.controller.js +var require_checks_controller = __commonJS({ + "dist/checks/checks.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ChecksController = void 0; + var common_12 = require_common(); + var checks_service_1 = require_checks_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var check_dto_1 = require_check_dto(); + var ChecksController = class ChecksController { + static { + __name(this, "ChecksController"); + } + checksService; + constructor(checksService) { + this.checksService = checksService; + } + findAll(status) { + return this.checksService.findAll(status); + } + findByOrder(orderId) { + return this.checksService.findByOrder(orderId); + } + updateStatus(user, id, dto) { + return this.checksService.updateStatus(id, user.id, dto); + } + }; + exports2.ChecksController = ChecksController; + __decorate2([ + (0, common_12.Get)("admin/checks"), + __param2(0, (0, common_12.Query)("status")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], ChecksController.prototype, "findAll", null); + __decorate2([ + (0, common_12.Get)("admin/orders/:orderId/checks"), + __param2(0, (0, common_12.Param)("orderId")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], ChecksController.prototype, "findByOrder", null); + __decorate2([ + (0, common_12.Patch)("admin/checks/:id/status"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, check_dto_1.UpdateCheckStatusDto]), + __metadata2("design:returntype", void 0) + ], ChecksController.prototype, "updateStatus", null); + exports2.ChecksController = ChecksController = __decorate2([ + (0, common_12.Controller)(), + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "finance"), + __metadata2("design:paramtypes", [checks_service_1.ChecksService]) + ], ChecksController); + } +}); + +// dist/checks/checks.module.js +var require_checks_module = __commonJS({ + "dist/checks/checks.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ChecksModule = void 0; + var common_12 = require_common(); + var checks_controller_1 = require_checks_controller(); + var checks_service_1 = require_checks_service(); + var notifications_module_1 = require_notifications_module(); + var ChecksModule = class ChecksModule { + static { + __name(this, "ChecksModule"); + } + }; + exports2.ChecksModule = ChecksModule; + exports2.ChecksModule = ChecksModule = __decorate2([ + (0, common_12.Module)({ + imports: [notifications_module_1.NotificationsModule], + controllers: [checks_controller_1.ChecksController], + providers: [checks_service_1.ChecksService], + exports: [checks_service_1.ChecksService] + }) + ], ChecksModule); + } +}); + +// dist/cash-payments/cash-payments.service.js +var require_cash_payments_service = __commonJS({ + "dist/cash-payments/cash-payments.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CashPaymentsService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var name_1 = require_name(); + var notifications_service_1 = require_notifications_service(); + var RECEIPT_SUBMITTABLE_STATUSES = [ + client_1.OrderStatus.cash_in_progress, + client_1.OrderStatus.cash_invoice_issued, + client_1.OrderStatus.awaiting_cash_payment, + client_1.OrderStatus.cash_payment_submitted, + client_1.OrderStatus.awaiting_cash_confirmation + ]; + var CashPaymentsService = class CashPaymentsService { + static { + __name(this, "CashPaymentsService"); + } + prisma; + notifications; + constructor(prisma, notifications) { + this.prisma = prisma; + this.notifications = notifications; + } + async submitReceipt(userId, orderId, dto) { + const order = await this.prisma.order.findUnique({ + where: { id: orderId }, + include: { cashReceipt: true, items: true } + }); + if (!order) + throw new common_12.NotFoundException("\u0633\u0641\u0627\u0631\u0634 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + if (order.userId !== userId) { + throw new common_12.ForbiddenException("\u062F\u0633\u062A\u0631\u0633\u06CC \u0628\u0647 \u0627\u06CC\u0646 \u0633\u0641\u0627\u0631\u0634 \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A"); + } + if (order.settlementType !== client_1.SettlementType.cash) { + throw new common_12.BadRequestException("\u0627\u06CC\u0646 \u0633\u0641\u0627\u0631\u0634 \u062A\u0633\u0648\u06CC\u0647 \u0646\u0642\u062F\u06CC \u0646\u06CC\u0633\u062A"); + } + if (!RECEIPT_SUBMITTABLE_STATUSES.includes(order.status)) { + throw new common_12.BadRequestException("\u062F\u0631 \u0648\u0636\u0639\u06CC\u062A \u0641\u0639\u0644\u06CC \u0633\u0641\u0627\u0631\u0634 \u0627\u0645\u06A9\u0627\u0646 \u062B\u0628\u062A \u0631\u0633\u06CC\u062F \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F"); + } + if (order.cashInvoiceExpiresAt && order.cashInvoiceExpiresAt.getTime() < Date.now()) { + throw new common_12.BadRequestException("\u0645\u0647\u0644\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u0641\u0627\u06A9\u062A\u0648\u0631 \u0646\u0642\u062F\u06CC \u0628\u0647 \u067E\u0627\u06CC\u0627\u0646 \u0631\u0633\u06CC\u062F\u0647 \u0627\u0633\u062A"); + } + const companyIds = [ + ...new Set([ + order.companyId, + ...order.items.map((item) => item.companyId).filter(Boolean) + ].filter(Boolean)) + ]; + const account = await this.prisma.bankAccount.findFirst({ + where: { + id: dto.destinationAccountId, + companyId: { in: companyIds }, + isActive: true + } + }); + if (!account) { + throw new common_12.BadRequestException("\u062D\u0633\u0627\u0628 \u0645\u0642\u0635\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + const receipt = await this.prisma.$transaction(async (tx) => { + const data = { + amount: dto.amount, + paidAmount: dto.paidAmount ?? dto.amount, + transferDate: new Date(dto.transferDate), + transferTime: dto.transferTime.trim(), + trackingNumber: dto.trackingNumber.trim(), + destinationAccountId: dto.destinationAccountId, + receiptImage: dto.receiptImage || null, + notes: dto.notes?.trim() || null, + expiresAt: order.cashInvoiceExpiresAt, + status: client_1.CashPaymentStatus.pending_review, + submittedAt: /* @__PURE__ */ new Date() + }; + const saved = order.cashReceipt ? await tx.cashPaymentReceipt.update({ + where: { orderId }, + data + }) : await tx.cashPaymentReceipt.create({ + data: { orderId, ...data } + }); + await tx.order.update({ + where: { id: orderId }, + data: { status: client_1.OrderStatus.awaiting_cash_confirmation } + }); + await tx.orderStatusHistory.create({ + data: { + orderId, + fromStatus: order.status, + toStatus: client_1.OrderStatus.awaiting_cash_confirmation, + changedBy: "customer", + note: "\u0631\u0633\u06CC\u062F \u067E\u0631\u062F\u0627\u062E\u062A \u0646\u0642\u062F\u06CC \u0627\u0631\u0633\u0627\u0644 \u0634\u062F" + } + }); + return saved; + }); + this.notifications.dispatchAdmin({ + title: "\u0631\u0633\u06CC\u062F \u067E\u0631\u062F\u0627\u062E\u062A \u0646\u0642\u062F\u06CC \u062B\u0628\u062A \u0634\u062F", + body: `\u0645\u0634\u062A\u0631\u06CC \u0628\u0631\u0627\u06CC \u0633\u0641\u0627\u0631\u0634 ${order.orderNumber} \u0631\u0633\u06CC\u062F \u0628\u0647 \u0645\u0628\u0644\u063A ${Math.round(dto.amount).toLocaleString("fa-IR")} \u062A\u0648\u0645\u0627\u0646 \u062B\u0628\u062A \u06A9\u0631\u062F.`, + link: `/orders/${orderId}` + }); + return this.mapReceipt(receipt, order.orderNumber, ""); + } + async findAll(status) { + const receipts = await this.prisma.cashPaymentReceipt.findMany({ + where: status ? { status } : void 0, + orderBy: { createdAt: "desc" }, + include: { + order: { + include: { user: true } + } + } + }); + return receipts.map((r) => this.mapReceipt(r, r.order.orderNumber, (0, name_1.joinFullName)(r.order.user.firstName, r.order.user.lastName))); + } + async updateStatus(id, adminId, dto) { + const receipt = await this.prisma.cashPaymentReceipt.findUnique({ + where: { id }, + include: { order: { include: { user: true } } } + }); + if (!receipt) + throw new common_12.NotFoundException("\u0631\u0633\u06CC\u062F \u0646\u0642\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const updated = await this.prisma.$transaction(async (tx) => { + const result = await tx.cashPaymentReceipt.update({ + where: { id }, + data: { + status: dto.status, + notes: dto.note ? [receipt.notes, dto.note].filter(Boolean).join("\n") : receipt.notes + }, + include: { order: { include: { user: true } } } + }); + let nextStatus = null; + if (dto.status === client_1.CashPaymentStatus.approved) { + nextStatus = client_1.OrderStatus.cash_confirmed; + } else if (dto.status === client_1.CashPaymentStatus.rejected) { + nextStatus = client_1.OrderStatus.awaiting_cash_payment; + } else if (dto.status === client_1.CashPaymentStatus.expired) { + nextStatus = client_1.OrderStatus.expired; + } + if (nextStatus && nextStatus !== receipt.order.status) { + await tx.order.update({ + where: { id: receipt.orderId }, + data: { status: nextStatus } + }); + await tx.orderStatusHistory.create({ + data: { + orderId: receipt.orderId, + fromStatus: receipt.order.status, + toStatus: nextStatus, + changedBy: `admin:${adminId}`, + note: dto.note || `\u0648\u0636\u0639\u06CC\u062A \u067E\u0631\u062F\u0627\u062E\u062A \u0646\u0642\u062F\u06CC: ${dto.status}` + } + }); + } + return result; + }); + if (dto.status === client_1.CashPaymentStatus.approved) { + this.notifications.dispatchOrderEvent(receipt.orderId, "receipt_approved"); + } else if (dto.status === client_1.CashPaymentStatus.rejected) { + this.notifications.dispatchOrderEvent(receipt.orderId, "receipt_rejected", { note: dto.note ?? null }); + } else if (dto.status === client_1.CashPaymentStatus.expired) { + this.notifications.dispatchOrderEvent(receipt.orderId, "cash_invoice_expired"); + } + return this.mapReceipt(updated, updated.order.orderNumber, (0, name_1.joinFullName)(updated.order.user.firstName, updated.order.user.lastName)); + } + mapReceipt(r, orderNumber, customerName) { + return { + id: r.id, + orderId: r.orderId, + orderNumber, + customerName, + amount: r.amount, + paidAmount: r.paidAmount, + transferDate: r.transferDate?.toISOString() ?? null, + transferTime: r.transferTime ?? void 0, + trackingNumber: r.trackingNumber ?? "", + trackingCode: r.trackingNumber ?? "", + destinationAccountId: r.destinationAccountId ?? void 0, + receiptImage: r.receiptImage ?? void 0, + notes: r.notes ?? void 0, + expiresAt: r.expiresAt?.toISOString() ?? "", + status: r.status, + submittedAt: r.submittedAt?.toISOString(), + createdAt: r.createdAt.toISOString(), + updatedAt: r.updatedAt.toISOString() + }; + } + }; + exports2.CashPaymentsService = CashPaymentsService; + exports2.CashPaymentsService = CashPaymentsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [ + prisma_service_1.PrismaService, + notifications_service_1.NotificationsService + ]) + ], CashPaymentsService); + } +}); + +// dist/cash-payments/dto/cash-payment.dto.js +var require_cash_payment_dto = __commonJS({ + "dist/cash-payments/dto/cash-payment.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateCashPaymentStatusDto = exports2.SubmitCashReceiptDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var client_1 = require_default2(); + var SubmitCashReceiptDto = class { + static { + __name(this, "SubmitCashReceiptDto"); + } + amount; + paidAmount; + transferDate; + transferTime; + trackingNumber; + destinationAccountId; + receiptImage; + notes; + }; + exports2.SubmitCashReceiptDto = SubmitCashReceiptDto; + __decorate2([ + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], SubmitCashReceiptDto.prototype, "amount", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], SubmitCashReceiptDto.prototype, "paidAmount", void 0); + __decorate2([ + (0, class_validator_1.IsDateString)(), + __metadata2("design:type", String) + ], SubmitCashReceiptDto.prototype, "transferDate", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], SubmitCashReceiptDto.prototype, "transferTime", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], SubmitCashReceiptDto.prototype, "trackingNumber", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitCashReceiptDto.prototype, "destinationAccountId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitCashReceiptDto.prototype, "receiptImage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], SubmitCashReceiptDto.prototype, "notes", void 0); + var UpdateCashPaymentStatusDto = class { + static { + __name(this, "UpdateCashPaymentStatusDto"); + } + status; + note; + }; + exports2.UpdateCashPaymentStatusDto = UpdateCashPaymentStatusDto; + __decorate2([ + (0, class_validator_1.IsEnum)(client_1.CashPaymentStatus), + __metadata2("design:type", String) + ], UpdateCashPaymentStatusDto.prototype, "status", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateCashPaymentStatusDto.prototype, "note", void 0); + } +}); + +// dist/cash-payments/cash-payments.controller.js +var require_cash_payments_controller = __commonJS({ + "dist/cash-payments/cash-payments.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CashPaymentsController = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var cash_payments_service_1 = require_cash_payments_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var cash_payment_dto_1 = require_cash_payment_dto(); + var CashPaymentsController = class CashPaymentsController { + static { + __name(this, "CashPaymentsController"); + } + cashPaymentsService; + constructor(cashPaymentsService) { + this.cashPaymentsService = cashPaymentsService; + } + submitReceipt(user, orderId, dto) { + return this.cashPaymentsService.submitReceipt(user.id, orderId, dto); + } + findAll(status) { + return this.cashPaymentsService.findAll(status); + } + updateStatus(user, id, dto) { + return this.cashPaymentsService.updateStatus(id, user.id, dto); + } + }; + exports2.CashPaymentsController = CashPaymentsController; + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Post)("orders/:orderId/cash-receipt"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("orderId")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, cash_payment_dto_1.SubmitCashReceiptDto]), + __metadata2("design:returntype", void 0) + ], CashPaymentsController.prototype, "submitReceipt", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "finance"), + (0, common_12.Get)("admin/cash-payments"), + __param2(0, (0, common_12.Query)("status")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], CashPaymentsController.prototype, "findAll", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "finance"), + (0, common_12.Patch)("admin/cash-payments/:id/status"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, cash_payment_dto_1.UpdateCashPaymentStatusDto]), + __metadata2("design:returntype", void 0) + ], CashPaymentsController.prototype, "updateStatus", null); + exports2.CashPaymentsController = CashPaymentsController = __decorate2([ + (0, common_12.Controller)(), + __metadata2("design:paramtypes", [cash_payments_service_1.CashPaymentsService]) + ], CashPaymentsController); + } +}); + +// dist/cash-payments/cash-payments.module.js +var require_cash_payments_module = __commonJS({ + "dist/cash-payments/cash-payments.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CashPaymentsModule = void 0; + var common_12 = require_common(); + var cash_payments_controller_1 = require_cash_payments_controller(); + var cash_payments_service_1 = require_cash_payments_service(); + var notifications_module_1 = require_notifications_module(); + var CashPaymentsModule = class CashPaymentsModule { + static { + __name(this, "CashPaymentsModule"); + } + }; + exports2.CashPaymentsModule = CashPaymentsModule; + exports2.CashPaymentsModule = CashPaymentsModule = __decorate2([ + (0, common_12.Module)({ + imports: [notifications_module_1.NotificationsModule], + controllers: [cash_payments_controller_1.CashPaymentsController], + providers: [cash_payments_service_1.CashPaymentsService], + exports: [cash_payments_service_1.CashPaymentsService] + }) + ], CashPaymentsModule); + } +}); + +// dist/shipments/shipments.service.js +var require_shipments_service = __commonJS({ + "dist/shipments/shipments.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ShipmentsService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var name_1 = require_name(); + var notifications_service_1 = require_notifications_service(); + var notification_events_1 = require_notification_events(); + var STATUS_FLOW = [ + client_1.ShipmentStatus.preparing, + client_1.ShipmentStatus.ready, + client_1.ShipmentStatus.shipped, + client_1.ShipmentStatus.delivered + ]; + var SHIPMENT_TO_ORDER = { + preparing: client_1.OrderStatus.preparing, + ready: client_1.OrderStatus.ready_to_ship, + shipped: client_1.OrderStatus.shipped, + delivered: client_1.OrderStatus.delivered + }; + var ShipmentsService = class ShipmentsService { + static { + __name(this, "ShipmentsService"); + } + prisma; + notifications; + constructor(prisma, notifications) { + this.prisma = prisma; + this.notifications = notifications; + } + async findAll(status) { + const shipments = await this.prisma.shipment.findMany({ + where: status ? { status } : void 0, + orderBy: { createdAt: "desc" }, + include: { + order: { include: { user: true } } + } + }); + return shipments.map((s) => this.map(s)); + } + async findOne(id) { + const shipment = await this.prisma.shipment.findUnique({ + where: { id }, + include: { order: { include: { user: true } } } + }); + if (!shipment) + throw new common_12.NotFoundException("\u0627\u0631\u0633\u0627\u0644 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return this.map(shipment); + } + async create(adminId, dto) { + const order = await this.prisma.order.findUnique({ + where: { id: dto.orderId }, + include: { shipment: true, user: true } + }); + if (!order) + throw new common_12.NotFoundException("\u0633\u0641\u0627\u0631\u0634 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + if (order.shipment) { + throw new common_12.ConflictException("\u0628\u0631\u0627\u06CC \u0627\u06CC\u0646 \u0633\u0641\u0627\u0631\u0634 \u0642\u0628\u0644\u0627\u064B \u0627\u0631\u0633\u0627\u0644 \u062B\u0628\u062A \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + const status = dto.status ?? client_1.ShipmentStatus.preparing; + const shipment = await this.prisma.$transaction(async (tx) => { + const created = await tx.shipment.create({ + data: { + orderId: order.id, + carrier: dto.carrier.trim(), + trackingNumber: dto.trackingNumber?.trim() || null, + meterage: dto.meterage ?? order.totalMeterage, + status, + shippedAt: status === client_1.ShipmentStatus.shipped ? /* @__PURE__ */ new Date() : null, + deliveredAt: status === client_1.ShipmentStatus.delivered ? /* @__PURE__ */ new Date() : null + }, + include: { order: { include: { user: true } } } + }); + const nextOrderStatus = SHIPMENT_TO_ORDER[status]; + if (order.status !== nextOrderStatus) { + await tx.order.update({ + where: { id: order.id }, + data: { status: nextOrderStatus } + }); + await tx.orderStatusHistory.create({ + data: { + orderId: order.id, + fromStatus: order.status, + toStatus: nextOrderStatus, + changedBy: `admin:${adminId}`, + note: "\u062B\u0628\u062A \u0627\u0631\u0633\u0627\u0644" + } + }); + } + return created; + }); + this.notifyOrderStatus(order.id, SHIPMENT_TO_ORDER[status], { + carrier: shipment.carrier, + trackingNumber: shipment.trackingNumber + }); + return this.map(shipment); + } + async update(id, dto) { + await this.ensure(id); + const shipment = await this.prisma.shipment.update({ + where: { id }, + data: { + carrier: dto.carrier?.trim(), + trackingNumber: dto.trackingNumber === void 0 ? void 0 : dto.trackingNumber?.trim() || null, + meterage: dto.meterage, + status: dto.status + }, + include: { order: { include: { user: true } } } + }); + return this.map(shipment); + } + async advanceStatus(id, adminId, dto) { + const shipment = await this.prisma.shipment.findUnique({ + where: { id }, + include: { order: { include: { user: true } } } + }); + if (!shipment) + throw new common_12.NotFoundException("\u0627\u0631\u0633\u0627\u0644 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + let nextStatus = dto.status; + if (!nextStatus) { + const idx = STATUS_FLOW.indexOf(shipment.status); + if (idx < 0 || idx >= STATUS_FLOW.length - 1) { + throw new common_12.BadRequestException("\u0648\u0636\u0639\u06CC\u062A \u0627\u0631\u0633\u0627\u0644 \u0642\u0627\u0628\u0644 \u067E\u06CC\u0634\u0631\u0641\u062A \u0646\u06CC\u0633\u062A"); + } + nextStatus = STATUS_FLOW[idx + 1]; + } + const updated = await this.prisma.$transaction(async (tx) => { + const result = await tx.shipment.update({ + where: { id }, + data: { + status: nextStatus, + trackingNumber: dto.trackingNumber !== void 0 ? dto.trackingNumber.trim() || null : void 0, + shippedAt: nextStatus === client_1.ShipmentStatus.shipped ? shipment.shippedAt ?? /* @__PURE__ */ new Date() : shipment.shippedAt, + deliveredAt: nextStatus === client_1.ShipmentStatus.delivered ? /* @__PURE__ */ new Date() : shipment.deliveredAt + }, + include: { order: { include: { user: true } } } + }); + const nextOrderStatus = SHIPMENT_TO_ORDER[nextStatus]; + if (shipment.order.status !== nextOrderStatus) { + await tx.order.update({ + where: { id: shipment.orderId }, + data: { status: nextOrderStatus } + }); + await tx.orderStatusHistory.create({ + data: { + orderId: shipment.orderId, + fromStatus: shipment.order.status, + toStatus: nextOrderStatus, + changedBy: `admin:${adminId}`, + note: `\u0648\u0636\u0639\u06CC\u062A \u0627\u0631\u0633\u0627\u0644: ${nextStatus}` + } + }); + } + return result; + }); + this.notifyOrderStatus(shipment.orderId, SHIPMENT_TO_ORDER[nextStatus], { + carrier: updated.carrier, + trackingNumber: updated.trackingNumber + }); + return this.map(updated); + } + notifyOrderStatus(orderId, status, context) { + const event = (0, notification_events_1.eventForStatus)(status); + if (event) { + this.notifications.dispatchOrderEvent(orderId, event, context); + } + } + async ensure(id) { + const shipment = await this.prisma.shipment.findUnique({ where: { id } }); + if (!shipment) + throw new common_12.NotFoundException("\u0627\u0631\u0633\u0627\u0644 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return shipment; + } + map(s) { + return { + id: s.id, + orderId: s.orderId, + orderNumber: s.order.orderNumber, + customerName: (0, name_1.joinFullName)(s.order.user.firstName, s.order.user.lastName), + carrier: s.carrier, + trackingNumber: s.trackingNumber ?? "", + meterage: s.meterage, + status: s.status, + shippedAt: s.shippedAt?.toISOString() ?? null, + deliveredAt: s.deliveredAt?.toISOString() ?? null, + createdAt: s.createdAt.toISOString(), + updatedAt: s.updatedAt.toISOString() + }; + } + }; + exports2.ShipmentsService = ShipmentsService; + exports2.ShipmentsService = ShipmentsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [ + prisma_service_1.PrismaService, + notifications_service_1.NotificationsService + ]) + ], ShipmentsService); + } +}); + +// dist/shipments/dto/shipment.dto.js +var require_shipment_dto = __commonJS({ + "dist/shipments/dto/shipment.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AdvanceShipmentStatusDto = exports2.UpdateShipmentDto = exports2.CreateShipmentDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var client_1 = require_default2(); + var CreateShipmentDto = class { + static { + __name(this, "CreateShipmentDto"); + } + orderId; + carrier; + trackingNumber; + meterage; + status; + }; + exports2.CreateShipmentDto = CreateShipmentDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateShipmentDto.prototype, "orderId", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateShipmentDto.prototype, "carrier", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateShipmentDto.prototype, "trackingNumber", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], CreateShipmentDto.prototype, "meterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.ShipmentStatus), + __metadata2("design:type", String) + ], CreateShipmentDto.prototype, "status", void 0); + var UpdateShipmentDto = class { + static { + __name(this, "UpdateShipmentDto"); + } + carrier; + trackingNumber; + meterage; + status; + }; + exports2.UpdateShipmentDto = UpdateShipmentDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateShipmentDto.prototype, "carrier", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateShipmentDto.prototype, "trackingNumber", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], UpdateShipmentDto.prototype, "meterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.ShipmentStatus), + __metadata2("design:type", String) + ], UpdateShipmentDto.prototype, "status", void 0); + var AdvanceShipmentStatusDto = class { + static { + __name(this, "AdvanceShipmentStatusDto"); + } + status; + trackingNumber; + }; + exports2.AdvanceShipmentStatusDto = AdvanceShipmentStatusDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.ShipmentStatus), + __metadata2("design:type", String) + ], AdvanceShipmentStatusDto.prototype, "status", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AdvanceShipmentStatusDto.prototype, "trackingNumber", void 0); + } +}); + +// dist/shipments/shipments.controller.js +var require_shipments_controller = __commonJS({ + "dist/shipments/shipments.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ShipmentsController = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var shipments_service_1 = require_shipments_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var shipment_dto_1 = require_shipment_dto(); + var ShipmentsController = class ShipmentsController { + static { + __name(this, "ShipmentsController"); + } + shipmentsService; + constructor(shipmentsService) { + this.shipmentsService = shipmentsService; + } + findAll(status) { + return this.shipmentsService.findAll(status); + } + findOne(id) { + return this.shipmentsService.findOne(id); + } + create(user, dto) { + return this.shipmentsService.create(user.id, dto); + } + update(id, dto) { + return this.shipmentsService.update(id, dto); + } + advanceStatus(user, id, dto) { + return this.shipmentsService.advanceStatus(id, user.id, dto); + } + }; + exports2.ShipmentsController = ShipmentsController; + __decorate2([ + (0, common_12.Get)(), + __param2(0, (0, common_12.Query)("status")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], ShipmentsController.prototype, "findAll", null); + __decorate2([ + (0, common_12.Get)(":id"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], ShipmentsController.prototype, "findOne", null); + __decorate2([ + (0, common_12.Post)(), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, shipment_dto_1.CreateShipmentDto]), + __metadata2("design:returntype", void 0) + ], ShipmentsController.prototype, "create", null); + __decorate2([ + (0, common_12.Patch)(":id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, shipment_dto_1.UpdateShipmentDto]), + __metadata2("design:returntype", void 0) + ], ShipmentsController.prototype, "update", null); + __decorate2([ + (0, common_12.Patch)(":id/status"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, shipment_dto_1.AdvanceShipmentStatusDto]), + __metadata2("design:returntype", void 0) + ], ShipmentsController.prototype, "advanceStatus", null); + exports2.ShipmentsController = ShipmentsController = __decorate2([ + (0, common_12.Controller)("admin/shipments"), + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "warehouse"), + __metadata2("design:paramtypes", [shipments_service_1.ShipmentsService]) + ], ShipmentsController); + } +}); + +// dist/shipments/shipments.module.js +var require_shipments_module = __commonJS({ + "dist/shipments/shipments.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ShipmentsModule = void 0; + var common_12 = require_common(); + var shipments_controller_1 = require_shipments_controller(); + var shipments_service_1 = require_shipments_service(); + var notifications_module_1 = require_notifications_module(); + var ShipmentsModule = class ShipmentsModule { + static { + __name(this, "ShipmentsModule"); + } + }; + exports2.ShipmentsModule = ShipmentsModule; + exports2.ShipmentsModule = ShipmentsModule = __decorate2([ + (0, common_12.Module)({ + imports: [notifications_module_1.NotificationsModule], + controllers: [shipments_controller_1.ShipmentsController], + providers: [shipments_service_1.ShipmentsService], + exports: [shipments_service_1.ShipmentsService] + }) + ], ShipmentsModule); + } +}); + +// dist/dashboard/dashboard.service.js +var require_dashboard_service = __commonJS({ + "dist/dashboard/dashboard.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DashboardService = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var order_status_1 = require_order_status(); + var orders_service_1 = require_orders_service(); + var DashboardService = class DashboardService { + static { + __name(this, "DashboardService"); + } + prisma; + ordersService; + constructor(prisma, ordersService) { + this.prisma = prisma; + this.ordersService = ordersService; + } + async getDashboard() { + const now = /* @__PURE__ */ new Date(); + const startOfToday = new Date(now); + startOfToday.setHours(0, 0, 0, 0); + const startOfYesterday = new Date(startOfToday); + startOfYesterday.setDate(startOfYesterday.getDate() - 1); + const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1); + const startOfChart = new Date(startOfToday); + startOfChart.setDate(startOfChart.getDate() - 27); + const [newOrders, pendingReview, pendingCheck, finalApproval, todayOrders, yesterdayOrders, monthOrders, chartOrders, recentOrders, checks, notifications, messages] = await Promise.all([ + this.prisma.order.count({ + where: { createdAt: { gte: startOfToday } } + }), + this.prisma.order.count({ + where: { status: { in: order_status_1.ADMIN_STATUS_MAP.pending_review } } + }), + this.prisma.order.count({ + where: { status: { in: order_status_1.ADMIN_STATUS_MAP.pending_check } } + }), + this.prisma.order.count({ + where: { status: { in: order_status_1.ADMIN_STATUS_MAP.final_approval } } + }), + this.prisma.order.findMany({ + where: { createdAt: { gte: startOfToday } }, + select: { finalAmount: true, totalAmount: true } + }), + this.prisma.order.findMany({ + where: { + createdAt: { gte: startOfYesterday, lt: startOfToday } + }, + select: { finalAmount: true, totalAmount: true } + }), + this.prisma.order.findMany({ + where: { createdAt: { gte: startOfMonth } }, + select: { finalAmount: true, totalAmount: true } + }), + this.prisma.order.findMany({ + where: { createdAt: { gte: startOfChart } }, + select: { + createdAt: true, + finalAmount: true, + totalAmount: true + } + }), + this.prisma.order.findMany({ + orderBy: { createdAt: "desc" }, + take: 5, + include: { + items: true, + checks: { orderBy: { row: "asc" } }, + cashReceipt: true, + statusHistory: { orderBy: { changedAt: "asc" } }, + shipment: true, + user: true, + company: true + } + }), + this.prisma.check.findMany({ + where: { + status: { not: "rejected" }, + dueDate: { + gte: startOfToday, + lte: new Date(startOfToday.getTime() + 30 * 24 * 60 * 60 * 1e3) + } + }, + select: { dueDate: true, amount: true } + }), + this.prisma.adminNotification.findMany({ + orderBy: { sentAt: "desc" }, + take: 20 + }), + this.prisma.internalMessage.findMany({ + orderBy: { sentAt: "desc" }, + take: 20 + }) + ]); + const sumAmounts = /* @__PURE__ */ __name((rows) => rows.reduce((s, o) => s + (o.finalAmount ?? o.totalAmount ?? 0), 0), "sumAmounts"); + const todaySales = sumAmounts(todayOrders); + const yesterdaySales = sumAmounts(yesterdayOrders); + const monthSales = sumAmounts(monthOrders); + const todaySalesGrowth = yesterdaySales > 0 ? Math.round((todaySales - yesterdaySales) / yesterdaySales * 100) : todaySales > 0 ? 100 : 0; + const salesByDay = Array.from({ length: 28 }, () => 0); + for (const order of chartOrders) { + const dayIndex = Math.floor((order.createdAt.getTime() - startOfChart.getTime()) / (24 * 60 * 60 * 1e3)); + if (dayIndex >= 0 && dayIndex < 28) { + salesByDay[dayIndex] += order.finalAmount ?? order.totalAmount ?? 0; + } + } + const maxSale = Math.max(...salesByDay, 1); + const salesChartData = salesByDay.map((v) => Number((v / maxSale).toFixed(3))); + const checkDeadlines = this.buildCheckDeadlines(checks, startOfToday); + return { + stats: { + newOrders, + pendingReview, + pendingCheck, + finalApproval, + todaySales, + todaySalesGrowth, + monthSales + }, + recentOrders: recentOrders.map((o) => this.ordersService.mapOrder(o, true)), + salesChartData, + chartAxisLabels: ["\u06F1", "\u06F7", "\u06F1\u06F4", "\u06F2\u06F1", "\u06F2\u06F8"], + checkDeadlines, + notifications: notifications.map((n) => ({ + id: n.id, + title: n.title, + body: n.body, + tone: n.tone, + link: n.link, + isRead: n.isRead, + sentAt: n.sentAt.toISOString() + })), + messages: messages.map((m) => ({ + id: m.id, + senderName: m.senderName, + subject: m.subject, + preview: m.preview, + isRead: m.isRead, + sentAt: m.sentAt.toISOString() + })) + }; + } + async getReports() { + const orders = await this.prisma.order.findMany({ + select: { + companyName: true, + status: true, + totalMeterage: true, + finalAmount: true, + totalAmount: true, + userId: true, + createdAt: true, + user: { + select: { firstName: true, lastName: true } + }, + items: { + select: { + productId: true, + productName: true, + productCode: true, + requestedMeterage: true, + lineTotal: true + } + } + } + }); + const customers = await this.prisma.customer.findMany({ + select: { + id: true, + firstName: true, + lastName: true, + phone: true, + isActive: true, + createdAt: true, + assignedAgentId: true, + orders: { + select: { + createdAt: true, + finalAmount: true, + totalAmount: true, + totalMeterage: true + }, + orderBy: { createdAt: "desc" }, + take: 1 + }, + _count: { select: { orders: true } } + } + }); + const byCompany = /* @__PURE__ */ new Map(); + const byStatus = /* @__PURE__ */ new Map(); + const byMonth = /* @__PURE__ */ new Map(); + const byProduct = /* @__PURE__ */ new Map(); + const byCustomer = /* @__PURE__ */ new Map(); + for (const order of orders) { + const amount = order.finalAmount ?? order.totalAmount ?? 0; + const company = byCompany.get(order.companyName) ?? { + companyName: order.companyName, + orderCount: 0, + totalAmount: 0, + meterage: 0 + }; + company.orderCount += 1; + company.totalAmount += amount; + company.meterage += order.totalMeterage; + byCompany.set(order.companyName, company); + const label = order_status_1.ORDER_STATUS_LABELS[order.status] ?? (0, order_status_1.toAdminStatus)(order.status); + byStatus.set(label, (byStatus.get(label) ?? 0) + 1); + const monthKey = `${order.createdAt.getFullYear()}-${String(order.createdAt.getMonth() + 1).padStart(2, "0")}`; + const monthRow = byMonth.get(monthKey) ?? { + month: monthKey, + orderCount: 0, + totalAmount: 0, + meterage: 0 + }; + monthRow.orderCount += 1; + monthRow.totalAmount += amount; + monthRow.meterage += order.totalMeterage; + byMonth.set(monthKey, monthRow); + const customerName = `${order.user.firstName} ${order.user.lastName}`.trim() || order.userId; + const customerRow = byCustomer.get(customerName) ?? { + customerName, + orderCount: 0, + totalAmount: 0, + meterage: 0 + }; + customerRow.orderCount += 1; + customerRow.totalAmount += amount; + customerRow.meterage += order.totalMeterage; + byCustomer.set(customerName, customerRow); + for (const item of order.items) { + const key = item.productId ?? `${item.productName}-${item.productCode}`; + const product = byProduct.get(key) ?? { + productId: item.productId ?? key, + productName: item.productName, + productCode: item.productCode ?? "", + orderCount: 0, + meterage: 0, + totalAmount: 0 + }; + product.orderCount += 1; + product.meterage += item.requestedMeterage; + product.totalAmount += item.lineTotal ?? 0; + byProduct.set(key, product); + } + } + const now = /* @__PURE__ */ new Date(); + const days30 = new Date(now); + days30.setDate(days30.getDate() - 30); + const days90 = new Date(now); + days90.setDate(days90.getDate() - 90); + const reportCustomers = { + active: customers.filter((c) => c.isActive).length, + inactive: customers.filter((c) => !c.isActive).length, + newLast30Days: customers.filter((c) => c.createdAt >= days30).length, + noPurchase: customers.filter((c) => c._count.orders === 0).length, + noPurchase90Days: customers.filter((c) => { + const last = c.orders[0]?.createdAt; + return !last || last < days90; + }).length, + withAgent: customers.filter((c) => !!c.assignedAgentId).length + }; + return { + reportSalesByCompany: Array.from(byCompany.values()).sort((a, b) => b.totalAmount - a.totalAmount), + reportOrdersByStatus: Array.from(byStatus.entries()).map(([status, count]) => ({ status, count })), + reportSalesByMonth: Array.from(byMonth.values()).sort((a, b) => a.month < b.month ? 1 : -1), + reportSalesByProduct: Array.from(byProduct.values()).sort((a, b) => b.meterage - a.meterage).slice(0, 50), + reportSalesByCustomer: Array.from(byCustomer.values()).sort((a, b) => b.totalAmount - a.totalAmount).slice(0, 50), + reportCustomers + }; + } + buildCheckDeadlines(checks, startOfToday) { + const buckets = [ + { id: "cd-today", label: "\u0627\u0645\u0631\u0648\u0632", tone: "danger", days: 0 }, + { id: "cd-3", label: "\u06F3 \u0631\u0648\u0632 \u0622\u06CC\u0646\u062F\u0647", tone: "warning", days: 3 }, + { id: "cd-7", label: "\u06F7 \u0631\u0648\u0632 \u0622\u06CC\u0646\u062F\u0647", tone: "warning", days: 7 }, + { + id: "cd-30", + label: "\u06F3\u06F0 \u0631\u0648\u0632 \u0622\u06CC\u0646\u062F\u0647", + tone: "neutral", + days: 30 + } + ]; + return buckets.map((bucket) => { + const end = new Date(startOfToday); + end.setDate(end.getDate() + bucket.days); + end.setHours(23, 59, 59, 999); + const matched = checks.filter((c) => { + const d = new Date(c.dueDate); + d.setHours(0, 0, 0, 0); + if (bucket.days === 0) { + return d.getTime() === startOfToday.getTime(); + } + return d >= startOfToday && d <= end; + }); + return { + id: bucket.id, + label: bucket.label, + tone: bucket.tone, + count: matched.length, + amount: matched.reduce((s, c) => s + c.amount, 0) + }; + }); + } + }; + exports2.DashboardService = DashboardService; + exports2.DashboardService = DashboardService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [ + prisma_service_1.PrismaService, + orders_service_1.OrdersService + ]) + ], DashboardService); + } +}); + +// dist/dashboard/dashboard.controller.js +var require_dashboard_controller = __commonJS({ + "dist/dashboard/dashboard.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DashboardController = void 0; + var common_12 = require_common(); + var dashboard_service_1 = require_dashboard_service(); + var auth_decorators_1 = require_auth_decorators(); + var DashboardController = class DashboardController { + static { + __name(this, "DashboardController"); + } + dashboardService; + constructor(dashboardService) { + this.dashboardService = dashboardService; + } + getDashboard() { + return this.dashboardService.getDashboard(); + } + getReports() { + return this.dashboardService.getReports(); + } + }; + exports2.DashboardController = DashboardController; + __decorate2([ + (0, common_12.Get)("dashboard"), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], DashboardController.prototype, "getDashboard", null); + __decorate2([ + (0, common_12.Get)("reports"), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], DashboardController.prototype, "getReports", null); + exports2.DashboardController = DashboardController = __decorate2([ + (0, common_12.Controller)("admin"), + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales", "finance"), + __metadata2("design:paramtypes", [dashboard_service_1.DashboardService]) + ], DashboardController); + } +}); + +// dist/dashboard/dashboard.module.js +var require_dashboard_module = __commonJS({ + "dist/dashboard/dashboard.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DashboardModule = void 0; + var common_12 = require_common(); + var dashboard_controller_1 = require_dashboard_controller(); + var dashboard_service_1 = require_dashboard_service(); + var orders_module_1 = require_orders_module(); + var DashboardModule = class DashboardModule { + static { + __name(this, "DashboardModule"); + } + }; + exports2.DashboardModule = DashboardModule; + exports2.DashboardModule = DashboardModule = __decorate2([ + (0, common_12.Module)({ + imports: [orders_module_1.OrdersModule], + controllers: [dashboard_controller_1.DashboardController], + providers: [dashboard_service_1.DashboardService] + }) + ], DashboardModule); + } +}); + +// dist/settings/settings.service.js +var require_settings_service = __commonJS({ + "dist/settings/settings.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SettingsService = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var category_defs_1 = require_category_defs(); + var SettingsService = class SettingsService { + static { + __name(this, "SettingsService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async get() { + const settings = await this.ensureDefaults(); + return this.map(settings); + } + async update(dto) { + await this.ensureDefaults(); + const settings = await this.prisma.systemSettings.update({ + where: { id: "default" }, + data: { + maxMeteragePerInvoice: dto.maxMeteragePerInvoice, + cashInvoiceValidityHours: dto.cashInvoiceValidityHours, + defaultSettlementCheck: dto.defaultSettlementCheck, + defaultSettlementCash: dto.defaultSettlementCash, + minOrderRollsPerProduct: dto.minOrderRollsPerProduct, + showCatalogPublicPrice: dto.showCatalogPublicPrice, + allowAgentPricing: dto.allowAgentPricing, + agentMinUnitPrice: dto.agentMinUnitPrice === void 0 ? void 0 : dto.agentMinUnitPrice, + smsOrderRegistered: dto.smsOrderRegistered, + smsPricingReady: dto.smsPricingReady, + smsPaymentReminder: dto.smsPaymentReminder, + smsCheckReview: dto.smsCheckReview, + smsShippingUpdate: dto.smsShippingUpdate, + supportPhone: dto.supportPhone === void 0 ? void 0 : dto.supportPhone?.trim() || null, + supportEmail: dto.supportEmail === void 0 ? void 0 : dto.supportEmail?.trim() || null, + categoryImagesJson: dto.categoryImagesJson === void 0 ? void 0 : this.normalizeCategoryImages(dto.categoryImagesJson) + } + }); + return this.map(settings); + } + async ensureDefaults() { + return this.prisma.systemSettings.upsert({ + where: { id: "default" }, + create: { id: "default" }, + update: {} + }); + } + map(settings) { + return { + id: settings.id, + maxMeteragePerInvoice: settings.maxMeteragePerInvoice, + cashInvoiceValidityHours: settings.cashInvoiceValidityHours, + defaultSettlementCheck: settings.defaultSettlementCheck, + defaultSettlementCash: settings.defaultSettlementCash, + minOrderRollsPerProduct: settings.minOrderRollsPerProduct ?? 1, + showCatalogPublicPrice: settings.showCatalogPublicPrice ?? false, + allowAgentPricing: settings.allowAgentPricing ?? false, + agentMinUnitPrice: settings.agentMinUnitPrice ?? null, + smsOrderRegistered: settings.smsOrderRegistered, + smsPricingReady: settings.smsPricingReady, + smsPaymentReminder: settings.smsPaymentReminder, + smsCheckReview: settings.smsCheckReview, + smsShippingUpdate: settings.smsShippingUpdate, + supportPhone: settings.supportPhone, + supportEmail: settings.supportEmail, + categoryImagesJson: (0, category_defs_1.asImageMap)(settings.categoryImagesJson), + updatedAt: settings.updatedAt.toISOString() + }; + } + normalizeCategoryImages(input) { + const allowed = new Set(category_defs_1.CATEGORY_IMAGE_KEYS); + const next = {}; + for (const [key, value] of Object.entries(input)) { + if (!allowed.has(key)) + continue; + if (value == null || value === "") + continue; + const image = value.trim(); + if (!image.startsWith("data:image/") && !image.startsWith("https://") && !image.startsWith("http://")) { + throw new common_12.BadRequestException("\u0641\u0631\u0645\u062A \u062A\u0635\u0648\u06CC\u0631 \u062F\u0633\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + if (image.startsWith("data:image/") && image.length > 16e5) { + throw new common_12.BadRequestException("\u062D\u062C\u0645 \u062A\u0635\u0648\u06CC\u0631 \u062F\u0633\u062A\u0647 \u062E\u06CC\u0644\u06CC \u0632\u06CC\u0627\u062F \u0627\u0633\u062A"); + } + next[key] = image; + } + return next; + } + }; + exports2.SettingsService = SettingsService; + exports2.SettingsService = SettingsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], SettingsService); + } +}); + +// dist/settings/dto/settings.dto.js +var require_settings_dto = __commonJS({ + "dist/settings/dto/settings.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateSettingsDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var UpdateSettingsDto = class { + static { + __name(this, "UpdateSettingsDto"); + } + maxMeteragePerInvoice; + cashInvoiceValidityHours; + defaultSettlementCheck; + defaultSettlementCash; + smsOrderRegistered; + smsPricingReady; + smsPaymentReminder; + smsCheckReview; + smsShippingUpdate; + minOrderRollsPerProduct; + showCatalogPublicPrice; + allowAgentPricing; + agentMinUnitPrice; + supportPhone; + supportEmail; + categoryImagesJson; + }; + exports2.UpdateSettingsDto = UpdateSettingsDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], UpdateSettingsDto.prototype, "maxMeteragePerInvoice", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], UpdateSettingsDto.prototype, "cashInvoiceValidityHours", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateSettingsDto.prototype, "defaultSettlementCheck", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateSettingsDto.prototype, "defaultSettlementCash", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateSettingsDto.prototype, "smsOrderRegistered", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateSettingsDto.prototype, "smsPricingReady", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateSettingsDto.prototype, "smsPaymentReminder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateSettingsDto.prototype, "smsCheckReview", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateSettingsDto.prototype, "smsShippingUpdate", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], UpdateSettingsDto.prototype, "minOrderRollsPerProduct", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateSettingsDto.prototype, "showCatalogPublicPrice", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateSettingsDto.prototype, "allowAgentPricing", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Object) + ], UpdateSettingsDto.prototype, "agentMinUnitPrice", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateSettingsDto.prototype, "supportPhone", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateSettingsDto.prototype, "supportEmail", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsObject)(), + __metadata2("design:type", Object) + ], UpdateSettingsDto.prototype, "categoryImagesJson", void 0); + } +}); + +// dist/settings/settings.controller.js +var require_settings_controller = __commonJS({ + "dist/settings/settings.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SettingsController = void 0; + var common_12 = require_common(); + var settings_service_1 = require_settings_service(); + var auth_decorators_1 = require_auth_decorators(); + var settings_dto_1 = require_settings_dto(); + var SettingsController = class SettingsController { + static { + __name(this, "SettingsController"); + } + settingsService; + constructor(settingsService) { + this.settingsService = settingsService; + } + get() { + return this.settingsService.get(); + } + update(dto) { + return this.settingsService.update(dto); + } + }; + exports2.SettingsController = SettingsController; + __decorate2([ + (0, common_12.Get)(), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], SettingsController.prototype, "get", null); + __decorate2([ + (0, common_12.Patch)(), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [settings_dto_1.UpdateSettingsDto]), + __metadata2("design:returntype", void 0) + ], SettingsController.prototype, "update", null); + exports2.SettingsController = SettingsController = __decorate2([ + (0, common_12.Controller)("admin/settings"), + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin"), + __metadata2("design:paramtypes", [settings_service_1.SettingsService]) + ], SettingsController); + } +}); + +// dist/settings/settings.module.js +var require_settings_module = __commonJS({ + "dist/settings/settings.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SettingsModule = void 0; + var common_12 = require_common(); + var settings_controller_1 = require_settings_controller(); + var settings_service_1 = require_settings_service(); + var SettingsModule = class SettingsModule { + static { + __name(this, "SettingsModule"); + } + }; + exports2.SettingsModule = SettingsModule; + exports2.SettingsModule = SettingsModule = __decorate2([ + (0, common_12.Module)({ + controllers: [settings_controller_1.SettingsController], + providers: [settings_service_1.SettingsService], + exports: [settings_service_1.SettingsService] + }) + ], SettingsModule); + } +}); + +// dist/carts/carts.service.js +var require_carts_service = __commonJS({ + "dist/carts/carts.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CartsService = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var CartsService = class CartsService { + static { + __name(this, "CartsService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async getCart(userId) { + const cart = await this.ensureCart(userId); + return this.mapCart(cart); + } + async addItem(userId, dto) { + const product = await this.prisma.product.findUnique({ + where: { id: dto.productId }, + include: { + catalog: true, + company: true + } + }); + if (!product || !product.isActive) { + throw new common_12.NotFoundException("\u0645\u062D\u0635\u0648\u0644 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + } + await this.validateMeterage(product, dto.meterage); + const cart = await this.ensureCart(userId); + const existing = await this.prisma.cartItem.findUnique({ + where: { + cartId_productId: { cartId: cart.id, productId: product.id } + } + }); + if (existing) { + const newMeterage = existing.meterage + dto.meterage; + await this.validateMeterage(product, newMeterage); + await this.prisma.cartItem.update({ + where: { id: existing.id }, + data: { + meterage: newMeterage, + notes: dto.notes?.trim() || existing.notes + } + }); + } else { + await this.prisma.cartItem.create({ + data: { + cartId: cart.id, + productId: product.id, + catalogCode: product.catalog.code, + productName: product.name, + productCode: product.code, + color: product.color, + meterage: dto.meterage, + notes: dto.notes?.trim() || null, + companyId: product.companyId, + companyName: product.company.name + } + }); + } + await this.prisma.cart.update({ + where: { id: cart.id }, + data: { + companyId: product.companyId, + updatedAt: /* @__PURE__ */ new Date() + } + }); + return this.getCart(userId); + } + async updateItem(userId, itemId, dto) { + const cart = await this.ensureCart(userId); + const item = await this.prisma.cartItem.findFirst({ + where: { id: itemId, cartId: cart.id }, + include: { product: true } + }); + if (!item) + throw new common_12.NotFoundException("\u0622\u06CC\u062A\u0645 \u0633\u0628\u062F \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + await this.validateMeterage(item.product, dto.meterage); + await this.prisma.cartItem.update({ + where: { id: itemId }, + data: { + meterage: dto.meterage, + notes: dto.notes === void 0 ? void 0 : dto.notes?.trim() || null + } + }); + await this.prisma.cart.update({ + where: { id: cart.id }, + data: { updatedAt: /* @__PURE__ */ new Date() } + }); + return this.getCart(userId); + } + async removeItem(userId, itemId) { + const cart = await this.ensureCart(userId); + const item = await this.prisma.cartItem.findFirst({ + where: { id: itemId, cartId: cart.id } + }); + if (!item) + throw new common_12.NotFoundException("\u0622\u06CC\u062A\u0645 \u0633\u0628\u062F \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + await this.prisma.cartItem.delete({ where: { id: itemId } }); + const remaining = await this.prisma.cartItem.findMany({ + where: { cartId: cart.id }, + take: 1 + }); + await this.prisma.cart.update({ + where: { id: cart.id }, + data: { + companyId: remaining[0]?.companyId ?? null, + updatedAt: /* @__PURE__ */ new Date() + } + }); + return this.getCart(userId); + } + async updateNotes(userId, dto) { + const cart = await this.ensureCart(userId); + await this.prisma.cart.update({ + where: { id: cart.id }, + data: { notes: dto.notes?.trim() || null } + }); + return this.getCart(userId); + } + async clearCart(userId) { + const cart = await this.ensureCart(userId); + await this.prisma.cartItem.deleteMany({ where: { cartId: cart.id } }); + await this.prisma.cart.update({ + where: { id: cart.id }, + data: { notes: null, companyId: null } + }); + return this.getCart(userId); + } + async validateMeterage(product, meterage) { + if (meterage < product.minMeterage) { + throw new common_12.BadRequestException(`\u062D\u062F\u0627\u0642\u0644 \u0645\u062A\u0631\u0627\u0698 \u0628\u0631\u0627\u06CC ${product.name} \u0628\u0631\u0627\u0628\u0631 ${product.minMeterage} \u0627\u0633\u062A`); + } + const rem = Math.round(meterage / product.orderMultiplier * 1e3) / 1e3; + if (Math.abs(rem - Math.round(rem)) > 1e-6) { + throw new common_12.BadRequestException(`\u0645\u062A\u0631\u0627\u0698 \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${product.orderMultiplier} \u0628\u0627\u0634\u062F`); + } + const settings = await this.prisma.systemSettings.findUnique({ + where: { id: "default" } + }); + const minRolls = settings?.minOrderRollsPerProduct ?? 1; + const rollMeters = product.rollMeters && product.rollMeters > 0 ? product.rollMeters : product.minMeterage > 0 ? product.minMeterage : 50; + const rolls = meterage / rollMeters; + if (rolls + 1e-9 < minRolls) { + throw new common_12.BadRequestException(`\u062D\u062F\u0627\u0642\u0644 \u0633\u0641\u0627\u0631\u0634 \u0628\u0631\u0627\u06CC \u0647\u0631 \u0645\u062D\u0635\u0648\u0644 ${minRolls} \u0637\u0627\u0642\u0647 \u0627\u0633\u062A (\u062D\u062F\u0648\u062F ${minRolls * rollMeters} \u0645\u062A\u0631)`); + } + } + async ensureCart(userId) { + let cart = await this.prisma.cart.findFirst({ + where: { userId }, + include: { items: true } + }); + if (!cart) { + cart = await this.prisma.cart.create({ + data: { userId }, + include: { items: true } + }); + } + return cart; + } + mapCart(cart) { + const companyNames = [ + ...new Set(cart.items.map((item) => item.companyName).filter(Boolean)) + ]; + return { + id: cart.id, + userId: cart.userId, + companyId: cart.companyId ?? cart.items[0]?.companyId, + companyName: companyNames.join("\u060C "), + notes: cart.notes ?? void 0, + items: cart.items.map((item) => ({ + id: item.id, + productId: item.productId, + catalogCode: item.catalogCode, + productName: item.productName, + productCode: item.productCode, + color: item.color, + meterage: item.meterage, + notes: item.notes ?? void 0, + companyId: item.companyId, + companyName: item.companyName + })), + totalMeterage: cart.items.reduce((s, i) => s + i.meterage, 0), + itemCount: cart.items.length, + createdAt: cart.createdAt.toISOString(), + updatedAt: cart.updatedAt.toISOString() + }; + } + }; + exports2.CartsService = CartsService; + exports2.CartsService = CartsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], CartsService); + } +}); + +// dist/carts/dto/cart.dto.js +var require_cart_dto = __commonJS({ + "dist/carts/dto/cart.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateCartNotesDto = exports2.UpdateCartItemMeterageDto = exports2.AddCartItemDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var AddCartItemDto = class { + static { + __name(this, "AddCartItemDto"); + } + productId; + meterage; + notes; + }; + exports2.AddCartItemDto = AddCartItemDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AddCartItemDto.prototype, "productId", void 0); + __decorate2([ + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(1e-3), + __metadata2("design:type", Number) + ], AddCartItemDto.prototype, "meterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], AddCartItemDto.prototype, "notes", void 0); + var UpdateCartItemMeterageDto = class { + static { + __name(this, "UpdateCartItemMeterageDto"); + } + meterage; + notes; + }; + exports2.UpdateCartItemMeterageDto = UpdateCartItemMeterageDto; + __decorate2([ + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsNumber)(), + (0, class_validator_1.Min)(1e-3), + __metadata2("design:type", Number) + ], UpdateCartItemMeterageDto.prototype, "meterage", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateCartItemMeterageDto.prototype, "notes", void 0); + var UpdateCartNotesDto = class { + static { + __name(this, "UpdateCartNotesDto"); + } + notes; + }; + exports2.UpdateCartNotesDto = UpdateCartNotesDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateCartNotesDto.prototype, "notes", void 0); + } +}); + +// dist/carts/carts.controller.js +var require_carts_controller = __commonJS({ + "dist/carts/carts.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CartsController = void 0; + var common_12 = require_common(); + var carts_service_1 = require_carts_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var cart_dto_1 = require_cart_dto(); + var CartsController = class CartsController { + static { + __name(this, "CartsController"); + } + cartsService; + constructor(cartsService) { + this.cartsService = cartsService; + } + getCart(user) { + return this.cartsService.getCart(user.id); + } + addItem(user, dto) { + return this.cartsService.addItem(user.id, dto); + } + updateItem(user, itemId, dto) { + return this.cartsService.updateItem(user.id, itemId, dto); + } + removeItem(user, itemId) { + return this.cartsService.removeItem(user.id, itemId); + } + updateNotes(user, dto) { + return this.cartsService.updateNotes(user.id, dto); + } + clear(user) { + return this.cartsService.clearCart(user.id); + } + }; + exports2.CartsController = CartsController; + __decorate2([ + (0, common_12.Get)(), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], CartsController.prototype, "getCart", null); + __decorate2([ + (0, common_12.Post)("items"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, cart_dto_1.AddCartItemDto]), + __metadata2("design:returntype", void 0) + ], CartsController.prototype, "addItem", null); + __decorate2([ + (0, common_12.Patch)("items/:itemId"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("itemId")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, cart_dto_1.UpdateCartItemMeterageDto]), + __metadata2("design:returntype", void 0) + ], CartsController.prototype, "updateItem", null); + __decorate2([ + (0, common_12.Delete)("items/:itemId"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("itemId")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], CartsController.prototype, "removeItem", null); + __decorate2([ + (0, common_12.Patch)("notes"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, cart_dto_1.UpdateCartNotesDto]), + __metadata2("design:returntype", void 0) + ], CartsController.prototype, "updateNotes", null); + __decorate2([ + (0, common_12.Delete)(), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], CartsController.prototype, "clear", null); + exports2.CartsController = CartsController = __decorate2([ + (0, common_12.Controller)("carts"), + (0, auth_decorators_1.AuthType)("customer"), + __metadata2("design:paramtypes", [carts_service_1.CartsService]) + ], CartsController); + } +}); + +// dist/carts/carts.module.js +var require_carts_module = __commonJS({ + "dist/carts/carts.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CartsModule = void 0; + var common_12 = require_common(); + var carts_controller_1 = require_carts_controller(); + var carts_service_1 = require_carts_service(); + var CartsModule = class CartsModule { + static { + __name(this, "CartsModule"); + } + }; + exports2.CartsModule = CartsModule; + exports2.CartsModule = CartsModule = __decorate2([ + (0, common_12.Module)({ + controllers: [carts_controller_1.CartsController], + providers: [carts_service_1.CartsService], + exports: [carts_service_1.CartsService] + }) + ], CartsModule); + } +}); + +// dist/agent/agent.service.js +var require_agent_service = __commonJS({ + "dist/agent/agent.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AgentService = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var prisma_service_1 = require_prisma_service(); + var phone_1 = require_phone(); + var category_defs_1 = require_category_defs(); + var AVATAR_COLORS = ["#f9a8d4", "#c4b5fd", "#93c5fd", "#86efac", "#fcd34d", "#fdba74"]; + var AgentService = class AgentService { + static { + __name(this, "AgentService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async requireAgent(agentId) { + const agent = await this.prisma.customer.findUnique({ + where: { id: agentId } + }); + if (!agent || agent.appRole !== client_1.AppUserRole.agent) { + throw new common_12.ForbiddenException("\u0641\u0642\u0637 \u0648\u0627\u0633\u0637\u0647 \u0628\u0647 \u0627\u06CC\u0646 \u0628\u062E\u0634 \u062F\u0633\u062A\u0631\u0633\u06CC \u062F\u0627\u0631\u062F"); + } + return agent; + } + async getProfile(agentId) { + const agent = await this.requireAgent(agentId); + const [customersCount, ordersCount] = await Promise.all([ + this.prisma.customer.count({ + where: { assignedAgentId: agentId, isActive: true } + }), + this.prisma.order.count({ + where: { + user: { assignedAgentId: agentId } + } + }) + ]); + const sales = await this.prisma.order.aggregate({ + where: { + user: { assignedAgentId: agentId }, + finalAmount: { not: null } + }, + _sum: { finalAmount: true } + }); + const salesVolume = sales._sum.finalAmount ?? 0; + return { + id: agent.id, + firstName: agent.firstName, + lastName: agent.lastName, + code: agent.agentCode ?? "", + levelLabel: agent.levelLabel ?? "\u0628\u0631\u0646\u0632\u06CC", + nextLevelLabel: agent.nextLevelLabel ?? "\u0646\u0642\u0631\u0647\u200C\u0627\u06CC", + pointsToNext: agent.pointsToNext ?? 0, + levelProgress: agent.levelProgress ?? 0, + phone: agent.phone, + customersCount, + ordersCount, + salesVolumeToman: salesVolume, + profitToman: Math.round(salesVolume * 0.1), + periodLabel: "\u06F3\u06F0\u06F0 \u0631\u0648\u0632 \u0627\u062E\u06CC\u0631" + }; + } + async listMyCustomers(agentId, q, status) { + await this.requireAgent(agentId); + const where = { + assignedAgentId: agentId, + ...status === "inactive" ? { isActive: false } : {}, + ...status === "active" || status === "new" ? { isActive: true } : {}, + ...q ? { + OR: [ + { firstName: { contains: q, mode: "insensitive" } }, + { lastName: { contains: q, mode: "insensitive" } }, + { businessName: { contains: q, mode: "insensitive" } }, + { phone: { contains: q } } + ] + } : {} + }; + const customers = await this.prisma.customer.findMany({ + where, + orderBy: { createdAt: "desc" }, + include: { + orders: { + select: { finalAmount: true, id: true } + } + } + }); + const mapped = customers.map((c) => { + const amounts = c.orders.map((o) => o.finalAmount ?? 0).filter((n) => n > 0); + const total = amounts.reduce((a, b) => a + b, 0); + const orderCount = c.orders.length; + return { + id: c.id, + name: c.businessName || `${c.firstName} ${c.lastName}`, + contactName: `${c.firstName} ${c.lastName}`, + phone: c.phone, + status: !c.isActive ? "inactive" : orderCount === 0 ? "new" : "active", + avatarLetter: c.avatarLetter || c.firstName.charAt(0), + avatarColor: c.avatarColor || "#c4b5fd", + totalPurchaseToman: total, + orderCount, + averageOrderToman: orderCount ? Math.round(total / orderCount) : 0, + levelLabel: c.levelLabel || "\u0628\u0631\u0646\u0632\u06CC", + firstPurchaseDate: "\u2014", + agentCode: void 0, + agentName: void 0 + }; + }); + if (status === "active" || status === "new" || status === "inactive") { + return mapped.filter((c) => c.status === status); + } + return mapped; + } + async createCustomer(agentId, dto) { + await this.requireAgent(agentId); + const phone = (0, phone_1.normalizePhone)((0, phone_1.toEnglishDigits)(dto.phone)); + if (!(0, phone_1.isValidPhone)(phone)) { + throw new common_12.BadRequestException("\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + const firstName = dto.firstName.trim(); + const lastName = dto.lastName.trim(); + const businessName = dto.businessName?.trim() || null; + if (firstName.length < 2) { + throw new common_12.BadRequestException("\u0646\u0627\u0645 \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A"); + } + if (lastName.length < 2) { + throw new common_12.BadRequestException("\u0646\u0627\u0645 \u062E\u0627\u0646\u0648\u0627\u062F\u06AF\u06CC \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A"); + } + const existing = await this.prisma.customer.findUnique({ where: { phone } }); + if (existing) { + if (existing.assignedAgentId === agentId) { + throw new common_12.ConflictException("\u0627\u06CC\u0646 \u0645\u0634\u062A\u0631\u06CC \u0627\u0632 \u0642\u0628\u0644 \u062F\u0631 \u0644\u06CC\u0633\u062A \u0634\u0645\u0627\u0633\u062A"); + } + throw new common_12.ConflictException("\u0627\u06CC\u0646 \u0634\u0645\u0627\u0631\u0647 \u0642\u0628\u0644\u0627\u064B \u062B\u0628\u062A \u0634\u062F\u0647 \u0627\u0633\u062A. \u0628\u0631\u0627\u06CC \u0627\u0646\u062A\u0633\u0627\u0628 \u0628\u0647 \u0644\u06CC\u0633\u062A \u062E\u0648\u062F\u060C \u0627\u0632 \u0627\u062F\u0645\u06CC\u0646 \u062F\u0631\u062E\u0648\u0627\u0633\u062A \u06A9\u0646\u06CC\u062F."); + } + const colorIndex = phone.split("").reduce((sum, ch) => sum + ch.charCodeAt(0), 0) % AVATAR_COLORS.length; + const avatarColor = AVATAR_COLORS[colorIndex] ?? "#c4b5fd"; + try { + const created = await this.prisma.customer.create({ + data: { + firstName, + lastName, + phone, + businessName, + assignedAgentId: agentId, + appRole: client_1.AppUserRole.customer, + isActive: true, + avatarLetter: firstName.charAt(0), + avatarColor + } + }); + return { + id: created.id, + name: created.businessName || `${created.firstName} ${created.lastName}`, + contactName: `${created.firstName} ${created.lastName}`, + phone: created.phone, + status: "new", + avatarLetter: created.avatarLetter || created.firstName.charAt(0), + avatarColor: created.avatarColor || avatarColor, + totalPurchaseToman: 0, + orderCount: 0, + averageOrderToman: 0, + levelLabel: created.levelLabel || "\u0628\u0631\u0646\u0632\u06CC", + firstPurchaseDate: "\u2014" + }; + } catch (e) { + if (e instanceof client_1.Prisma.PrismaClientKnownRequestError && e.code === "P2002") { + throw new common_12.ConflictException("\u0627\u06CC\u0646 \u0634\u0645\u0627\u0631\u0647 \u0642\u0628\u0644\u0627\u064B \u062B\u0628\u062A \u0634\u062F\u0647 \u0627\u0633\u062A"); + } + throw e; + } + } + async getCustomerDetail(agentId, customerId) { + await this.requireAgent(agentId); + const customer = await this.prisma.customer.findFirst({ + where: { id: customerId, assignedAgentId: agentId }, + include: { + orders: { + orderBy: { createdAt: "desc" }, + take: 20 + } + } + }); + if (!customer) + throw new common_12.NotFoundException("\u0645\u0634\u062A\u0631\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const agent = await this.prisma.customer.findUnique({ + where: { id: agentId } + }); + const amounts = customer.orders.map((o) => o.finalAmount ?? 0).filter((n) => n > 0); + const total = amounts.reduce((a, b) => a + b, 0); + const orderCount = customer.orders.length; + const meetings = await this.prisma.meetingInteraction.findMany({ + where: { customerId, agentId }, + orderBy: { createdAt: "desc" }, + take: 50 + }); + return { + customer: { + id: customer.id, + name: customer.businessName || `${customer.firstName} ${customer.lastName}`, + contactName: `${customer.firstName} ${customer.lastName}`, + phone: customer.phone, + status: customer.isActive ? "active" : "inactive", + avatarLetter: customer.avatarLetter || customer.firstName.charAt(0), + avatarColor: customer.avatarColor || "#f9a8d4", + totalPurchaseToman: total, + orderCount, + averageOrderToman: orderCount ? Math.round(total / orderCount) : 0, + levelLabel: customer.levelLabel || "\u0628\u0631\u0646\u0632\u06CC", + firstPurchaseDate: customer.createdAt.toISOString().slice(0, 10), + agentCode: agent?.agentCode, + agentName: agent ? `${agent.firstName} ${agent.lastName}` : void 0 + }, + orders: customer.orders.map((o) => ({ + id: o.id, + customerId: customer.id, + title: `\u0633\u0641\u0627\u0631\u0634 #${o.orderNumber}`, + amountToman: o.finalAmount ?? 0, + statusLabel: o.status, + statusTone: "info", + date: o.createdAt.toISOString().slice(0, 10) + })), + meetings: meetings.map((m) => ({ + id: m.id, + customerId: m.customerId, + type: m.type, + title: m.title, + description: m.description ?? "", + date: m.date, + time: m.time ?? void 0 + })) + }; + } + async createMeeting(agentId, dto) { + await this.requireAgent(agentId); + const customer = await this.prisma.customer.findFirst({ + where: { id: dto.customerId, assignedAgentId: agentId } + }); + if (!customer) + throw new common_12.NotFoundException("\u0645\u0634\u062A\u0631\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const meeting = await this.prisma.meetingInteraction.create({ + data: { + agentId, + customerId: dto.customerId, + type: dto.type, + title: dto.title.trim(), + description: dto.description?.trim(), + subject: dto.subject?.trim(), + content: dto.content?.trim(), + date: dto.date, + time: dto.time + } + }); + let reminder = null; + if (dto.createReminder && dto.reminderTitle && dto.reminderDate && dto.reminderTime) { + reminder = await this.prisma.reminder.create({ + data: { + ownerId: agentId, + customerId: dto.customerId, + title: dto.reminderTitle.trim(), + description: dto.reminderNote?.trim(), + note: dto.reminderNote?.trim(), + date: dto.reminderDate, + time: dto.reminderTime, + interactionType: dto.type + } + }); + } + return { meeting, reminder }; + } + async listReminders(agentId, filter) { + await this.requireAgent(agentId); + const where = { ownerId: agentId }; + const today = /* @__PURE__ */ new Date(); + const yyyy = today.getFullYear(); + const mm = String(today.getMonth() + 1).padStart(2, "0"); + const dd = String(today.getDate()).padStart(2, "0"); + const todayStr = `${yyyy}-${mm}-${dd}`; + const weekEnd = new Date(today); + weekEnd.setDate(weekEnd.getDate() + 7); + const weekEndStr = `${weekEnd.getFullYear()}-${String(weekEnd.getMonth() + 1).padStart(2, "0")}-${String(weekEnd.getDate()).padStart(2, "0")}`; + if (filter === "past") { + where.completed = true; + } else if (filter === "today") { + where.completed = false; + where.date = todayStr; + } else if (filter === "week") { + where.completed = false; + where.date = { gte: todayStr, lte: weekEndStr }; + } else if (filter === "all") { + } else { + where.completed = false; + } + const reminders = await this.prisma.reminder.findMany({ + where, + orderBy: [{ date: "asc" }, { time: "asc" }], + include: { + customer: true + } + }); + return reminders.map((r) => ({ + id: r.id, + customerId: r.customerId, + title: r.title, + description: r.description ?? "", + time: r.time, + date: r.date, + interactionType: r.interactionType, + completed: r.completed, + note: r.note ?? void 0, + customerName: r.customer.businessName || `${r.customer.firstName} ${r.customer.lastName}`, + contactName: `${r.customer.firstName} ${r.customer.lastName}`, + avatarLetter: r.customer.avatarLetter || r.customer.firstName.charAt(0), + avatarColor: r.customer.avatarColor || "#c4b5fd" + })); + } + async getReminder(agentId, reminderId) { + await this.requireAgent(agentId); + const reminder = await this.prisma.reminder.findFirst({ + where: { id: reminderId, ownerId: agentId }, + include: { customer: true } + }); + if (!reminder) + throw new common_12.NotFoundException("\u06CC\u0627\u062F\u0622\u0648\u0631 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const history = await this.prisma.meetingInteraction.findMany({ + where: { customerId: reminder.customerId, agentId }, + orderBy: { createdAt: "desc" }, + take: 20 + }); + return { + reminder: { + id: reminder.id, + customerId: reminder.customerId, + title: reminder.title, + description: reminder.description ?? "", + time: reminder.time, + date: reminder.date, + interactionType: reminder.interactionType, + completed: reminder.completed, + note: reminder.note ?? void 0 + }, + customer: { + id: reminder.customer.id, + name: reminder.customer.businessName || `${reminder.customer.firstName} ${reminder.customer.lastName}`, + contactName: `${reminder.customer.firstName} ${reminder.customer.lastName}`, + phone: reminder.customer.phone, + avatarLetter: reminder.customer.avatarLetter || reminder.customer.firstName.charAt(0), + avatarColor: reminder.customer.avatarColor || "#f9a8d4" + }, + history: history.map((m) => ({ + id: m.id, + type: m.type, + title: m.title, + description: m.description ?? "", + date: m.date + })) + }; + } + async createReminder(agentId, dto) { + await this.requireAgent(agentId); + const customer = await this.prisma.customer.findFirst({ + where: { id: dto.customerId, assignedAgentId: agentId } + }); + if (!customer) + throw new common_12.NotFoundException("\u0645\u0634\u062A\u0631\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return this.prisma.reminder.create({ + data: { + ownerId: agentId, + customerId: dto.customerId, + title: dto.title.trim(), + description: dto.description?.trim(), + note: dto.note?.trim(), + date: dto.date, + time: dto.time, + interactionType: dto.interactionType ?? client_1.InteractionType.note + } + }); + } + async completeReminder(agentId, reminderId, dto) { + await this.requireAgent(agentId); + const reminder = await this.prisma.reminder.findFirst({ + where: { id: reminderId, ownerId: agentId } + }); + if (!reminder) + throw new common_12.NotFoundException("\u06CC\u0627\u062F\u0622\u0648\u0631 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const completed = dto.completed ?? true; + return this.prisma.reminder.update({ + where: { id: reminderId }, + data: { + completed, + completedAt: completed ? /* @__PURE__ */ new Date() : null + } + }); + } + async listCategories() { + return (0, category_defs_1.loadCatalogCategories)(this.prisma); + } + }; + exports2.AgentService = AgentService; + exports2.AgentService = AgentService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], AgentService); + } +}); + +// dist/agent/dto/agent.dto.js +var require_agent_dto = __commonJS({ + "dist/agent/dto/agent.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CreateAgentCustomerDto = exports2.CompleteReminderDto = exports2.CreateReminderDto = exports2.CreateMeetingDto = void 0; + var class_validator_1 = require_cjs(); + var client_1 = require_default2(); + var CreateMeetingDto = class { + static { + __name(this, "CreateMeetingDto"); + } + customerId; + type; + title; + description; + subject; + content; + date; + time; + createReminder; + reminderTitle; + reminderDate; + reminderTime; + reminderNote; + }; + exports2.CreateMeetingDto = CreateMeetingDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "customerId", void 0); + __decorate2([ + (0, class_validator_1.IsEnum)(client_1.InteractionType), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "type", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(2), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "title", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "subject", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MaxLength)(1e3), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "content", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "date", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "time", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateMeetingDto.prototype, "createReminder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "reminderTitle", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "reminderDate", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "reminderTime", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateMeetingDto.prototype, "reminderNote", void 0); + var CreateReminderDto = class { + static { + __name(this, "CreateReminderDto"); + } + customerId; + title; + description; + note; + date; + time; + interactionType; + }; + exports2.CreateReminderDto = CreateReminderDto; + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateReminderDto.prototype, "customerId", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(2), + __metadata2("design:type", String) + ], CreateReminderDto.prototype, "title", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateReminderDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateReminderDto.prototype, "note", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateReminderDto.prototype, "date", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateReminderDto.prototype, "time", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsEnum)(client_1.InteractionType), + __metadata2("design:type", String) + ], CreateReminderDto.prototype, "interactionType", void 0); + var CompleteReminderDto = class { + static { + __name(this, "CompleteReminderDto"); + } + completed; + }; + exports2.CompleteReminderDto = CompleteReminderDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CompleteReminderDto.prototype, "completed", void 0); + var CreateAgentCustomerDto = class { + static { + __name(this, "CreateAgentCustomerDto"); + } + firstName; + lastName; + phone; + businessName; + }; + exports2.CreateAgentCustomerDto = CreateAgentCustomerDto; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(2), + __metadata2("design:type", String) + ], CreateAgentCustomerDto.prototype, "firstName", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(2), + __metadata2("design:type", String) + ], CreateAgentCustomerDto.prototype, "lastName", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(10), + __metadata2("design:type", String) + ], CreateAgentCustomerDto.prototype, "phone", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateAgentCustomerDto.prototype, "businessName", void 0); + } +}); + +// dist/agent/agent.controller.js +var require_agent_controller = __commonJS({ + "dist/agent/agent.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AgentController = void 0; + var common_12 = require_common(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var agent_service_1 = require_agent_service(); + var agent_dto_1 = require_agent_dto(); + var AgentController = class AgentController { + static { + __name(this, "AgentController"); + } + agentService; + constructor(agentService) { + this.agentService = agentService; + } + categories() { + return this.agentService.listCategories(); + } + profile(user) { + return this.agentService.getProfile(user.id); + } + customers(user, q, status) { + return this.agentService.listMyCustomers(user.id, q, status); + } + createCustomer(user, dto) { + return this.agentService.createCustomer(user.id, dto); + } + customerDetail(user, id) { + return this.agentService.getCustomerDetail(user.id, id); + } + createMeeting(user, dto) { + return this.agentService.createMeeting(user.id, dto); + } + reminders(user, filter) { + return this.agentService.listReminders(user.id, filter); + } + reminderDetail(user, id) { + return this.agentService.getReminder(user.id, id); + } + createReminder(user, dto) { + return this.agentService.createReminder(user.id, dto); + } + completeReminder(user, id, dto) { + return this.agentService.completeReminder(user.id, id, dto); + } + }; + exports2.AgentController = AgentController; + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)("catalog/categories"), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "categories", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, auth_decorators_1.Roles)("agent"), + (0, common_12.Get)("agent/profile"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "profile", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, auth_decorators_1.Roles)("agent"), + (0, common_12.Get)("agent/customers"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Query)("q")), + __param2(2, (0, common_12.Query)("status")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, String]), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "customers", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, auth_decorators_1.Roles)("agent"), + (0, common_12.Post)("agent/customers"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, agent_dto_1.CreateAgentCustomerDto]), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "createCustomer", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, auth_decorators_1.Roles)("agent"), + (0, common_12.Get)("agent/customers/:id"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "customerDetail", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, auth_decorators_1.Roles)("agent"), + (0, common_12.Post)("agent/meetings"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, agent_dto_1.CreateMeetingDto]), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "createMeeting", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, auth_decorators_1.Roles)("agent"), + (0, common_12.Get)("agent/reminders"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Query)("filter")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "reminders", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, auth_decorators_1.Roles)("agent"), + (0, common_12.Get)("agent/reminders/:id"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "reminderDetail", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, auth_decorators_1.Roles)("agent"), + (0, common_12.Post)("agent/reminders"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, agent_dto_1.CreateReminderDto]), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "createReminder", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, auth_decorators_1.Roles)("agent"), + (0, common_12.Patch)("agent/reminders/:id/complete"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __param2(2, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String, agent_dto_1.CompleteReminderDto]), + __metadata2("design:returntype", void 0) + ], AgentController.prototype, "completeReminder", null); + exports2.AgentController = AgentController = __decorate2([ + (0, common_12.Controller)(), + __metadata2("design:paramtypes", [agent_service_1.AgentService]) + ], AgentController); + } +}); + +// dist/agent/agent.module.js +var require_agent_module = __commonJS({ + "dist/agent/agent.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AgentModule = void 0; + var common_12 = require_common(); + var agent_controller_1 = require_agent_controller(); + var agent_service_1 = require_agent_service(); + var prisma_module_1 = require_prisma_module(); + var AgentModule = class AgentModule { + static { + __name(this, "AgentModule"); + } + }; + exports2.AgentModule = AgentModule; + exports2.AgentModule = AgentModule = __decorate2([ + (0, common_12.Module)({ + imports: [prisma_module_1.PrismaModule], + controllers: [agent_controller_1.AgentController], + providers: [agent_service_1.AgentService], + exports: [agent_service_1.AgentService] + }) + ], AgentModule); + } +}); + +// dist/catalog-requests/catalog-requests.service.js +var require_catalog_requests_service = __commonJS({ + "dist/catalog-requests/catalog-requests.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CatalogRequestsService = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var STATUS_FLOW = [ + "new", + "approved", + "ready_to_ship", + "delivered", + "returned", + "cancelled" + ]; + var CatalogRequestsService = class CatalogRequestsService { + static { + __name(this, "CatalogRequestsService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async listAdmin(status) { + const rows = await this.prisma.catalogRequest.findMany({ + where: status ? { status } : void 0, + orderBy: { createdAt: "desc" }, + include: { + customer: { + select: { id: true, firstName: true, lastName: true, phone: true } + }, + items: { + include: { + product: { select: { id: true, name: true, code: true, color: true } }, + movements: { orderBy: { movedAt: "desc" }, take: 5 } + } + } + } + }); + return rows.map((r) => this.map(r)); + } + async listMine(customerId) { + const rows = await this.prisma.catalogRequest.findMany({ + where: { customerId }, + orderBy: { createdAt: "desc" }, + include: { + customer: { + select: { id: true, firstName: true, lastName: true, phone: true } + }, + items: { + include: { + product: { select: { id: true, name: true, code: true, color: true } }, + movements: { orderBy: { movedAt: "desc" }, take: 5 } + } + } + } + }); + return rows.map((r) => this.map(r)); + } + async get(id) { + const row = await this.prisma.catalogRequest.findUnique({ + where: { id }, + include: { + customer: { + select: { id: true, firstName: true, lastName: true, phone: true } + }, + items: { + include: { + product: { select: { id: true, name: true, code: true, color: true } }, + movements: { orderBy: { movedAt: "desc" } } + } + } + } + }); + if (!row) + throw new common_12.NotFoundException("\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u06A9\u0627\u0644\u06CC\u062A\u0647 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return this.map(row); + } + async create(customerId, dto) { + const items = (dto.items ?? []).filter((i) => i.productId && i.quantity > 0); + if (!items.length) { + throw new common_12.BadRequestException("\u062D\u062F\u0627\u0642\u0644 \u06CC\u06A9 \u0642\u0644\u0645 \u0628\u0627 \u062A\u0639\u062F\u0627\u062F \u0645\u0639\u062A\u0628\u0631 \u0644\u0627\u0632\u0645 \u0627\u0633\u062A"); + } + const productIds = [...new Set(items.map((i) => i.productId))]; + const products = await this.prisma.product.findMany({ + where: { id: { in: productIds } }, + select: { id: true } + }); + if (products.length !== productIds.length) { + throw new common_12.BadRequestException("\u06CC\u06A9\u06CC \u0627\u0632 \u0645\u062D\u0635\u0648\u0644\u0627\u062A \u0645\u0639\u062A\u0628\u0631 \u0646\u06CC\u0633\u062A"); + } + const row = await this.prisma.catalogRequest.create({ + data: { + customerId, + note: dto.note?.trim() || null, + status: "new", + items: { + create: items.map((i) => ({ + productId: i.productId, + quantity: Math.max(1, Math.floor(i.quantity)), + holderType: "warehouse" + })) + } + }, + include: { + customer: { + select: { id: true, firstName: true, lastName: true, phone: true } + }, + items: { + include: { + product: { select: { id: true, name: true, code: true, color: true } }, + movements: true + } + } + } + }); + return this.map(row); + } + async updateStatus(id, dto) { + await this.ensure(id); + if (!STATUS_FLOW.includes(dto.status)) { + throw new common_12.BadRequestException("\u0648\u0636\u0639\u06CC\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + const row = await this.prisma.catalogRequest.update({ + where: { id }, + data: { status: dto.status }, + include: { + customer: { + select: { id: true, firstName: true, lastName: true, phone: true } + }, + items: { + include: { + product: { select: { id: true, name: true, code: true, color: true } }, + movements: { orderBy: { movedAt: "desc" }, take: 5 } + } + } + } + }); + if (dto.status === "delivered") { + await this.prisma.catalogRequestItem.updateMany({ + where: { requestId: id }, + data: { holderType: "customer" } + }); + } + return this.map(row); + } + async updateItemHolder(itemId, dto) { + const item = await this.prisma.catalogRequestItem.findUnique({ + where: { id: itemId } + }); + if (!item) + throw new common_12.NotFoundException("\u0642\u0644\u0645 \u06A9\u0627\u0644\u06CC\u062A\u0647 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const fromHolder = `${item.holderType}:${item.holderCustomerId ?? "warehouse"}`; + const toHolder = `${dto.holderType}:${dto.holderCustomerId ?? "warehouse"}`; + const updated = await this.prisma.catalogRequestItem.update({ + where: { id: itemId }, + data: { + holderType: dto.holderType, + holderCustomerId: dto.holderCustomerId ?? null + }, + include: { + product: { select: { id: true, name: true, code: true, color: true } }, + movements: { orderBy: { movedAt: "desc" } } + } + }); + await this.prisma.catalogItemMovement.create({ + data: { + itemId, + fromHolder, + toHolder, + note: dto.note?.trim() || null + } + }); + return { + id: updated.id, + productId: updated.productId, + productName: updated.product.name, + productCode: updated.product.code, + quantity: updated.quantity, + holderType: updated.holderType, + holderCustomerId: updated.holderCustomerId + }; + } + async ensure(id) { + const row = await this.prisma.catalogRequest.findUnique({ where: { id } }); + if (!row) + throw new common_12.NotFoundException("\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u06A9\u0627\u0644\u06CC\u062A\u0647 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return row; + } + map(row) { + return { + id: row.id, + customerId: row.customerId, + customerName: `${row.customer.firstName} ${row.customer.lastName}`.trim(), + customerPhone: row.customer.phone, + status: row.status, + note: row.note ?? void 0, + createdAt: row.createdAt.toISOString(), + updatedAt: row.updatedAt.toISOString(), + items: row.items.map((i) => ({ + id: i.id, + productId: i.productId, + productName: i.product.name, + productCode: i.product.code, + color: i.product.color, + quantity: i.quantity, + holderType: i.holderType, + holderCustomerId: i.holderCustomerId, + movements: i.movements.map((m) => ({ + id: m.id, + fromHolder: m.fromHolder, + toHolder: m.toHolder, + note: m.note ?? void 0, + movedAt: m.movedAt.toISOString() + })) + })) + }; + } + }; + exports2.CatalogRequestsService = CatalogRequestsService; + exports2.CatalogRequestsService = CatalogRequestsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], CatalogRequestsService); + } +}); + +// dist/catalog-requests/dto/catalog-request.dto.js +var require_catalog_request_dto = __commonJS({ + "dist/catalog-requests/dto/catalog-request.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateCatalogItemHolderDto = exports2.UpdateCatalogRequestStatusDto = exports2.CreateCatalogRequestDto = exports2.CatalogRequestItemInputDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var client_1 = require_default2(); + var CatalogRequestItemInputDto = class { + static { + __name(this, "CatalogRequestItemInputDto"); + } + productId; + quantity; + }; + exports2.CatalogRequestItemInputDto = CatalogRequestItemInputDto; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CatalogRequestItemInputDto.prototype, "productId", void 0); + __decorate2([ + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(1), + __metadata2("design:type", Number) + ], CatalogRequestItemInputDto.prototype, "quantity", void 0); + var CreateCatalogRequestDto = class { + static { + __name(this, "CreateCatalogRequestDto"); + } + items; + note; + }; + exports2.CreateCatalogRequestDto = CreateCatalogRequestDto; + __decorate2([ + (0, class_validator_1.IsArray)(), + (0, class_validator_1.ArrayMinSize)(1), + (0, class_validator_1.ValidateNested)({ each: true }), + (0, class_transformer_1.Type)(() => CatalogRequestItemInputDto), + __metadata2("design:type", Array) + ], CreateCatalogRequestDto.prototype, "items", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateCatalogRequestDto.prototype, "note", void 0); + var UpdateCatalogRequestStatusDto = class { + static { + __name(this, "UpdateCatalogRequestStatusDto"); + } + status; + }; + exports2.UpdateCatalogRequestStatusDto = UpdateCatalogRequestStatusDto; + __decorate2([ + (0, class_validator_1.IsEnum)(client_1.CatalogRequestStatus), + __metadata2("design:type", String) + ], UpdateCatalogRequestStatusDto.prototype, "status", void 0); + var UpdateCatalogItemHolderDto = class { + static { + __name(this, "UpdateCatalogItemHolderDto"); + } + holderType; + holderCustomerId; + note; + }; + exports2.UpdateCatalogItemHolderDto = UpdateCatalogItemHolderDto; + __decorate2([ + (0, class_validator_1.IsEnum)(client_1.CatalogItemHolderType), + __metadata2("design:type", String) + ], UpdateCatalogItemHolderDto.prototype, "holderType", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateCatalogItemHolderDto.prototype, "holderCustomerId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], UpdateCatalogItemHolderDto.prototype, "note", void 0); + } +}); + +// dist/catalog-requests/catalog-requests.controller.js +var require_catalog_requests_controller = __commonJS({ + "dist/catalog-requests/catalog-requests.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CatalogRequestsController = void 0; + var common_12 = require_common(); + var client_1 = require_default2(); + var catalog_requests_service_1 = require_catalog_requests_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var catalog_request_dto_1 = require_catalog_request_dto(); + var CatalogRequestsController = class CatalogRequestsController { + static { + __name(this, "CatalogRequestsController"); + } + service; + constructor(service) { + this.service = service; + } + adminList(status) { + return this.service.listAdmin(status); + } + adminGet(id) { + return this.service.get(id); + } + adminStatus(id, dto) { + return this.service.updateStatus(id, dto); + } + adminHolder(id, dto) { + return this.service.updateItemHolder(id, dto); + } + mine(user) { + return this.service.listMine(user.id); + } + create(user, dto) { + return this.service.create(user.id, dto); + } + async mineOne(user, id) { + const row = await this.service.get(id); + if (row.customerId !== user.id) + throw new common_12.ForbiddenException(); + return row; + } + }; + exports2.CatalogRequestsController = CatalogRequestsController; + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales", "warehouse"), + (0, common_12.Get)("admin/catalog-requests"), + __param2(0, (0, common_12.Query)("status")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], CatalogRequestsController.prototype, "adminList", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales", "warehouse"), + (0, common_12.Get)("admin/catalog-requests/:id"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], CatalogRequestsController.prototype, "adminGet", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales", "warehouse"), + (0, common_12.Patch)("admin/catalog-requests/:id/status"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, catalog_request_dto_1.UpdateCatalogRequestStatusDto]), + __metadata2("design:returntype", void 0) + ], CatalogRequestsController.prototype, "adminStatus", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales", "warehouse"), + (0, common_12.Patch)("admin/catalog-request-items/:id/holder"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, catalog_request_dto_1.UpdateCatalogItemHolderDto]), + __metadata2("design:returntype", void 0) + ], CatalogRequestsController.prototype, "adminHolder", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Get)("catalog-requests"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], CatalogRequestsController.prototype, "mine", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Post)("catalog-requests"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, catalog_request_dto_1.CreateCatalogRequestDto]), + __metadata2("design:returntype", void 0) + ], CatalogRequestsController.prototype, "create", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Get)("catalog-requests/:id"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", Promise) + ], CatalogRequestsController.prototype, "mineOne", null); + exports2.CatalogRequestsController = CatalogRequestsController = __decorate2([ + (0, common_12.Controller)(), + __metadata2("design:paramtypes", [catalog_requests_service_1.CatalogRequestsService]) + ], CatalogRequestsController); + } +}); + +// dist/catalog-requests/catalog-requests.module.js +var require_catalog_requests_module = __commonJS({ + "dist/catalog-requests/catalog-requests.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CatalogRequestsModule = void 0; + var common_12 = require_common(); + var catalog_requests_controller_1 = require_catalog_requests_controller(); + var catalog_requests_service_1 = require_catalog_requests_service(); + var CatalogRequestsModule = class CatalogRequestsModule { + static { + __name(this, "CatalogRequestsModule"); + } + }; + exports2.CatalogRequestsModule = CatalogRequestsModule; + exports2.CatalogRequestsModule = CatalogRequestsModule = __decorate2([ + (0, common_12.Module)({ + controllers: [catalog_requests_controller_1.CatalogRequestsController], + providers: [catalog_requests_service_1.CatalogRequestsService], + exports: [catalog_requests_service_1.CatalogRequestsService] + }) + ], CatalogRequestsModule); + } +}); + +// dist/brands/brands.service.js +var require_brands_service = __commonJS({ + "dist/brands/brands.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BrandsService = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var BrandsService = class BrandsService { + static { + __name(this, "BrandsService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async list(activeOnly) { + const rows = await this.prisma.brand.findMany({ + where: activeOnly ? { isActive: true } : void 0, + orderBy: [{ displayOrder: "asc" }, { name: "asc" }], + include: { _count: { select: { customers: true } } } + }); + return rows.map((b) => ({ + id: b.id, + name: b.name, + slug: b.slug ?? void 0, + description: b.description ?? void 0, + isActive: b.isActive, + displayOrder: b.displayOrder, + customersCount: b._count.customers, + createdAt: b.createdAt.toISOString(), + updatedAt: b.updatedAt.toISOString() + })); + } + async create(dto) { + const brand = await this.prisma.brand.create({ + data: { + name: dto.name.trim(), + slug: dto.slug?.trim() || null, + description: dto.description?.trim() || null, + displayOrder: dto.displayOrder ?? 0, + isActive: dto.isActive ?? true + } + }); + return this.map(brand); + } + async update(id, dto) { + await this.ensure(id); + const brand = await this.prisma.brand.update({ + where: { id }, + data: { + name: dto.name?.trim(), + slug: dto.slug === void 0 ? void 0 : dto.slug?.trim() || null, + description: dto.description === void 0 ? void 0 : dto.description?.trim() || null, + displayOrder: dto.displayOrder, + isActive: dto.isActive + } + }); + return this.map(brand); + } + async setCustomerBrands(customerId, brandIds) { + const customer = await this.prisma.customer.findUnique({ + where: { id: customerId } + }); + if (!customer) + throw new common_12.NotFoundException("\u0645\u0634\u062A\u0631\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + await this.prisma.customerBrand.deleteMany({ where: { customerId } }); + if (brandIds.length) { + await this.prisma.customerBrand.createMany({ + data: brandIds.map((brandId) => ({ customerId, brandId })), + skipDuplicates: true + }); + } + return this.listCustomerBrands(customerId); + } + async listCustomerBrands(customerId) { + const rows = await this.prisma.customerBrand.findMany({ + where: { customerId }, + include: { brand: true } + }); + return rows.map((r) => this.map(r.brand)); + } + async ensure(id) { + const row = await this.prisma.brand.findUnique({ where: { id } }); + if (!row) + throw new common_12.NotFoundException("\u0628\u0631\u0646\u062F \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return row; + } + map(b) { + return { + id: b.id, + name: b.name, + slug: b.slug ?? void 0, + description: b.description ?? void 0, + isActive: b.isActive, + displayOrder: b.displayOrder, + createdAt: b.createdAt.toISOString(), + updatedAt: b.updatedAt.toISOString() + }; + } + }; + exports2.BrandsService = BrandsService; + exports2.BrandsService = BrandsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], BrandsService); + } +}); + +// dist/brands/dto/brand.dto.js +var require_brand_dto = __commonJS({ + "dist/brands/dto/brand.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SetCustomerBrandsDto = exports2.UpdateBrandDto = exports2.CreateBrandDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var CreateBrandDto = class { + static { + __name(this, "CreateBrandDto"); + } + name; + slug; + description; + displayOrder; + isActive; + }; + exports2.CreateBrandDto = CreateBrandDto; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateBrandDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateBrandDto.prototype, "slug", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateBrandDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], CreateBrandDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateBrandDto.prototype, "isActive", void 0); + var UpdateBrandDto = class { + static { + __name(this, "UpdateBrandDto"); + } + name; + slug; + description; + displayOrder; + isActive; + }; + exports2.UpdateBrandDto = UpdateBrandDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateBrandDto.prototype, "name", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateBrandDto.prototype, "slug", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateBrandDto.prototype, "description", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], UpdateBrandDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateBrandDto.prototype, "isActive", void 0); + var SetCustomerBrandsDto = class { + static { + __name(this, "SetCustomerBrandsDto"); + } + brands; + }; + exports2.SetCustomerBrandsDto = SetCustomerBrandsDto; + } +}); + +// dist/brands/brands.controller.js +var require_brands_controller = __commonJS({ + "dist/brands/brands.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BrandsController = void 0; + var common_12 = require_common(); + var brands_service_1 = require_brands_service(); + var auth_decorators_1 = require_auth_decorators(); + var brand_dto_1 = require_brand_dto(); + var class_validator_1 = require_cjs(); + var SetBrandsBody = class { + static { + __name(this, "SetBrandsBody"); + } + brandIds; + }; + __decorate2([ + (0, class_validator_1.IsArray)(), + (0, class_validator_1.IsString)({ each: true }), + __metadata2("design:type", Array) + ], SetBrandsBody.prototype, "brandIds", void 0); + var BrandsController = class BrandsController { + static { + __name(this, "BrandsController"); + } + brandsService; + constructor(brandsService) { + this.brandsService = brandsService; + } + list(activeOnly) { + return this.brandsService.list(activeOnly === "true"); + } + create(dto) { + return this.brandsService.create(dto); + } + update(id, dto) { + return this.brandsService.update(id, dto); + } + customerBrands(customerId) { + return this.brandsService.listCustomerBrands(customerId); + } + setCustomerBrands(customerId, body) { + return this.brandsService.setCustomerBrands(customerId, body.brandIds ?? []); + } + }; + exports2.BrandsController = BrandsController; + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Get)("admin/brands"), + __param2(0, (0, common_12.Query)("activeOnly")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], BrandsController.prototype, "list", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Post)("admin/brands"), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [brand_dto_1.CreateBrandDto]), + __metadata2("design:returntype", void 0) + ], BrandsController.prototype, "create", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)("admin/brands/:id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, brand_dto_1.UpdateBrandDto]), + __metadata2("design:returntype", void 0) + ], BrandsController.prototype, "update", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Get)("admin/customers/:customerId/brands"), + __param2(0, (0, common_12.Param)("customerId")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], BrandsController.prototype, "customerBrands", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Post)("admin/customers/:customerId/brands"), + __param2(0, (0, common_12.Param)("customerId")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, SetBrandsBody]), + __metadata2("design:returntype", void 0) + ], BrandsController.prototype, "setCustomerBrands", null); + exports2.BrandsController = BrandsController = __decorate2([ + (0, common_12.Controller)(), + __metadata2("design:paramtypes", [brands_service_1.BrandsService]) + ], BrandsController); + } +}); + +// dist/brands/brands.module.js +var require_brands_module = __commonJS({ + "dist/brands/brands.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BrandsModule = void 0; + var common_12 = require_common(); + var brands_controller_1 = require_brands_controller(); + var brands_service_1 = require_brands_service(); + var BrandsModule = class BrandsModule { + static { + __name(this, "BrandsModule"); + } + }; + exports2.BrandsModule = BrandsModule; + exports2.BrandsModule = BrandsModule = __decorate2([ + (0, common_12.Module)({ + controllers: [brands_controller_1.BrandsController], + providers: [brands_service_1.BrandsService], + exports: [brands_service_1.BrandsService] + }) + ], BrandsModule); + } +}); + +// dist/levels/levels.service.js +var require_levels_service = __commonJS({ + "dist/levels/levels.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.LevelsService = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var LevelsService = class LevelsService { + static { + __name(this, "LevelsService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async list() { + const rows = await this.prisma.customerLevelDef.findMany({ + orderBy: [{ sortOrder: "asc" }, { label: "asc" }], + include: { benefits: true, _count: { select: { customers: true } } } + }); + return rows.map((r) => this.map(r)); + } + async create(dto) { + const row = await this.prisma.customerLevelDef.create({ + data: { + code: dto.code.trim(), + label: dto.label.trim(), + sortOrder: dto.sortOrder ?? 0, + criteriaJson: dto.criteriaJson === void 0 ? void 0 : dto.criteriaJson, + isActive: dto.isActive ?? true, + benefits: dto.benefits?.length ? { + create: dto.benefits.map((b) => ({ + title: b.title.trim(), + description: b.description?.trim() || null + })) + } : void 0 + }, + include: { benefits: true, _count: { select: { customers: true } } } + }); + return this.map(row); + } + async update(id, dto) { + await this.ensure(id); + if (dto.benefits) { + await this.prisma.levelBenefit.deleteMany({ where: { levelId: id } }); + } + const row = await this.prisma.customerLevelDef.update({ + where: { id }, + data: { + code: dto.code?.trim(), + label: dto.label?.trim(), + sortOrder: dto.sortOrder, + criteriaJson: dto.criteriaJson === void 0 ? void 0 : dto.criteriaJson, + isActive: dto.isActive, + benefits: dto.benefits ? { + create: dto.benefits.map((b) => ({ + title: b.title.trim(), + description: b.description?.trim() || null + })) + } : void 0 + }, + include: { benefits: true, _count: { select: { customers: true } } } + }); + return this.map(row); + } + async ensure(id) { + const row = await this.prisma.customerLevelDef.findUnique({ where: { id } }); + if (!row) + throw new common_12.NotFoundException("\u0633\u0637\u062D \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return row; + } + map(r) { + return { + id: r.id, + code: r.code, + label: r.label, + sortOrder: r.sortOrder, + criteriaJson: r.criteriaJson ?? void 0, + isActive: r.isActive, + customersCount: r._count?.customers ?? 0, + benefits: r.benefits.map((b) => ({ + id: b.id, + title: b.title, + description: b.description ?? void 0 + })), + createdAt: r.createdAt.toISOString(), + updatedAt: r.updatedAt.toISOString() + }; + } + }; + exports2.LevelsService = LevelsService; + exports2.LevelsService = LevelsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], LevelsService); + } +}); + +// dist/levels/dto/level.dto.js +var require_level_dto = __commonJS({ + "dist/levels/dto/level.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateLevelDto = exports2.CreateLevelDto = exports2.LevelBenefitInputDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var LevelBenefitInputDto = class { + static { + __name(this, "LevelBenefitInputDto"); + } + title; + description; + }; + exports2.LevelBenefitInputDto = LevelBenefitInputDto; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], LevelBenefitInputDto.prototype, "title", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], LevelBenefitInputDto.prototype, "description", void 0); + var CreateLevelDto = class { + static { + __name(this, "CreateLevelDto"); + } + code; + label; + sortOrder; + criteriaJson; + isActive; + benefits; + }; + exports2.CreateLevelDto = CreateLevelDto; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateLevelDto.prototype, "code", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateLevelDto.prototype, "label", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], CreateLevelDto.prototype, "sortOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + __metadata2("design:type", Object) + ], CreateLevelDto.prototype, "criteriaJson", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateLevelDto.prototype, "isActive", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsArray)(), + (0, class_validator_1.ValidateNested)({ each: true }), + (0, class_transformer_1.Type)(() => LevelBenefitInputDto), + __metadata2("design:type", Array) + ], CreateLevelDto.prototype, "benefits", void 0); + var UpdateLevelDto = class { + static { + __name(this, "UpdateLevelDto"); + } + code; + label; + sortOrder; + criteriaJson; + isActive; + benefits; + }; + exports2.UpdateLevelDto = UpdateLevelDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateLevelDto.prototype, "code", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], UpdateLevelDto.prototype, "label", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], UpdateLevelDto.prototype, "sortOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + __metadata2("design:type", Object) + ], UpdateLevelDto.prototype, "criteriaJson", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateLevelDto.prototype, "isActive", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsArray)(), + (0, class_validator_1.ValidateNested)({ each: true }), + (0, class_transformer_1.Type)(() => LevelBenefitInputDto), + __metadata2("design:type", Array) + ], UpdateLevelDto.prototype, "benefits", void 0); + } +}); + +// dist/levels/levels.controller.js +var require_levels_controller = __commonJS({ + "dist/levels/levels.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.LevelsController = void 0; + var common_12 = require_common(); + var levels_service_1 = require_levels_service(); + var auth_decorators_1 = require_auth_decorators(); + var level_dto_1 = require_level_dto(); + var LevelsController = class LevelsController { + static { + __name(this, "LevelsController"); + } + levelsService; + constructor(levelsService) { + this.levelsService = levelsService; + } + list() { + return this.levelsService.list(); + } + create(dto) { + return this.levelsService.create(dto); + } + update(id, dto) { + return this.levelsService.update(id, dto); + } + }; + exports2.LevelsController = LevelsController; + __decorate2([ + (0, common_12.Get)(), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", []), + __metadata2("design:returntype", void 0) + ], LevelsController.prototype, "list", null); + __decorate2([ + (0, common_12.Post)(), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [level_dto_1.CreateLevelDto]), + __metadata2("design:returntype", void 0) + ], LevelsController.prototype, "create", null); + __decorate2([ + (0, common_12.Patch)(":id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, level_dto_1.UpdateLevelDto]), + __metadata2("design:returntype", void 0) + ], LevelsController.prototype, "update", null); + exports2.LevelsController = LevelsController = __decorate2([ + (0, common_12.Controller)("admin/levels"), + (0, auth_decorators_1.AuthType)("admin"), + __metadata2("design:paramtypes", [levels_service_1.LevelsService]) + ], LevelsController); + } +}); + +// dist/levels/levels.module.js +var require_levels_module = __commonJS({ + "dist/levels/levels.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.LevelsModule = void 0; + var common_12 = require_common(); + var levels_controller_1 = require_levels_controller(); + var levels_service_1 = require_levels_service(); + var LevelsModule = class LevelsModule { + static { + __name(this, "LevelsModule"); + } + }; + exports2.LevelsModule = LevelsModule; + exports2.LevelsModule = LevelsModule = __decorate2([ + (0, common_12.Module)({ + controllers: [levels_controller_1.LevelsController], + providers: [levels_service_1.LevelsService], + exports: [levels_service_1.LevelsService] + }) + ], LevelsModule); + } +}); + +// dist/suggestions/suggestions.service.js +var require_suggestions_service = __commonJS({ + "dist/suggestions/suggestions.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SuggestionsService = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var SuggestionsService = class SuggestionsService { + static { + __name(this, "SuggestionsService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async listAdmin(customerId) { + const rows = await this.prisma.productSuggestion.findMany({ + where: { + ...customerId ? { customerId } : {} + }, + orderBy: { createdAt: "desc" }, + include: { + customer: { select: { firstName: true, lastName: true, phone: true } }, + product: { select: { name: true, code: true, color: true } } + } + }); + return rows.map((r) => this.map(r)); + } + async listForCustomer(customerId) { + const rows = await this.prisma.productSuggestion.findMany({ + where: { customerId, isActive: true }, + orderBy: { createdAt: "desc" }, + include: { + customer: { select: { firstName: true, lastName: true, phone: true } }, + product: { select: { name: true, code: true, color: true } } + } + }); + return rows.map((r) => this.map(r)); + } + async create(input) { + await this.ensureCustomer(input.customerId); + await this.ensureProduct(input.productId); + const row = await this.prisma.productSuggestion.create({ + data: { + customerId: input.customerId, + productId: input.productId, + note: input.note?.trim() || null, + createdByAdminId: input.adminId, + isActive: true + }, + include: { + customer: { select: { firstName: true, lastName: true, phone: true } }, + product: { select: { name: true, code: true, color: true } } + } + }); + return this.map(row); + } + async setActive(id, isActive) { + const existing = await this.prisma.productSuggestion.findUnique({ + where: { id } + }); + if (!existing) + throw new common_12.NotFoundException("\u067E\u06CC\u0634\u0646\u0647\u0627\u062F \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const row = await this.prisma.productSuggestion.update({ + where: { id }, + data: { isActive }, + include: { + customer: { select: { firstName: true, lastName: true, phone: true } }, + product: { select: { name: true, code: true, color: true } } + } + }); + return this.map(row); + } + async ensureCustomer(id) { + const c = await this.prisma.customer.findUnique({ where: { id } }); + if (!c) + throw new common_12.NotFoundException("\u0645\u0634\u062A\u0631\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + } + async ensureProduct(id) { + const p = await this.prisma.product.findUnique({ where: { id } }); + if (!p) + throw new common_12.NotFoundException("\u0645\u062D\u0635\u0648\u0644 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + } + map(r) { + return { + id: r.id, + customerId: r.customerId, + customerName: `${r.customer.firstName} ${r.customer.lastName}`.trim(), + customerPhone: r.customer.phone, + productId: r.productId, + productName: r.product.name, + productCode: r.product.code, + color: r.product.color, + note: r.note ?? void 0, + isActive: r.isActive, + createdAt: r.createdAt.toISOString() + }; + } + }; + exports2.SuggestionsService = SuggestionsService; + exports2.SuggestionsService = SuggestionsService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], SuggestionsService); + } +}); + +// dist/suggestions/suggestions.controller.js +var require_suggestions_controller = __commonJS({ + "dist/suggestions/suggestions.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SuggestionsController = void 0; + var common_12 = require_common(); + var class_validator_1 = require_cjs(); + var suggestions_service_1 = require_suggestions_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var CreateSuggestionDto = class { + static { + __name(this, "CreateSuggestionDto"); + } + customerId; + productId; + note; + }; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateSuggestionDto.prototype, "customerId", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], CreateSuggestionDto.prototype, "productId", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", String) + ], CreateSuggestionDto.prototype, "note", void 0); + var SetActiveDto = class { + static { + __name(this, "SetActiveDto"); + } + isActive; + }; + __decorate2([ + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], SetActiveDto.prototype, "isActive", void 0); + var SuggestionsController = class SuggestionsController { + static { + __name(this, "SuggestionsController"); + } + suggestionsService; + constructor(suggestionsService) { + this.suggestionsService = suggestionsService; + } + list(customerId) { + return this.suggestionsService.listAdmin(customerId); + } + create(user, dto) { + return this.suggestionsService.create({ + ...dto, + adminId: user.id + }); + } + setActive(id, dto) { + return this.suggestionsService.setActive(id, dto.isActive); + } + mine(user) { + return this.suggestionsService.listForCustomer(user.id); + } + }; + exports2.SuggestionsController = SuggestionsController; + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Get)("admin/suggestions"), + __param2(0, (0, common_12.Query)("customerId")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], SuggestionsController.prototype, "list", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Post)("admin/suggestions"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, CreateSuggestionDto]), + __metadata2("design:returntype", void 0) + ], SuggestionsController.prototype, "create", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)("admin/suggestions/:id/active"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, SetActiveDto]), + __metadata2("design:returntype", void 0) + ], SuggestionsController.prototype, "setActive", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Get)("suggestions/me"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object]), + __metadata2("design:returntype", void 0) + ], SuggestionsController.prototype, "mine", null); + exports2.SuggestionsController = SuggestionsController = __decorate2([ + (0, common_12.Controller)(), + __metadata2("design:paramtypes", [suggestions_service_1.SuggestionsService]) + ], SuggestionsController); + } +}); + +// dist/suggestions/suggestions.module.js +var require_suggestions_module = __commonJS({ + "dist/suggestions/suggestions.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SuggestionsModule = void 0; + var common_12 = require_common(); + var suggestions_controller_1 = require_suggestions_controller(); + var suggestions_service_1 = require_suggestions_service(); + var SuggestionsModule = class SuggestionsModule { + static { + __name(this, "SuggestionsModule"); + } + }; + exports2.SuggestionsModule = SuggestionsModule; + exports2.SuggestionsModule = SuggestionsModule = __decorate2([ + (0, common_12.Module)({ + controllers: [suggestions_controller_1.SuggestionsController], + providers: [suggestions_service_1.SuggestionsService], + exports: [suggestions_service_1.SuggestionsService] + }) + ], SuggestionsModule); + } +}); + +// dist/stock-notify/stock-notify.service.js +var require_stock_notify_service = __commonJS({ + "dist/stock-notify/stock-notify.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.StockNotifyService = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var StockNotifyService = class StockNotifyService { + static { + __name(this, "StockNotifyService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async listAdmin(activeOnly = true) { + const rows = await this.prisma.stockNotifyRequest.findMany({ + where: activeOnly ? { active: true } : void 0, + orderBy: { createdAt: "desc" }, + include: { + customer: { select: { firstName: true, lastName: true, phone: true } }, + product: { select: { name: true, code: true, color: true, stock: true } } + } + }); + return rows.map((r) => this.map(r)); + } + async subscribe(customerId, productId) { + const product = await this.prisma.product.findUnique({ where: { id: productId } }); + if (!product) + throw new common_12.NotFoundException("\u0645\u062D\u0635\u0648\u0644 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const row = await this.prisma.stockNotifyRequest.upsert({ + where: { customerId_productId: { customerId, productId } }, + create: { customerId, productId, active: true }, + update: { active: true, notifiedAt: null }, + include: { + customer: { select: { firstName: true, lastName: true, phone: true } }, + product: { select: { name: true, code: true, color: true, stock: true } } + } + }); + return this.map(row); + } + async unsubscribe(customerId, productId) { + await this.prisma.stockNotifyRequest.updateMany({ + where: { customerId, productId }, + data: { active: false } + }); + return { productId, active: false }; + } + async markNotified(id) { + const existing = await this.prisma.stockNotifyRequest.findUnique({ + where: { id } + }); + if (!existing) + throw new common_12.NotFoundException("\u062F\u0631\u062E\u0648\u0627\u0633\u062A \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + const row = await this.prisma.stockNotifyRequest.update({ + where: { id }, + data: { notifiedAt: /* @__PURE__ */ new Date(), active: false }, + include: { + customer: { select: { firstName: true, lastName: true, phone: true } }, + product: { select: { name: true, code: true, color: true, stock: true } } + } + }); + await this.prisma.customerNotification.create({ + data: { + customerId: row.customerId, + event: "stock_available", + title: "\u0645\u0648\u062C\u0648\u062F\u06CC \u0645\u062D\u0635\u0648\u0644", + body: `\u0645\u062D\u0635\u0648\u0644 ${row.product.name} \u062F\u0648\u0628\u0627\u0631\u0647 \u0645\u0648\u062C\u0648\u062F \u0634\u062F.`, + tone: "success", + link: `/product?id=${row.productId}` + } + }); + return this.map(row); + } + map(r) { + return { + id: r.id, + customerId: r.customerId, + customerName: `${r.customer.firstName} ${r.customer.lastName}`.trim(), + customerPhone: r.customer.phone, + productId: r.productId, + productName: r.product.name, + productCode: r.product.code, + color: r.product.color, + stock: r.product.stock, + active: r.active, + createdAt: r.createdAt.toISOString(), + notifiedAt: r.notifiedAt?.toISOString() + }; + } + }; + exports2.StockNotifyService = StockNotifyService; + exports2.StockNotifyService = StockNotifyService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], StockNotifyService); + } +}); + +// dist/stock-notify/stock-notify.controller.js +var require_stock_notify_controller = __commonJS({ + "dist/stock-notify/stock-notify.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.StockNotifyController = void 0; + var common_12 = require_common(); + var class_validator_1 = require_cjs(); + var stock_notify_service_1 = require_stock_notify_service(); + var auth_decorators_1 = require_auth_decorators(); + var current_user_decorator_1 = require_current_user_decorator(); + var SubscribeDto = class { + static { + __name(this, "SubscribeDto"); + } + productId; + }; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(1), + __metadata2("design:type", String) + ], SubscribeDto.prototype, "productId", void 0); + var StockNotifyController = class StockNotifyController { + static { + __name(this, "StockNotifyController"); + } + stockNotifyService; + constructor(stockNotifyService) { + this.stockNotifyService = stockNotifyService; + } + list(activeOnly) { + return this.stockNotifyService.listAdmin(activeOnly !== "false"); + } + notify(id) { + return this.stockNotifyService.markNotified(id); + } + subscribe(user, dto) { + return this.stockNotifyService.subscribe(user.id, dto.productId); + } + unsubscribe(user, productId) { + return this.stockNotifyService.unsubscribe(user.id, productId); + } + }; + exports2.StockNotifyController = StockNotifyController; + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Get)("admin/stock-alerts"), + __param2(0, (0, common_12.Query)("activeOnly")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], StockNotifyController.prototype, "list", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, common_12.Patch)("admin/stock-alerts/:id/notify"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], StockNotifyController.prototype, "notify", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Post)("stock-alerts"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, SubscribeDto]), + __metadata2("design:returntype", void 0) + ], StockNotifyController.prototype, "subscribe", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("customer"), + (0, common_12.Post)("stock-alerts/:productId/cancel"), + __param2(0, (0, current_user_decorator_1.CurrentUser)()), + __param2(1, (0, common_12.Param)("productId")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [Object, String]), + __metadata2("design:returntype", void 0) + ], StockNotifyController.prototype, "unsubscribe", null); + exports2.StockNotifyController = StockNotifyController = __decorate2([ + (0, common_12.Controller)(), + __metadata2("design:paramtypes", [stock_notify_service_1.StockNotifyService]) + ], StockNotifyController); + } +}); + +// dist/stock-notify/stock-notify.module.js +var require_stock_notify_module = __commonJS({ + "dist/stock-notify/stock-notify.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.StockNotifyModule = void 0; + var common_12 = require_common(); + var stock_notify_controller_1 = require_stock_notify_controller(); + var stock_notify_service_1 = require_stock_notify_service(); + var StockNotifyModule = class StockNotifyModule { + static { + __name(this, "StockNotifyModule"); + } + }; + exports2.StockNotifyModule = StockNotifyModule; + exports2.StockNotifyModule = StockNotifyModule = __decorate2([ + (0, common_12.Module)({ + controllers: [stock_notify_controller_1.StockNotifyController], + providers: [stock_notify_service_1.StockNotifyService], + exports: [stock_notify_service_1.StockNotifyService] + }) + ], StockNotifyModule); + } +}); + +// dist/banners/banners.service.js +var require_banners_service = __commonJS({ + "dist/banners/banners.service.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BannersService = void 0; + var common_12 = require_common(); + var prisma_service_1 = require_prisma_service(); + var ALLOWED_SLOTS = /* @__PURE__ */ new Set(["home_hero", "products_hero", "categories_hero"]); + var BannersService = class BannersService { + static { + __name(this, "BannersService"); + } + prisma; + constructor(prisma) { + this.prisma = prisma; + } + async list(slot, activeOnly = false) { + const rows = await this.prisma.appBanner.findMany({ + where: { + ...slot ? { slot } : {}, + ...activeOnly ? { isActive: true } : {} + }, + orderBy: [{ slot: "asc" }, { displayOrder: "asc" }, { createdAt: "desc" }] + }); + return rows.map((row) => this.map(row)); + } + async create(dto) { + const slot = this.normalizeSlot(dto.slot); + const banner = await this.prisma.appBanner.create({ + data: { + slot, + title: dto.title.trim(), + subtitle: dto.subtitle?.trim() || null, + ctaLabel: dto.ctaLabel?.trim() || null, + ctaLink: dto.ctaLink?.trim() || null, + imageUrl: this.normalizeImage(dto.imageUrl), + displayOrder: dto.displayOrder ?? 0, + isActive: dto.isActive ?? true + } + }); + return this.map(banner); + } + async update(id, dto) { + await this.ensure(id); + const banner = await this.prisma.appBanner.update({ + where: { id }, + data: { + slot: dto.slot === void 0 ? void 0 : this.normalizeSlot(dto.slot), + title: dto.title?.trim(), + subtitle: dto.subtitle === void 0 ? void 0 : dto.subtitle?.trim() || null, + ctaLabel: dto.ctaLabel === void 0 ? void 0 : dto.ctaLabel?.trim() || null, + ctaLink: dto.ctaLink === void 0 ? void 0 : dto.ctaLink?.trim() || null, + imageUrl: dto.imageUrl === void 0 ? void 0 : this.normalizeImage(dto.imageUrl), + displayOrder: dto.displayOrder, + isActive: dto.isActive + } + }); + return this.map(banner); + } + async remove(id) { + await this.ensure(id); + await this.prisma.appBanner.delete({ where: { id } }); + return { ok: true }; + } + async ensure(id) { + const row = await this.prisma.appBanner.findUnique({ where: { id } }); + if (!row) + throw new common_12.NotFoundException("\u0628\u0646\u0631 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F"); + return row; + } + normalizeSlot(slot) { + const value = slot.trim(); + if (!ALLOWED_SLOTS.has(value)) { + throw new common_12.BadRequestException("\u0628\u062E\u0634 \u0628\u0646\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + return value; + } + normalizeImage(value) { + if (value == null || value === "") + return null; + const image = value.trim(); + if (!image.startsWith("data:image/") && !image.startsWith("https://") && !image.startsWith("http://")) { + throw new common_12.BadRequestException("\u0641\u0631\u0645\u062A \u062A\u0635\u0648\u06CC\u0631 \u0628\u0646\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"); + } + if (image.startsWith("data:image/") && image.length > 16e5) { + throw new common_12.BadRequestException("\u062D\u062C\u0645 \u062A\u0635\u0648\u06CC\u0631 \u0628\u0646\u0631 \u062E\u06CC\u0644\u06CC \u0632\u06CC\u0627\u062F \u0627\u0633\u062A"); + } + return image; + } + map(row) { + return { + id: row.id, + slot: row.slot, + title: row.title, + subtitle: row.subtitle ?? "", + ctaLabel: row.ctaLabel ?? "", + ctaLink: row.ctaLink ?? "", + imageUrl: row.imageUrl ?? "", + displayOrder: row.displayOrder, + isActive: row.isActive, + createdAt: row.createdAt.toISOString(), + updatedAt: row.updatedAt.toISOString() + }; + } + }; + exports2.BannersService = BannersService; + exports2.BannersService = BannersService = __decorate2([ + (0, common_12.Injectable)(), + __metadata2("design:paramtypes", [prisma_service_1.PrismaService]) + ], BannersService); + } +}); + +// dist/banners/dto/banner.dto.js +var require_banner_dto = __commonJS({ + "dist/banners/dto/banner.dto.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UpdateBannerDto = exports2.CreateBannerDto = void 0; + var class_validator_1 = require_cjs(); + var class_transformer_1 = require_cjs2(); + var CreateBannerDto = class { + static { + __name(this, "CreateBannerDto"); + } + slot; + title; + subtitle; + ctaLabel; + ctaLink; + imageUrl; + displayOrder; + isActive; + }; + exports2.CreateBannerDto = CreateBannerDto; + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(2), + __metadata2("design:type", String) + ], CreateBannerDto.prototype, "slot", void 0); + __decorate2([ + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(2), + __metadata2("design:type", String) + ], CreateBannerDto.prototype, "title", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateBannerDto.prototype, "subtitle", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateBannerDto.prototype, "ctaLabel", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateBannerDto.prototype, "ctaLink", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], CreateBannerDto.prototype, "imageUrl", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], CreateBannerDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], CreateBannerDto.prototype, "isActive", void 0); + var UpdateBannerDto = class { + static { + __name(this, "UpdateBannerDto"); + } + slot; + title; + subtitle; + ctaLabel; + ctaLink; + imageUrl; + displayOrder; + isActive; + }; + exports2.UpdateBannerDto = UpdateBannerDto; + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(2), + __metadata2("design:type", String) + ], UpdateBannerDto.prototype, "slot", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + (0, class_validator_1.MinLength)(2), + __metadata2("design:type", String) + ], UpdateBannerDto.prototype, "title", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateBannerDto.prototype, "subtitle", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateBannerDto.prototype, "ctaLabel", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateBannerDto.prototype, "ctaLink", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsString)(), + __metadata2("design:type", Object) + ], UpdateBannerDto.prototype, "imageUrl", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_transformer_1.Type)(() => Number), + (0, class_validator_1.IsInt)(), + (0, class_validator_1.Min)(0), + __metadata2("design:type", Number) + ], UpdateBannerDto.prototype, "displayOrder", void 0); + __decorate2([ + (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsBoolean)(), + __metadata2("design:type", Boolean) + ], UpdateBannerDto.prototype, "isActive", void 0); + } +}); + +// dist/banners/banners.controller.js +var require_banners_controller = __commonJS({ + "dist/banners/banners.controller.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata2 = exports2 && exports2.__metadata || function(k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var __param2 = exports2 && exports2.__param || function(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BannersController = void 0; + var common_12 = require_common(); + var auth_decorators_1 = require_auth_decorators(); + var banners_service_1 = require_banners_service(); + var banner_dto_1 = require_banner_dto(); + var BannersController = class BannersController { + static { + __name(this, "BannersController"); + } + bannersService; + constructor(bannersService) { + this.bannersService = bannersService; + } + publicList(slot) { + return this.bannersService.list(slot, true); + } + adminList(slot) { + return this.bannersService.list(slot); + } + create(dto) { + return this.bannersService.create(dto); + } + update(id, dto) { + return this.bannersService.update(id, dto); + } + remove(id) { + return this.bannersService.remove(id); + } + }; + exports2.BannersController = BannersController; + __decorate2([ + (0, auth_decorators_1.AuthType)("any"), + (0, common_12.Get)("banners"), + __param2(0, (0, common_12.Query)("slot")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], BannersController.prototype, "publicList", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales"), + (0, common_12.Get)("admin/banners"), + __param2(0, (0, common_12.Query)("slot")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], BannersController.prototype, "adminList", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales"), + (0, common_12.Post)("admin/banners"), + __param2(0, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [banner_dto_1.CreateBannerDto]), + __metadata2("design:returntype", void 0) + ], BannersController.prototype, "create", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales"), + (0, common_12.Patch)("admin/banners/:id"), + __param2(0, (0, common_12.Param)("id")), + __param2(1, (0, common_12.Body)()), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String, banner_dto_1.UpdateBannerDto]), + __metadata2("design:returntype", void 0) + ], BannersController.prototype, "update", null); + __decorate2([ + (0, auth_decorators_1.AuthType)("admin"), + (0, auth_decorators_1.Roles)("admin", "sales"), + (0, common_12.Delete)("admin/banners/:id"), + __param2(0, (0, common_12.Param)("id")), + __metadata2("design:type", Function), + __metadata2("design:paramtypes", [String]), + __metadata2("design:returntype", void 0) + ], BannersController.prototype, "remove", null); + exports2.BannersController = BannersController = __decorate2([ + (0, common_12.Controller)(), + __metadata2("design:paramtypes", [banners_service_1.BannersService]) + ], BannersController); + } +}); + +// dist/banners/banners.module.js +var require_banners_module = __commonJS({ + "dist/banners/banners.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BannersModule = void 0; + var common_12 = require_common(); + var banners_controller_1 = require_banners_controller(); + var banners_service_1 = require_banners_service(); + var BannersModule = class BannersModule { + static { + __name(this, "BannersModule"); + } + }; + exports2.BannersModule = BannersModule; + exports2.BannersModule = BannersModule = __decorate2([ + (0, common_12.Module)({ + controllers: [banners_controller_1.BannersController], + providers: [banners_service_1.BannersService], + exports: [banners_service_1.BannersService] + }) + ], BannersModule); + } +}); + +// dist/app.module.js +var require_app_module = __commonJS({ + "dist/app.module.js"(exports2) { + "use strict"; + var __decorate2 = exports2 && exports2.__decorate || function(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.AppModule = void 0; + var common_12 = require_common(); + var core_12 = require_core3(); + var config_1 = require_config2(); + var schedule_1 = require_schedule(); + var prisma_module_1 = require_prisma_module(); + var auth_module_1 = require_auth_module(); + var jwt_auth_guard_1 = require_jwt_auth_guard(); + var companies_module_1 = require_companies_module(); + var catalogs_module_1 = require_catalogs_module(); + var products_module_1 = require_products_module(); + var customers_module_1 = require_customers_module(); + var admin_users_module_1 = require_admin_users_module(); + var orders_module_1 = require_orders_module(); + var checks_module_1 = require_checks_module(); + var cash_payments_module_1 = require_cash_payments_module(); + var shipments_module_1 = require_shipments_module(); + var dashboard_module_1 = require_dashboard_module(); + var settings_module_1 = require_settings_module(); + var carts_module_1 = require_carts_module(); + var notifications_module_1 = require_notifications_module(); + var agent_module_1 = require_agent_module(); + var catalog_requests_module_1 = require_catalog_requests_module(); + var brands_module_1 = require_brands_module(); + var levels_module_1 = require_levels_module(); + var suggestions_module_1 = require_suggestions_module(); + var stock_notify_module_1 = require_stock_notify_module(); + var banners_module_1 = require_banners_module(); + var AppModule = class AppModule { + static { + __name(this, "AppModule"); + } + }; + exports2.AppModule = AppModule; + exports2.AppModule = AppModule = __decorate2([ + (0, common_12.Module)({ + imports: [ + config_1.ConfigModule.forRoot({ isGlobal: true }), + schedule_1.ScheduleModule.forRoot(), + prisma_module_1.PrismaModule, + auth_module_1.AuthModule, + companies_module_1.CompaniesModule, + catalogs_module_1.CatalogsModule, + products_module_1.ProductsModule, + customers_module_1.CustomersModule, + admin_users_module_1.AdminUsersModule, + orders_module_1.OrdersModule, + checks_module_1.ChecksModule, + cash_payments_module_1.CashPaymentsModule, + shipments_module_1.ShipmentsModule, + dashboard_module_1.DashboardModule, + settings_module_1.SettingsModule, + carts_module_1.CartsModule, + notifications_module_1.NotificationsModule, + agent_module_1.AgentModule, + catalog_requests_module_1.CatalogRequestsModule, + brands_module_1.BrandsModule, + levels_module_1.LevelsModule, + suggestions_module_1.SuggestionsModule, + stock_notify_module_1.StockNotifyModule, + banners_module_1.BannersModule + ], + providers: [ + { + provide: core_12.APP_GUARD, + useClass: jwt_auth_guard_1.JwtAuthGuard + } + ] + }) + ], AppModule); + } +}); + +// dist/apply-migrations.js +var require_apply_migrations = __commonJS({ + "dist/apply-migrations.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.applyPendingMigrations = applyPendingMigrations; + var node_crypto_1 = require("node:crypto"); + var node_fs_1 = require("node:fs"); + var node_path_1 = __importDefault2(require("node:path")); + var client_1 = require_default2(); + function migrationsDir() { + return node_path_1.default.join(process.cwd(), "runtime", "migrations"); + } + __name(migrationsDir, "migrationsDir"); + function splitStatements(sql) { + return sql.split(/;\s*(?:\r?\n|$)/).map((part) => part.trim()).filter((part) => part.length > 0 && !part.startsWith("--")); + } + __name(splitStatements, "splitStatements"); + async function waitForDb(prisma) { + let lastError; + for (let i = 1; i <= 30; i++) { + try { + await prisma.$connect(); + await prisma.$queryRaw`SELECT 1`; + return; + } catch (err) { + lastError = err; + console.log(`Waiting for database (${i}/30)...`); + await new Promise((resolve) => setTimeout(resolve, 2e3)); + } + } + throw lastError; + } + __name(waitForDb, "waitForDb"); + async function applyPendingMigrations() { + const dir = migrationsDir(); + if (!(0, node_fs_1.existsSync)(dir)) { + console.log("No runtime/migrations; skipping migrate"); + return; + } + const prisma = new client_1.PrismaClient(); + try { + await waitForDb(prisma); + await prisma.$executeRawUnsafe(` + CREATE TABLE IF NOT EXISTS "_prisma_migrations" ( + "id" VARCHAR(36) PRIMARY KEY NOT NULL, + "checksum" VARCHAR(64) NOT NULL, + "finished_at" TIMESTAMPTZ, + "migration_name" VARCHAR(255) NOT NULL, + "logs" TEXT, + "rolled_back_at" TIMESTAMPTZ, + "started_at" TIMESTAMPTZ NOT NULL DEFAULT now(), + "applied_steps_count" INTEGER NOT NULL DEFAULT 0 + ) + `); + const applied = await prisma.$queryRaw` + SELECT "migration_name" FROM "_prisma_migrations" WHERE "finished_at" IS NOT NULL + `; + const done = new Set(applied.map((row) => row.migration_name)); + const folders = (0, node_fs_1.readdirSync)(dir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => entry.name).sort(); + for (const name of folders) { + if (done.has(name)) + continue; + const file = node_path_1.default.join(dir, name, "migration.sql"); + if (!(0, node_fs_1.existsSync)(file)) + continue; + const sql = (0, node_fs_1.readFileSync)(file, "utf8"); + const checksum = (0, node_crypto_1.createHash)("sha256").update(sql).digest("hex"); + const id = (0, node_crypto_1.randomUUID)(); + console.log(`Applying migration ${name}`); + await prisma.$executeRaw` + INSERT INTO "_prisma_migrations" ("id", "checksum", "migration_name", "started_at", "applied_steps_count") + VALUES (${id}, ${checksum}, ${name}, now(), 0) + `; + for (const statement of splitStatements(sql)) { + await prisma.$executeRawUnsafe(statement); + } + await prisma.$executeRaw` + UPDATE "_prisma_migrations" + SET "finished_at" = now(), "applied_steps_count" = 1 + WHERE "id" = ${id} + `; + } + console.log("Migrations up to date"); + } finally { + await prisma.$disconnect(); + } + } + __name(applyPendingMigrations, "applyPendingMigrations"); + } +}); + +// dist/main.js +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = require_core3(); +var common_1 = require_common(); +var swagger_1 = require_dist6(); +var express_1 = require_express2(); +var app_module_1 = require_app_module(); +var apply_migrations_1 = require_apply_migrations(); +async function bootstrap() { + if (process.env.NODE_ENV === "production") { + await (0, apply_migrations_1.applyPendingMigrations)(); + } + const app = await core_1.NestFactory.create(app_module_1.AppModule); + const bodyLimit = process.env.BODY_LIMIT || "25mb"; + app.use((0, express_1.json)({ limit: bodyLimit })); + app.use((0, express_1.urlencoded)({ extended: true, limit: bodyLimit })); + const globalPrefix = process.env.GLOBAL_PREFIX || "api"; + app.setGlobalPrefix(globalPrefix); + app.enableCors({ + origin: true, + credentials: true + }); + app.useGlobalPipes(new common_1.ValidationPipe({ + whitelist: true, + transform: true, + forbidNonWhitelisted: true, + transformOptions: { enableImplicitConversion: true } + })); + const swaggerConfig = new swagger_1.DocumentBuilder().setTitle("Fabric Trade API").setDescription("API \u0633\u0631\u0648\u0631 \u062A\u062C\u0627\u0631\u062A \u067E\u0627\u0631\u0686\u0647").setVersion("1.0").addBearerAuth().build(); + const document2 = swagger_1.SwaggerModule.createDocument(app, swaggerConfig); + swagger_1.SwaggerModule.setup(`${globalPrefix}/docs`, app, document2); + const port = process.env.PORT ?? 3e3; + await app.listen(port); + console.log(`Fabric Trade API listening on http://localhost:${port}/${globalPrefix}`); + console.log(`Swagger docs at http://localhost:${port}/${globalPrefix}/docs`); +} +__name(bootstrap, "bootstrap"); +void bootstrap(); diff --git a/scripts/pack-runtime.mjs b/scripts/pack-runtime.mjs new file mode 100644 index 0000000..3fd21c0 --- /dev/null +++ b/scripts/pack-runtime.mjs @@ -0,0 +1,92 @@ +import { execSync } from 'node:child_process' +import { + copyFileSync, + cpSync, + existsSync, + mkdirSync, + rmSync, + statSync, + writeFileSync, +} from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..') +process.chdir(root) + +const runtimeDir = path.join(root, 'runtime') +const engineName = 'libquery_engine-debian-openssl-3.0.x.so.node' +const engineSrc = path.join(root, 'node_modules', '.prisma', 'client', engineName) + +function mb(file) { + return `${(statSync(file).size / (1024 * 1024)).toFixed(1)}MB` +} + +console.log('==> nest build') +rmSync(path.join(root, 'dist'), { recursive: true, force: true }) +rmSync(path.join(root, 'tsconfig.build.tsbuildinfo'), { force: true }) +execSync('npx nest build', { stdio: 'inherit' }) +if (!existsSync(path.join(root, 'dist', 'main.js'))) { + throw new Error('dist/main.js ساخته نشد') +} + +console.log('==> prisma generate (debian engine)') +execSync('npx prisma generate', { + stdio: 'inherit', + env: { + ...process.env, + DATABASE_URL: + process.env.DATABASE_URL + || 'postgresql://build:build@localhost:5432/build?schema=public', + }, +}) +if (!existsSync(engineSrc)) { + throw new Error(`${engineName} ساخته نشد. binaryTargets را در schema.prisma چک کنید.`) +} + +rmSync(runtimeDir, { recursive: true, force: true }) +mkdirSync(runtimeDir, { recursive: true }) + +console.log('==> esbuild bundle (بدون node_modules در ایمیج)') +execSync( + [ + 'npx --yes esbuild dist/main.js', + '--bundle', + '--platform=node', + '--target=node22', + '--format=cjs', + '--outfile=runtime/server.cjs', + '--keep-names', + '--legal-comments=none', + '--alias:class-transformer/storage=node_modules/class-transformer/cjs/storage.js', + '--external:@nestjs/microservices', + '--external:@nestjs/microservices/microservices-module', + '--external:@nestjs/websockets', + '--external:@nestjs/websockets/socket-module', + ].join(' '), + { stdio: 'inherit' }, +) + +copyFileSync(engineSrc, path.join(runtimeDir, engineName)) +const schemaSrc = path.join(root, 'node_modules', '.prisma', 'client', 'schema.prisma') +if (existsSync(schemaSrc)) { + copyFileSync(schemaSrc, path.join(runtimeDir, 'schema.prisma')) +} + +const migrationsSrc = path.join(root, 'prisma', 'migrations') +if (existsSync(migrationsSrc)) { + cpSync(migrationsSrc, path.join(runtimeDir, 'migrations'), { recursive: true }) +} + +writeFileSync( + path.join(runtimeDir, 'package.json'), + `${JSON.stringify({ name: 'fabric-trade-runtime', private: true, type: 'commonjs' }, null, 2)}\n`, +) + +if (!existsSync(path.join(runtimeDir, 'server.cjs'))) { + throw new Error('runtime/server.cjs ساخته نشد') +} + +console.log(`runtime/server.cjs ${mb(path.join(runtimeDir, 'server.cjs'))}`) +console.log(`runtime/${engineName} ${mb(path.join(runtimeDir, engineName))}`) +console.log('runtime آماده است. commit و push کنید. مایگریت روی سرور اجرا می‌شود.') diff --git a/src/apply-migrations.ts b/src/apply-migrations.ts new file mode 100644 index 0000000..30da409 --- /dev/null +++ b/src/apply-migrations.ts @@ -0,0 +1,95 @@ +import { createHash, randomUUID } from 'node:crypto' +import { existsSync, readdirSync, readFileSync } from 'node:fs' +import path from 'node:path' +import { PrismaClient } from '@prisma/client' + +function migrationsDir(): string { + return path.join(process.cwd(), 'runtime', 'migrations') +} + +function splitStatements(sql: string): string[] { + return sql + .split(/;\s*(?:\r?\n|$)/) + .map((part) => part.trim()) + .filter((part) => part.length > 0 && !part.startsWith('--')) +} + +async function waitForDb(prisma: PrismaClient): Promise { + let lastError: unknown + for (let i = 1; i <= 30; i++) { + try { + await prisma.$connect() + await prisma.$queryRaw`SELECT 1` + return + } catch (err) { + lastError = err + console.log(`Waiting for database (${i}/30)...`) + await new Promise((resolve) => setTimeout(resolve, 2000)) + } + } + throw lastError +} + +export async function applyPendingMigrations(): Promise { + const dir = migrationsDir() + if (!existsSync(dir)) { + console.log('No runtime/migrations; skipping migrate') + return + } + + const prisma = new PrismaClient() + try { + await waitForDb(prisma) + await prisma.$executeRawUnsafe(` + CREATE TABLE IF NOT EXISTS "_prisma_migrations" ( + "id" VARCHAR(36) PRIMARY KEY NOT NULL, + "checksum" VARCHAR(64) NOT NULL, + "finished_at" TIMESTAMPTZ, + "migration_name" VARCHAR(255) NOT NULL, + "logs" TEXT, + "rolled_back_at" TIMESTAMPTZ, + "started_at" TIMESTAMPTZ NOT NULL DEFAULT now(), + "applied_steps_count" INTEGER NOT NULL DEFAULT 0 + ) + `) + + const applied = await prisma.$queryRaw>` + SELECT "migration_name" FROM "_prisma_migrations" WHERE "finished_at" IS NOT NULL + ` + const done = new Set(applied.map((row) => row.migration_name)) + + const folders = readdirSync(dir, { withFileTypes: true }) + .filter((entry) => entry.isDirectory()) + .map((entry) => entry.name) + .sort() + + for (const name of folders) { + if (done.has(name)) continue + const file = path.join(dir, name, 'migration.sql') + if (!existsSync(file)) continue + + const sql = readFileSync(file, 'utf8') + const checksum = createHash('sha256').update(sql).digest('hex') + const id = randomUUID() + console.log(`Applying migration ${name}`) + + await prisma.$executeRaw` + INSERT INTO "_prisma_migrations" ("id", "checksum", "migration_name", "started_at", "applied_steps_count") + VALUES (${id}, ${checksum}, ${name}, now(), 0) + ` + + for (const statement of splitStatements(sql)) { + await prisma.$executeRawUnsafe(statement) + } + + await prisma.$executeRaw` + UPDATE "_prisma_migrations" + SET "finished_at" = now(), "applied_steps_count" = 1 + WHERE "id" = ${id} + ` + } + console.log('Migrations up to date') + } finally { + await prisma.$disconnect() + } +} diff --git a/src/main.ts b/src/main.ts index 80a921f..3e00a21 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,8 +3,13 @@ import { ValidationPipe } from '@nestjs/common'; import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; import { json, urlencoded } from 'express'; import { AppModule } from './app.module'; +import { applyPendingMigrations } from './apply-migrations'; async function bootstrap() { + if (process.env.NODE_ENV === 'production') { + await applyPendingMigrations(); + } + const app = await NestFactory.create(AppModule); // تصاویر چک و رسید به‌صورت base64 داخل JSON می‌آیند و از سقف پیش‌فرض ۱۰۰KB رد می‌شوند