import PouchDB from "./PouchDB"; import type { MessageDocument, QRCodeDocument, ServerSettingsDocument, UserChatSettingsDocument, WebPushSubscriptionDocument, } from "@hereconnect/types"; import { PushSubscription } from "web-push"; export interface ServiceDoc { _id: string; lastSeq: string | number; } if (!process.env.API_URL) { throw new Error("Environment variable API_URL is not set"); } export const messagesDbUrl = `${process.env.API_URL}/messages`; export const serverSettingsDb = new PouchDB( `${process.env.API_URL}/server_settings`, { skip_setup: true, }, ); export const qrDb = new PouchDB(`${process.env.API_URL}/qr`, { skip_setup: true, }); export const webPushSubscriptionsDb = new PouchDB< WebPushSubscriptionDocument >(`${process.env.API_URL}/web_push_subscriptions`, { skip_setup: true, }); export const { messagesDb, serviceDb } = (() => { const messagesDB = new PouchDB(messagesDbUrl, { skip_setup: true, }); return { messagesDb: messagesDB as PouchDB.Database, serviceDb: messagesDB as PouchDB.Database, } as const; })(); export const userChatSettingsDb = new PouchDB( `${process.env.API_URL}/user_chat_settings`, { skip_setup: true, }, );