conversion: fix exports and strengthen IP extraction

This commit is contained in:
Elijah Duffy
2025-12-18 17:12:47 -08:00
parent 82cce84a4e
commit 824fd262ed
3 changed files with 17 additions and 2 deletions

View File

@@ -58,10 +58,10 @@ export const buildCustomData = (params: Record<string, string>): CustomData => {
*/
export type ConversionEventOptions = {
eventID: string;
eventSourceURL?: string;
actionSource: 'website' | 'app' | 'offline' | 'other';
userData: UserData;
customData?: CustomData;
eventSourceURL?: string;
};
/**

View File

@@ -4,6 +4,20 @@ import type { ConversionErrorResponseBody, ConversionRequestBody } from '$lib/ty
import { StatusCodes } from 'http-status-codes';
const getEventIP = (request: Request, getClientAddress: () => string) => {
return (
request.headers.get('x-forwarded-for') ||
request.headers.get('cf-connecting-ip') ||
request.headers.get('x-real-ip') ||
request.headers.get('x-client-ip') ||
request.headers.get('x-cluster-client-ip') ||
request.headers.get('x-original-forwarded-for') ||
request.headers.get('forwarded-for') ||
request.headers.get('forwarded') ||
getClientAddress()
);
};
export const createConversionRequestHandler: (control: ConversionControl) => RequestHandler = (
control
) => {
@@ -12,7 +26,7 @@ export const createConversionRequestHandler: (control: ConversionControl) => Req
const body = (await request.json()) as ConversionRequestBody;
// Build user data with IP and user agent
const ip = getClientAddress();
const ip = getEventIP(request, getClientAddress);
const ua = request.headers.get('user-agent');
const userData = buildConversionUserData({