import { CHAT_INVITATION as t } from "./identity.constants"
export const PUBLIC_INVITE_PREFIX = "https://pears.com/invite/"
export const getPearInvitationContextRegExp = (t) => {
const n = t.join("|")
return new RegExp(`(?:${n}):\\/\\/\\w+\\/\\w+(\\?deviceId=(?:\\w+)&seq=(?:\\d+))?`)
}
export const getPearInvitationRegExp = (t) => {
const n = t.join("|")
return new RegExp(`^(?:${n}):\\/\\/(\\w+)\\/(\\w+)\\[?]?`)
}
export const KEET_LINK_PREFIX = "https://holepunchto.github.io/invite#"
export const SUPPORT_LINKS = [KEET_LINK_PREFIX, "https://gasolin.github.io/keetlink#"]
export const parseInvitation = (t, n) => {
const o = (t || "").trim()
for (const t of n) {
const n = `${t}://`
if (o.startsWith(n)) return o.slice(n.length).split("/").slice(1).join("/") || null
}
for (const t of SUPPORT_LINKS)
if (o.startsWith(t)) return o.slice(t.length).split("?")[0].split("&")[0].split("#")[0]
return null
}
export const removeInvitationQueryParams = (t) => t.split("?")[0]
export const isInvitation = (t, n) => !!parseInvitation(t, n)
export function createInvitationLink({ invitation: n, isPublic: o, appProtocol: i }) {
return `${o ? PUBLIC_INVITE_PREFIX : `${i}://`}${t}/${n}`
}
export const trimRoomInvitation = (t, n) => {
const o = `${n}://`,
i = t.lastIndexOf(o)
if (-1 !== i) return t.slice(i)
const e = t.lastIndexOf(KEET_LINK_PREFIX)
return -1 !== e ? t.slice(e) : t
}