export type DateInterval1 = {start?: string | undefined, end?: string | undefined}; export type AdBlockerFilter1 = {type: string, include?: boolean | undefined}; export type BrowserFilter1 = {type: string, values?: (Array<'CHROME' | 'EDGE' | 'FIREFOX' | 'SAFARI' | 'OPERA'>) | undefined, include?: boolean | undefined, browserIntValue?: Array | undefined}; export type BrowserLanguageFilter1 = {type: string, values?: (Array<'AB' | 'AA' | 'AF' | 'AK' | 'SQ' | 'AM' | 'AR' | 'AN' | 'HY' | 'AS' | 'AV' | 'AE' | 'AY' | 'AZ' | 'BM' | 'BA' | 'EU' | 'BE' | 'BN' | 'BH' | 'BI' | 'BS' | 'BR' | 'BG' | 'MY' | 'CA' | 'CH' | 'CE' | 'NY' | 'ZH' | 'CV' | 'KW' | 'CO' | 'CR' | 'HR' | 'CS' | 'DA' | 'DV' | 'NL' | 'DZ' | 'EN' | 'EO' | 'ET' | 'EE' | 'FO' | 'FJ' | 'FI' | 'FR' | 'FF' | 'GL' | 'KA' | 'DE' | 'EL' | 'GN' | 'GU' | 'HT' | 'HA' | 'HE' | 'HZ' | 'HI' | 'HO' | 'HU' | 'IA' | 'ID' | 'IE' | 'GA' | 'IG' | 'IK' | 'IO' | 'IS' | 'IT' | 'IU' | 'JA' | 'JV' | 'KL' | 'KN' | 'KR' | 'KS' | 'KK' | 'KM' | 'KI' | 'RW' | 'KY' | 'KV' | 'KG' | 'KO' | 'KU' | 'KJ' | 'LA' | 'LB' | 'LG' | 'LI' | 'LN' | 'LO' | 'LT' | 'LU' | 'LV' | 'GV' | 'MK' | 'MG' | 'MS' | 'ML' | 'MT' | 'MI' | 'MR' | 'MH' | 'MN' | 'NA' | 'NV' | 'ND' | 'NE' | 'NG' | 'NB' | 'NN' | 'NO' | 'II' | 'NR' | 'OC' | 'OJ' | 'CU' | 'OM' | 'OR' | 'OS' | 'PA' | 'PI' | 'FA' | 'PL' | 'PS' | 'PT' | 'QU' | 'RM' | 'RN' | 'RO' | 'RU' | 'SA' | 'SC' | 'SD' | 'SE' | 'SM' | 'SG' | 'SR' | 'GD' | 'SN' | 'SI' | 'SK' | 'SL' | 'SO' | 'ST' | 'ES' | 'SU' | 'SW' | 'SS' | 'SV' | 'TA' | 'TE' | 'TG' | 'TH' | 'TI' | 'BO' | 'TK' | 'TL' | 'TN' | 'TO' | 'TR' | 'TS' | 'TT' | 'TW' | 'TY' | 'UG' | 'UK' | 'UR' | 'UZ' | 'VE' | 'VI' | 'VO' | 'WA' | 'CY' | 'WO' | 'FY' | 'XH' | 'YI' | 'YO' | 'ZA' | 'ZU'>) | undefined, include?: boolean | undefined, languageCodes?: Array | undefined}; export type DeviceTypeFilter1 = {type: string, values?: (Array<'DESKTOP' | 'TABLET' | 'PHONE'>) | undefined, include?: boolean | undefined}; export type NewVisitorFilter = {type: string, visitorsType?: ('NEW_VISITORS' | 'RETURNING_VISITORS') | undefined}; export type OperatingSystemFilter1 = {type: string, values?: (Array<'WINDOWS' | 'MAC_OS' | 'I_OS' | 'LINUX' | 'ANDROID' | 'WINDOWS_PHONE'>) | undefined, include?: boolean | undefined, operatingSystemAsInteger?: Array | undefined}; export type SdkFilter2 = {type: string, include?: boolean | undefined, values?: (Array<'JAVA' | 'ANDROID' | 'GO' | 'DOTNET' | 'PYTHON' | 'RUBY' | 'IOS' | 'PHP' | 'JAVASCRIPT' | 'NODEJS' | 'REACT' | 'RUST' | 'ELIXIR'>) | undefined}; export type VisitorDeviceExportFilters = AdBlockerFilter1 | BrowserFilter1 | BrowserLanguageFilter1 | DeviceTypeFilter1 | NewVisitorFilter | OperatingSystemFilter1 | SdkFilter2; export type FilterContainer = {param?: ('GREATER' | 'LOWER' | 'EQUAL' | 'BETWEEN') | undefined, value?: number | undefined, unit?: ('SECONDS' | 'MINUTES' | 'HOURS' | 'DAYS' | 'WEEKS') | undefined}; export type NumberPagesFilter2 = {type: string, include?: boolean | undefined, values?: Array | undefined}; export type NumberVisitsFilter1 = {type: string, include?: boolean | undefined, values?: Array | undefined}; export type SinceLastVisitFilter1 = {type: string, include?: boolean | undefined, values?: Array | undefined}; export type TimeSpentFilter1 = {type: string, include?: boolean | undefined, values?: Array | undefined}; export type VisitBehaviorExportFilters = NumberPagesFilter2 | NumberVisitsFilter1 | SinceLastVisitFilter1 | TimeSpentFilter1; export type FirstReferrerFilter1 = {type: string, values?: Array | undefined, include?: boolean | undefined, valuesAsString?: Array | undefined}; export type KeyPageFilter = {type: string, values?: Array | undefined, include?: boolean | undefined}; export type LandingPageURLFilter1 = {type: string, values?: Array | undefined, include?: boolean | undefined}; export type PageTitleFilter1 = {type: string, values?: Array | undefined, include?: boolean | undefined}; export type PageURLFilter1 = {type: string, values?: Array | undefined, include?: boolean | undefined}; export type ReferrerURLFilter1 = {type: string, values?: Array | undefined, include?: boolean | undefined}; export type TrafficFilter2 = {type: string, values?: (Array<'SEO' | 'SEM' | 'AFFILIATION' | 'EMAIL' | 'DIRECT'>) | undefined, include?: boolean | undefined}; export type PageTrafficExportFilters = FirstReferrerFilter1 | KeyPageFilter | LandingPageURLFilter1 | PageTitleFilter1 | PageURLFilter1 | ReferrerURLFilter1 | TrafficFilter2; export type ConversionExportFilters = {type: string, values?: Array | undefined, include?: boolean | undefined}; export type CustomDataFilter1 = {type: string, include?: boolean | undefined, customDataId?: number | undefined, value?: string | undefined}; export type ExperimentDataFilter1 = {type: string, id?: number | undefined, variationIds?: Array | undefined, include?: boolean | undefined}; export type PersonalizationDataFilter1 = {type: string, id?: number | undefined, exposition?: ('ALL' | 'EXPOSED' | 'NOT_EXPOSED') | undefined, include?: boolean | undefined}; export type TargetingSegmentFilter1 = {type: string, values?: Array | undefined, include?: boolean | undefined}; export type ExperimentPersonalizationExportFilters = CustomDataFilter1 | ExperimentDataFilter1 | PersonalizationDataFilter1 | TargetingSegmentFilter1; export type DayFilter = {type: string, include?: boolean | undefined}; export type ImmutableTripleIntegerIntegerInteger = {left?: number | undefined, middle?: number | undefined, right?: number | undefined}; export type TimeSlotFilter1 = {type: string, include?: boolean | undefined, visitorCalendar?: boolean | undefined, values?: Array> | undefined, ranges?: {[key: string]: ImmutableTripleIntegerIntegerInteger} | undefined}; export type WeekdayFilter1 = {type: string, values?: (Array<'SUNDAY' | 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY'>) | undefined, include?: boolean | undefined, visitorCalendar?: boolean | undefined, intValues?: Array | undefined}; export type TimeExportFilters = DayFilter | TimeSlotFilter1 | WeekdayFilter1; export type TemperatureFilter2 = {type: string, from?: number | undefined, include?: boolean | undefined, param?: ('GREATER' | 'LOWER' | 'EQUAL' | 'BETWEEN') | undefined, to?: number | undefined}; export type WeatherFilter1 = {type: string, values?: (Array<'CLEAR_SKY' | 'CLOUDS' | 'RAIN' | 'THUNDERSTORM' | 'SNOW' | 'HAIL' | 'WIND' | 'ATMOSPHERIC_DISTURBANCES'>) | undefined, include?: boolean | undefined, weatherAsString?: Array | undefined}; export type EnvironmentExportFilters = TemperatureFilter2 | WeatherFilter1; export type FilterExpression = Record; export type FilterLogicalExpression = {operator?: ('AND' | 'OR') | undefined, operands?: Array | undefined}; export type FilterPredicate = {filter?: (VisitorDeviceExportFilters | VisitBehaviorExportFilters | PageTrafficExportFilters | ConversionExportFilters | ExperimentPersonalizationExportFilters | TimeExportFilters | EnvironmentExportFilters) | undefined}; export type RawExport = {receiverEmailAddrs?: Array | undefined, id: number, level: 'VISIT' | 'VISITOR', dateIntervals: Array, format: 'CSV', filters?: (Array) | undefined, filtersExpression?: (FilterLogicalExpression | FilterPredicate) | undefined, actionType: 'EXPERIMENT' | 'PERSONALIZATION', customDataIds?: Array | undefined, conversionType: 'ALL_CONVERSION' | 'CONVERTED_VISITS'}; export type CreateApiRawExportReportArgs = {body: RawExport}; export type CreateApiRawExportReportOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; /** * Start the export of raw data * * POST /raw-export/report */ export const createApiRawExportReport = async (args: CreateApiRawExportReportArgs, options?: CreateApiRawExportReportOptions) => { const {baseUrl = "https://api.kameleoon.com", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "*/*") const url = `${baseUrl.replace(/\/+$/, '')}/raw-export/report${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.blob() };