{"version":3,"sources":["../../src/helpers/posthog.ts"],"sourcesContent":["type Rewrite = {\n    source: string\n    destination: string\n}\n\nconst POSTHOG_CLOUD_HOST_BASE = 'i.posthog.com'\nconst POSTHOG_CLOUD_HOST_MATCHER = new RegExp(`^(\\\\w+)\\\\.${POSTHOG_CLOUD_HOST_BASE.replaceAll('.', '\\\\.')}$`)\n\n/**\n * Gets posthog endpoint based on its domain and requested path.\n * Used to support both cloud and self-hosted instances, which differs in set of endpoints.\n * See example below for detailed explanation:\n * @example\n * getPosthogPath('https://eu.i.posthog.com', ['static', 'something']) // https://eu-assets.i.posthog.com/something\n * getPosthogPath('https://eu.i.posthog.com', ['other', 'path']) // https://eu.i.posthog.com/other/path\n * getPosthogPath('https://ph.self-hosted.com', ['static', 'something']) // https://ph.self-hosted.com/static/something\n * getPosthogPath('https://ph.self-hosted.com', ['other', 'path']) // https://ph.self-hosted.com/other/path\n */\nexport function getPosthogEndpoint (posthogDomain: string, requestedPath: Array<string>): string {\n    const posthogURL = new URL(posthogDomain)\n\n    const cloudMatch = posthogURL.host.match(POSTHOG_CLOUD_HOST_MATCHER)\n    if (cloudMatch && cloudMatch.length > 1) {\n        const region = cloudMatch[1]\n        if (requestedPath.length && requestedPath[0] === 'static') {\n            posthogURL.host = `${region}-assets.${POSTHOG_CLOUD_HOST_BASE}`\n            posthogURL.pathname = requestedPath.slice(1).join('/')\n            return posthogURL.toString()\n        }\n    }\n\n    posthogURL.pathname = requestedPath.join('/')\n    return posthogURL.toString()\n}\n\n/**\n * Generates Next.js rewrites based on PostHog domain,\n * so that PostHog can run in cloud and self-hosted versions without any ad blocker restrictions\n * @example\n * generateRewrites('https://eu.i.posthog.com', '/api/posthog')\n * generateRewrites('https://posthog.my.domain.com', '/api/posthog')\n * generateRewrites(process.env.NEXT_PUBLIC_POSTHOG_HOST, '/api/posthog')\n *\n * @deprecated This util is not used in condo applications and will be removed in next major upgrade,\n * since it requires knowing postHogDomain during build time. Consider setting up http proxy on API route instead\n */\nexport function generateRewrites (postHogDomain: string, routeEndpoint: string): Array<Rewrite> {\n    const url = new URL(postHogDomain)\n\n    const match = url.host.match(POSTHOG_CLOUD_HOST_MATCHER)\n\n    // Cloud PH must have separate url for assets\n    // SRC: https://posthog.com/docs/advanced/proxy/nextjs\n    if (match && match.length > 1) {\n        const region = match[1]\n        return [\n            {\n                source: `${routeEndpoint}/static/:path*`,\n                destination: `https://${region}-assets.${POSTHOG_CLOUD_HOST_BASE}/static/:path*`,\n            },\n            {\n                source: `${routeEndpoint}/:path*`,\n                destination: `https://${region}.${POSTHOG_CLOUD_HOST_BASE}/:path*`,\n            },\n        ]\n    }\n\n    return [\n        {\n            source: `${routeEndpoint}/:path*`,\n            destination: `${postHogDomain}/:path*`,\n        },\n    ]\n}"],"mappings":";AAKA,IAAM,0BAA0B;AAChC,IAAM,6BAA6B,IAAI,OAAO,aAAa,wBAAwB,WAAW,KAAK,KAAK,CAAC,GAAG;AAYrG,SAAS,mBAAoB,eAAuB,eAAsC;AAC7F,QAAM,aAAa,IAAI,IAAI,aAAa;AAExC,QAAM,aAAa,WAAW,KAAK,MAAM,0BAA0B;AACnE,MAAI,cAAc,WAAW,SAAS,GAAG;AACrC,UAAM,SAAS,WAAW,CAAC;AAC3B,QAAI,cAAc,UAAU,cAAc,CAAC,MAAM,UAAU;AACvD,iBAAW,OAAO,GAAG,MAAM,WAAW,uBAAuB;AAC7D,iBAAW,WAAW,cAAc,MAAM,CAAC,EAAE,KAAK,GAAG;AACrD,aAAO,WAAW,SAAS;AAAA,IAC/B;AAAA,EACJ;AAEA,aAAW,WAAW,cAAc,KAAK,GAAG;AAC5C,SAAO,WAAW,SAAS;AAC/B;AAaO,SAAS,iBAAkB,eAAuB,eAAuC;AAC5F,QAAM,MAAM,IAAI,IAAI,aAAa;AAEjC,QAAM,QAAQ,IAAI,KAAK,MAAM,0BAA0B;AAIvD,MAAI,SAAS,MAAM,SAAS,GAAG;AAC3B,UAAM,SAAS,MAAM,CAAC;AACtB,WAAO;AAAA,MACH;AAAA,QACI,QAAQ,GAAG,aAAa;AAAA,QACxB,aAAa,WAAW,MAAM,WAAW,uBAAuB;AAAA,MACpE;AAAA,MACA;AAAA,QACI,QAAQ,GAAG,aAAa;AAAA,QACxB,aAAa,WAAW,MAAM,IAAI,uBAAuB;AAAA,MAC7D;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAAA,IACH;AAAA,MACI,QAAQ,GAAG,aAAa;AAAA,MACxB,aAAa,GAAG,aAAa;AAAA,IACjC;AAAA,EACJ;AACJ;","names":[]}