export type AudienceConfigUrl = {matchType?: ('EXACT' | 'CONTAINS' | 'REGULAR_EXPRESSION' | 'TARGETED_URL') | undefined, url?: string | undefined}; export type AudienceConfig = {cartAmountGoal?: number | undefined, cartAmountValue?: number | undefined, dateCreated?: string | undefined, excludedConfigurationUrlList?: Array | undefined, excludedCustomData?: Array | undefined, excludedExperimentList?: Array | undefined, excludedGoalList?: Array | undefined, excludedPersonalizationList?: Array | undefined, excludedTargetingSegmentList?: Array | undefined, excludedTargetingTypeList?: (Array<'PAGE_URL' | 'PAGE_TITLE' | 'LANDING_PAGE' | 'ORIGIN' | 'ORIGIN_TYPE' | 'REFERRERS' | 'NEW_VISITORS' | 'BROWSER_LANGUAGE' | 'GEOLOCATION' | 'DEVICE_TYPE' | 'SCREEN_DIMENSION' | 'VISITOR_IP' | 'AD_BLOCKER' | 'PREVIOUS_PAGE' | 'KEY_PAGES' | 'PAGE_VIEWS' | 'FIRST_VISIT' | 'LAST_VISIT' | 'ACTIVE_SESSION' | 'TIME_SINCE_PAGE_LOAD' | 'SAME_DAY_VISITS' | 'VISITS' | 'VISITS_BY_PAGE' | 'INTERNAL_SEARCH_KEYWORDS' | 'TABS_ON_SITE' | 'HEAT_SLICE' | 'SKY_STATUS' | 'TEMPERATURE' | 'DAY_NIGHT' | 'FORECAST_SKY_STATUS' | 'FORECAST_TEMPERATURE' | 'DAY_OF_WEEK' | 'TIME_RANGE' | 'HOUR_MINUTE_RANGE' | 'JS_CODE' | 'COOKIE' | 'EVENT' | 'EXPLICIT_TRIGGER' | 'BROWSER' | 'OPERATING_SYSTEM' | 'DOM_ELEMENT' | 'MOUSE_OUT' | 'TARGET_EXPERIMENT' | 'TARGET_PERSONALIZATION' | 'EXCLUSIVE_EXPERIMENT' | 'CONVERSIONS' | 'CUSTOM_DATUM' | 'YSANCE_SEGMENT' | 'YSANCE_ATTRIBUT' | 'TEALIUM_BADGE' | 'TEALIUM_AUDIENCE' | 'PRICE_OF_DISPLAYED_PAGE' | 'NUMBER_OF_VISITED_PAGES' | 'VISITED_PAGES' | 'SEGMENT' | 'KEY_MOMENT' | 'CUSTOM' | 'SDK_LANGUAGE' | 'VISITOR_CODE' | 'TARGET_FEATURE_FLAG' | 'APPLICATION_VERSION'>) | undefined, id?: number | undefined, ignoreURLSettings?: boolean | undefined, includedConfigurationUrlList?: Array | undefined, includedCustomData?: Array | undefined, includedExperimentList?: Array | undefined, includedPersonalizationList?: Array | undefined, includedTargetingSegmentList?: Array | undefined, includedTargetingTypeList?: (Array<'PAGE_URL' | 'PAGE_TITLE' | 'LANDING_PAGE' | 'ORIGIN' | 'ORIGIN_TYPE' | 'REFERRERS' | 'NEW_VISITORS' | 'BROWSER_LANGUAGE' | 'GEOLOCATION' | 'DEVICE_TYPE' | 'SCREEN_DIMENSION' | 'VISITOR_IP' | 'AD_BLOCKER' | 'PREVIOUS_PAGE' | 'KEY_PAGES' | 'PAGE_VIEWS' | 'FIRST_VISIT' | 'LAST_VISIT' | 'ACTIVE_SESSION' | 'TIME_SINCE_PAGE_LOAD' | 'SAME_DAY_VISITS' | 'VISITS' | 'VISITS_BY_PAGE' | 'INTERNAL_SEARCH_KEYWORDS' | 'TABS_ON_SITE' | 'HEAT_SLICE' | 'SKY_STATUS' | 'TEMPERATURE' | 'DAY_NIGHT' | 'FORECAST_SKY_STATUS' | 'FORECAST_TEMPERATURE' | 'DAY_OF_WEEK' | 'TIME_RANGE' | 'HOUR_MINUTE_RANGE' | 'JS_CODE' | 'COOKIE' | 'EVENT' | 'EXPLICIT_TRIGGER' | 'BROWSER' | 'OPERATING_SYSTEM' | 'DOM_ELEMENT' | 'MOUSE_OUT' | 'TARGET_EXPERIMENT' | 'TARGET_PERSONALIZATION' | 'EXCLUSIVE_EXPERIMENT' | 'CONVERSIONS' | 'CUSTOM_DATUM' | 'YSANCE_SEGMENT' | 'YSANCE_ATTRIBUT' | 'TEALIUM_BADGE' | 'TEALIUM_AUDIENCE' | 'PRICE_OF_DISPLAYED_PAGE' | 'NUMBER_OF_VISITED_PAGES' | 'VISITED_PAGES' | 'SEGMENT' | 'KEY_MOMENT' | 'CUSTOM' | 'SDK_LANGUAGE' | 'VISITOR_CODE' | 'TARGET_FEATURE_FLAG' | 'APPLICATION_VERSION'>) | undefined, mainGoal: number, siteType?: ('ECOMMERCE' | 'MEDIA' | 'OTHER') | undefined}; export type ExperimentConfig = {abtestConsent?: ('OFF' | 'REQUIRED' | 'IABTCF') | undefined, abtestConsentOptout?: ('RUN' | 'BLOCK') | undefined, beforeAbtestConsent?: ('NONE' | 'PARTIALLY' | 'ALL') | undefined, customVariationSelectionScript?: string | undefined, isEditorLaunchedByShortcut?: boolean | undefined, isKameleoonReportingEnabled?: boolean | undefined, minWiningReliability?: number | undefined}; export type PersonalizationConfig = {beforePersonalizationConsent?: ('NONE' | 'PARTIALLY' | 'ALL') | undefined, isSameJqueryInjectionAllowed?: boolean | undefined, isSameTypePersonalizationEnabled?: boolean | undefined, personalizationConsent?: ('OFF' | 'REQUIRED' | 'IABTCF') | undefined, personalizationConsentOptout?: ('RUN' | 'BLOCK') | undefined, personalizationsDeviation?: number | undefined}; export type WidgetFont = {fontFamily?: string | undefined, fontSrc?: string | undefined, fontWeights?: Array | undefined, id?: string | undefined, importSrc?: string | undefined}; export type Site = {abtestConsent?: ('OFF' | 'REQUIRED' | 'IABTCF') | undefined, applicationFileUrl?: string | undefined, audienceConfig?: AudienceConfig | undefined, behaviorWhenTimeout?: ('RUN' | 'DISABLE_FOR_PAGE' | 'DISABLE_FOR_VISIT') | undefined, captureEventMethod?: ('CLICK' | 'MOUSEDOWN' | 'MOUSEUP') | undefined, code?: string | undefined, currency?: ('USD' | 'EUR' | 'JPY' | 'GBP' | 'CNY' | 'AUD' | 'CAD' | 'CHF' | 'HKD' | 'SGD' | 'SEK' | 'KRW' | 'NOK' | 'NZD' | 'INR' | 'MXN' | 'TWD' | 'ZAR' | 'BRL' | 'DKK' | 'PLN' | 'THB' | 'ILS' | 'IDR' | 'CZK' | 'AED' | 'TRY' | 'HUF' | 'CLP' | 'SAR' | 'PHP' | 'MYR' | 'COP' | 'RUB' | 'RON' | 'PEN' | 'BHD' | 'BGN' | 'ARS' | 'KWD') | undefined, customAttributes?: string | undefined, customSelectors?: Array | undefined, dataStorage?: ('STANDARD_COOKIE' | 'LOCAL_STORAGE' | 'CUSTOM_COOKIE') | undefined, dateCreated?: string | undefined, description?: string | undefined, domainNames?: Array | undefined, experimentConfig?: ExperimentConfig | undefined, id?: number | undefined, imagesUrl?: string | undefined, indicators?: (Array<'RETENTION_RATE' | 'NUMBER_OF_PAGES_SEEN' | 'DWELL_TIME'>) | undefined, isAudienceUsed?: boolean | undefined, isKameleoonEnabled?: boolean | undefined, isScriptActive?: boolean | undefined, kameleoonDomain?: string | undefined, lastScriptRebuildDate?: string | undefined, lastScriptRebuildStatus?: ('SUCCESS' | 'FAILURE') | undefined, name?: string | undefined, personalizationConfig?: PersonalizationConfig | undefined, realTimeConfigUpdate?: boolean | undefined, recommendationSecretKey?: string | undefined, recommendationStoreKey?: string | undefined, responsiveMobile?: boolean | undefined, shadowDom?: boolean | undefined, trackingScript?: string | undefined, type?: ('SITE' | 'SITE_JS' | 'SITE_SDK' | 'APPLICATION') | undefined, url: string, wideDomain?: string | undefined, widgetFonts?: Array | undefined}; export type CreateApiSitesArgs = {body: Site}; export type CreateApiSitesOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Create new site * * POST /sites */ export const createApiSites = async (args: CreateApiSitesArgs, options?: CreateApiSitesOptions) => { const {baseUrl = "https://api.kameleoon.com", fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "*/*") if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/sites${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() };