@algolia/client-insights
Advanced tools
Comparing version 5.2.5 to 5.3.0
import * as _algolia_client_common from '@algolia/client-common'; | ||
import { ClientOptions } from '@algolia/client-common'; | ||
import { CreateClientOptions, RequestOptions, ClientOptions } from '@algolia/client-common'; | ||
/** | ||
* Properties for the `customDelete` method. | ||
*/ | ||
type CustomDeleteProps = { | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
*/ | ||
path: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
*/ | ||
parameters?: Record<string, any>; | ||
}; | ||
/** | ||
* Properties for the `customGet` method. | ||
*/ | ||
type CustomGetProps = { | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
*/ | ||
path: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
*/ | ||
parameters?: Record<string, any>; | ||
}; | ||
/** | ||
* Properties for the `customPost` method. | ||
*/ | ||
type CustomPostProps = { | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
*/ | ||
path: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
*/ | ||
parameters?: Record<string, any>; | ||
/** | ||
* Parameters to send with the custom request. | ||
*/ | ||
body?: Record<string, unknown>; | ||
}; | ||
/** | ||
* Properties for the `customPut` method. | ||
*/ | ||
type CustomPutProps = { | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
*/ | ||
path: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
*/ | ||
parameters?: Record<string, any>; | ||
/** | ||
* Parameters to send with the custom request. | ||
*/ | ||
body?: Record<string, unknown>; | ||
}; | ||
/** | ||
* Properties for the `deleteUserToken` method. | ||
*/ | ||
type DeleteUserTokenProps = { | ||
/** | ||
* User token for which to delete all associated events. | ||
*/ | ||
userToken: string; | ||
}; | ||
/** | ||
* The response of the Insights API. | ||
*/ | ||
type EventsResponse = { | ||
/** | ||
* Details about the response, such as error messages. | ||
*/ | ||
message?: string; | ||
/** | ||
* The HTTP status code of the response. | ||
*/ | ||
status?: number; | ||
}; | ||
type AddToCartEvent = 'addToCart'; | ||
@@ -328,9 +412,2 @@ | ||
/** | ||
* Error. | ||
*/ | ||
type ErrorBase = Record<string, any> & { | ||
message?: string; | ||
}; | ||
type PurchaseEvent = 'purchase'; | ||
@@ -486,16 +563,2 @@ | ||
/** | ||
* The response of the Insights API. | ||
*/ | ||
type EventsResponse = { | ||
/** | ||
* Details about the response, such as error messages. | ||
*/ | ||
message?: string; | ||
/** | ||
* The HTTP status code of the response. | ||
*/ | ||
status?: number; | ||
}; | ||
type InsightsEvents = { | ||
@@ -508,94 +571,103 @@ /** | ||
/** | ||
* Properties for the `customDelete` method. | ||
*/ | ||
type CustomDeleteProps = { | ||
declare const apiClientVersion = "5.3.0"; | ||
declare const REGIONS: readonly ["de", "us"]; | ||
type Region = (typeof REGIONS)[number]; | ||
declare function createInsightsClient({ appId: appIdOption, apiKey: apiKeyOption, authMode, algoliaAgents, region: regionOption, ...options }: CreateClientOptions & { | ||
region?: Region; | ||
}): { | ||
transporter: _algolia_client_common.Transporter; | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
* The `appId` currently in use. | ||
*/ | ||
path: string; | ||
appId: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
* Clears the cache of the transporter for the `requestsCache` and `responsesCache` properties. | ||
*/ | ||
parameters?: Record<string, any>; | ||
}; | ||
/** | ||
* Properties for the `customGet` method. | ||
*/ | ||
type CustomGetProps = { | ||
clearCache(): Promise<void>; | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
* Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system. | ||
*/ | ||
path: string; | ||
readonly _ua: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
* Adds a `segment` to the `x-algolia-agent` sent with every requests. | ||
* | ||
* @param segment - The algolia agent (user-agent) segment to add. | ||
* @param version - The version of the agent. | ||
*/ | ||
parameters?: Record<string, any>; | ||
}; | ||
/** | ||
* Properties for the `customPost` method. | ||
*/ | ||
type CustomPostProps = { | ||
addAlgoliaAgent(segment: string, version?: string): void; | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
* Helper method to switch the API key used to authenticate the requests. | ||
* | ||
* @param params - Method params. | ||
* @param params.apiKey - The new API Key to use. | ||
*/ | ||
path: string; | ||
setClientApiKey({ apiKey }: { | ||
apiKey: string; | ||
}): void; | ||
/** | ||
* Query parameters to apply to the current query. | ||
* This method allow you to send requests to the Algolia REST API. | ||
* | ||
* @param customDelete - The customDelete object. | ||
* @param customDelete.path - Path of the endpoint, anything after \"/1\" must be specified. | ||
* @param customDelete.parameters - Query parameters to apply to the current query. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
parameters?: Record<string, any>; | ||
customDelete({ path, parameters }: CustomDeleteProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>>; | ||
/** | ||
* Parameters to send with the custom request. | ||
* This method allow you to send requests to the Algolia REST API. | ||
* | ||
* @param customGet - The customGet object. | ||
* @param customGet.path - Path of the endpoint, anything after \"/1\" must be specified. | ||
* @param customGet.parameters - Query parameters to apply to the current query. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
body?: Record<string, unknown>; | ||
}; | ||
/** | ||
* Properties for the `customPut` method. | ||
*/ | ||
type CustomPutProps = { | ||
customGet({ path, parameters }: CustomGetProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>>; | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
* This method allow you to send requests to the Algolia REST API. | ||
* | ||
* @param customPost - The customPost object. | ||
* @param customPost.path - Path of the endpoint, anything after \"/1\" must be specified. | ||
* @param customPost.parameters - Query parameters to apply to the current query. | ||
* @param customPost.body - Parameters to send with the custom request. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
path: string; | ||
customPost({ path, parameters, body }: CustomPostProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>>; | ||
/** | ||
* Query parameters to apply to the current query. | ||
* This method allow you to send requests to the Algolia REST API. | ||
* | ||
* @param customPut - The customPut object. | ||
* @param customPut.path - Path of the endpoint, anything after \"/1\" must be specified. | ||
* @param customPut.parameters - Query parameters to apply to the current query. | ||
* @param customPut.body - Parameters to send with the custom request. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
parameters?: Record<string, any>; | ||
customPut({ path, parameters, body }: CustomPutProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>>; | ||
/** | ||
* Parameters to send with the custom request. | ||
* Deletes all events related to the specified user token from events metrics and analytics. The deletion is asynchronous, and processed within 48 hours. To delete a personalization user profile, see `Delete a user profile` in the Personalization API. | ||
* | ||
* @param deleteUserToken - The deleteUserToken object. | ||
* @param deleteUserToken.userToken - User token for which to delete all associated events. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
body?: Record<string, unknown>; | ||
}; | ||
/** | ||
* Properties for the `deleteUserToken` method. | ||
*/ | ||
type DeleteUserTokenProps = { | ||
deleteUserToken({ userToken }: DeleteUserTokenProps, requestOptions?: RequestOptions): Promise<void>; | ||
/** | ||
* User token for which to delete all associated events. | ||
* Sends a list of events to the Insights API. You can include up to 1,000 events in a single request, but the request body must be smaller than 2 MB. | ||
* | ||
* @param insightsEvents - The insightsEvents object. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
userToken: string; | ||
pushEvents(insightsEvents: InsightsEvents, requestOptions?: RequestOptions): Promise<EventsResponse>; | ||
}; | ||
declare const apiClientVersion = "5.2.5"; | ||
declare const REGIONS: readonly ["de", "us"]; | ||
type Region = (typeof REGIONS)[number]; | ||
/** | ||
* The client type. | ||
* Error. | ||
*/ | ||
type InsightsClient = ReturnType<typeof insightsClient>; | ||
declare function insightsClient(appId: string, apiKey: string, region?: Region, options?: ClientOptions): { | ||
transporter: _algolia_client_common.Transporter; | ||
appId: string; | ||
clearCache(): Promise<void>; | ||
readonly _ua: string; | ||
addAlgoliaAgent(segment: string, version?: string): void; | ||
customDelete({ path, parameters }: CustomDeleteProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<Record<string, unknown>>; | ||
customGet({ path, parameters }: CustomGetProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<Record<string, unknown>>; | ||
customPost({ path, parameters, body }: CustomPostProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<Record<string, unknown>>; | ||
customPut({ path, parameters, body }: CustomPutProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<Record<string, unknown>>; | ||
deleteUserToken({ userToken }: DeleteUserTokenProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<void>; | ||
pushEvents(insightsEvents: InsightsEvents, requestOptions?: _algolia_client_common.RequestOptions): Promise<EventsResponse>; | ||
type ErrorBase = Record<string, any> & { | ||
message?: string; | ||
}; | ||
type InsightsClient = ReturnType<typeof createInsightsClient>; | ||
declare function insightsClient(appId: string, apiKey: string, region?: Region, options?: ClientOptions): InsightsClient; | ||
export { type AddToCartEvent, type AddedToCartObjectIDs, type AddedToCartObjectIDsAfterSearch, type ClickEvent, type ClickedFilters, type ClickedObjectIDs, type ClickedObjectIDsAfterSearch, type ConversionEvent, type ConvertedFilters, type ConvertedObjectIDs, type ConvertedObjectIDsAfterSearch, type CustomDeleteProps, type CustomGetProps, type CustomPostProps, type CustomPutProps, type DeleteUserTokenProps, type Discount, type ErrorBase, type EventsItems, type EventsResponse, type InsightsClient, type InsightsEvents, type ObjectData, type ObjectDataAfterSearch, type Price, type PurchaseEvent, type PurchasedObjectIDs, type PurchasedObjectIDsAfterSearch, type Region, type Value, type ViewEvent, type ViewedFilters, type ViewedObjectIDs, apiClientVersion, insightsClient }; |
@@ -14,3 +14,3 @@ // builds/browser.ts | ||
import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common"; | ||
var apiClientVersion = "5.2.5"; | ||
var apiClientVersion = "5.3.0"; | ||
var REGIONS = ["de", "us"]; | ||
@@ -30,22 +30,21 @@ function getDefaultHosts(region) { | ||
const auth = createAuth(appIdOption, apiKeyOption, authMode); | ||
const transporter = createTransporter({ | ||
hosts: getDefaultHosts(regionOption), | ||
...options, | ||
algoliaAgent: getAlgoliaAgent({ | ||
algoliaAgents, | ||
client: "Insights", | ||
version: apiClientVersion | ||
return { | ||
transporter: createTransporter({ | ||
hosts: getDefaultHosts(regionOption), | ||
...options, | ||
algoliaAgent: getAlgoliaAgent({ | ||
algoliaAgents, | ||
client: "Insights", | ||
version: apiClientVersion | ||
}), | ||
baseHeaders: { | ||
"content-type": "text/plain", | ||
...auth.headers(), | ||
...options.baseHeaders | ||
}, | ||
baseQueryParameters: { | ||
...auth.queryParameters(), | ||
...options.baseQueryParameters | ||
} | ||
}), | ||
baseHeaders: { | ||
"content-type": "text/plain", | ||
...auth.headers(), | ||
...options.baseHeaders | ||
}, | ||
baseQueryParameters: { | ||
...auth.queryParameters(), | ||
...options.baseQueryParameters | ||
} | ||
}); | ||
return { | ||
transporter, | ||
/** | ||
@@ -59,3 +58,5 @@ * The `appId` currently in use. | ||
clearCache() { | ||
return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => void 0); | ||
return Promise.all([this.transporter.requestsCache.clear(), this.transporter.responsesCache.clear()]).then( | ||
() => void 0 | ||
); | ||
}, | ||
@@ -66,3 +67,3 @@ /** | ||
get _ua() { | ||
return transporter.algoliaAgent.value; | ||
return this.transporter.algoliaAgent.value; | ||
}, | ||
@@ -76,5 +77,14 @@ /** | ||
addAlgoliaAgent(segment, version) { | ||
transporter.algoliaAgent.add({ segment, version }); | ||
this.transporter.algoliaAgent.add({ segment, version }); | ||
}, | ||
/** | ||
* Helper method to switch the API key used to authenticate the requests. | ||
* | ||
* @param params - Method params. | ||
* @param params.apiKey - The new API Key to use. | ||
*/ | ||
setClientApiKey({ apiKey }) { | ||
this.transporter.baseHeaders["x-algolia-api-key"] = apiKey; | ||
}, | ||
/** | ||
* This method allow you to send requests to the Algolia REST API. | ||
@@ -100,3 +110,3 @@ * | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -124,3 +134,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -150,3 +160,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -176,3 +186,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -199,3 +209,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -225,3 +235,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
} | ||
@@ -228,0 +238,0 @@ }; |
@@ -1,2 +0,2 @@ | ||
function j(t,e,o="WithinHeaders"){let r={"x-algolia-api-key":e,"x-algolia-application-id":t};return{headers(){return o==="WithinHeaders"?r:{}},queryParameters(){return o==="WithinQueryParameters"?r:{}}}}function H(t){let e,o=`algolia-client-js-${t.key}`;function r(){return e===void 0&&(e=t.localStorage||window.localStorage),e}function s(){return JSON.parse(r().getItem(o)||"{}")}function m(a){r().setItem(o,JSON.stringify(a))}function d(){let a=t.timeToLive?t.timeToLive*1e3:null,n=s(),c=Object.fromEntries(Object.entries(n).filter(([,p])=>p.timestamp!==void 0));if(m(c),!a)return;let u=Object.fromEntries(Object.entries(c).filter(([,p])=>{let l=new Date().getTime();return!(p.timestamp+a<l)}));m(u)}return{get(a,n,c={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(d(),s()[JSON.stringify(a)])).then(u=>Promise.all([u?u.value:n(),u!==void 0])).then(([u,p])=>Promise.all([u,p||c.miss(u)])).then(([u])=>u)},set(a,n){return Promise.resolve().then(()=>{let c=s();return c[JSON.stringify(a)]={timestamp:new Date().getTime(),value:n},r().setItem(o,JSON.stringify(c)),n})},delete(a){return Promise.resolve().then(()=>{let n=s();delete n[JSON.stringify(a)],r().setItem(o,JSON.stringify(n))})},clear(){return Promise.resolve().then(()=>{r().removeItem(o)})}}}function Y(){return{get(t,e,o={miss:()=>Promise.resolve()}){return e().then(s=>Promise.all([s,o.miss(s)])).then(([s])=>s)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}function v(t){let e=[...t.caches],o=e.shift();return o===void 0?Y():{get(r,s,m={miss:()=>Promise.resolve()}){return o.get(r,s,m).catch(()=>v({caches:e}).get(r,s,m))},set(r,s){return o.set(r,s).catch(()=>v({caches:e}).set(r,s))},delete(r){return o.delete(r).catch(()=>v({caches:e}).delete(r))},clear(){return o.clear().catch(()=>v({caches:e}).clear())}}}function x(t={serializable:!0}){let e={};return{get(o,r,s={miss:()=>Promise.resolve()}){let m=JSON.stringify(o);if(m in e)return Promise.resolve(t.serializable?JSON.parse(e[m]):e[m]);let d=r();return d.then(a=>s.miss(a)).then(()=>d)},set(o,r){return e[JSON.stringify(o)]=t.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete(o){return delete e[JSON.stringify(o)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}var L=2*60*1e3;function W(t,e="up"){let o=Date.now();function r(){return e==="up"||Date.now()-o>L}function s(){return e==="timed out"&&Date.now()-o<=L}return{...t,status:e,lastUpdate:o,isUp:r,isTimedOut:s}}var J=class extends Error{name="AlgoliaError";constructor(t,e){super(t),e&&(this.name=e)}},$=class extends J{stackTrace;constructor(t,e,o){super(t,o),this.stackTrace=e}},Z=class extends ${constructor(t){super("Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError")}},b=class extends ${status;constructor(t,e,o,r="ApiError"){super(t,o,r),this.status=e}},ee=class extends J{response;constructor(t,e){super(t,"DeserializationError"),this.response=e}},te=class extends b{error;constructor(t,e,o,r){super(t,e,r,"DetailedApiError"),this.error=o}};function re(t,e,o){let r=oe(o),s=`${t.protocol}://${t.url}${t.port?`:${t.port}`:""}/${e.charAt(0)==="/"?e.substring(1):e}`;return r.length&&(s+=`?${r}`),s}function oe(t){return Object.keys(t).filter(e=>t[e]!==void 0).sort().map(e=>`${e}=${encodeURIComponent(Object.prototype.toString.call(t[e])==="[object Array]"?t[e].join(","):t[e]).replaceAll("+","%20")}`).join("&")}function se(t,e){if(t.method==="GET"||t.data===void 0&&e.data===void 0)return;let o=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(o)}function ne(t,e,o){let r={Accept:"application/json",...t,...e,...o},s={};return Object.keys(r).forEach(m=>{let d=r[m];s[m.toLowerCase()]=d}),s}function ae(t){try{return JSON.parse(t.content)}catch(e){throw new ee(e.message,t)}}function ie({content:t,status:e},o){try{let r=JSON.parse(t);return"error"in r?new te(r.message,e,r.error,o):new b(r.message,e,o)}catch{}return new b(t,e,o)}function ce({isTimedOut:t,status:e}){return!t&&~~e===0}function ue({isTimedOut:t,status:e}){return t||ce({isTimedOut:t,status:e})||~~(e/100)!==2&&~~(e/100)!==4}function le({status:t}){return~~(t/100)===2}function me(t){return t.map(e=>M(e))}function M(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function z({hosts:t,hostsCache:e,baseHeaders:o,baseQueryParameters:r,algoliaAgent:s,timeouts:m,requester:d,requestsCache:a,responsesCache:n}){async function c(l){let i=await Promise.all(l.map(h=>e.get(h,()=>Promise.resolve(W(h))))),P=i.filter(h=>h.isUp()),f=i.filter(h=>h.isTimedOut()),R=[...P,...f];return{hosts:R.length>0?R:l,getTimeout(h,y){return(f.length===0&&h===0?1:f.length+3+h)*y}}}async function u(l,i,P=!0){let f=[],R=se(l,i),E=ne(o,l.headers,i.headers),h=l.method==="GET"?{...l.data,...i.data}:{},y={...r,...l.queryParameters,...h};if(s.value&&(y["x-algolia-agent"]=s.value),i&&i.queryParameters)for(let g of Object.keys(i.queryParameters))!i.queryParameters[g]||Object.prototype.toString.call(i.queryParameters[g])==="[object Object]"?y[g]=i.queryParameters[g]:y[g]=i.queryParameters[g].toString();let O=0,D=async(g,q)=>{let w=g.pop();if(w===void 0)throw new Z(me(f));let S={...m,...i.timeouts},U={data:R,headers:E,method:l.method,url:re(w,l.path,y),connectTimeout:q(O,S.connect),responseTimeout:q(O,P?S.read:S.write)},_=C=>{let k={request:U,response:C,host:w,triesLeft:g.length};return f.push(k),k},T=await d.send(U);if(ue(T)){let C=_(T);return T.isTimedOut&&O++,console.log("Retryable failure",M(C)),await e.set(w,W(w,T.isTimedOut?"timed out":"down")),D(g,q)}if(le(T))return ae(T);throw _(T),ie(T,f)},K=t.filter(g=>g.accept==="readWrite"||(P?g.accept==="read":g.accept==="write")),I=await c(K);return D([...I.hosts].reverse(),I.getTimeout)}function p(l,i={}){let P=l.useReadTransporter||l.method==="GET";if(!P)return u(l,i,P);let f=()=>u(l,i);if((i.cacheable||l.cacheable)!==!0)return f();let E={request:l,requestOptions:i,transporter:{queryParameters:r,headers:o}};return n.get(E,()=>a.get(E,()=>a.set(E,f()).then(h=>Promise.all([a.delete(E),h]),h=>Promise.all([a.delete(E),Promise.reject(h)])).then(([h,y])=>y)),{miss:h=>n.set(E,h)})}return{hostsCache:e,requester:d,timeouts:m,algoliaAgent:s,baseHeaders:o,baseQueryParameters:r,hosts:t,request:p,requestsCache:a,responsesCache:n}}function he(t){let e={value:`Algolia for JavaScript (${t})`,add(o){let r=`; ${o.segment}${o.version!==void 0?` (${o.version})`:""}`;return e.value.indexOf(r)===-1&&(e.value=`${e.value}${r}`),e}};return e}function F({algoliaAgents:t,client:e,version:o}){let r=he(o).add({segment:e,version:o});return t.forEach(s=>r.add(s)),r}var G=1e3,Q=2e3,B=3e4;function X(){function t(e){return new Promise(o=>{let r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach(a=>r.setRequestHeader(a,e.headers[a]));let s=(a,n)=>setTimeout(()=>{r.abort(),o({status:0,content:n,isTimedOut:!0})},a),m=s(e.connectTimeout,"Connection timeout"),d;r.onreadystatechange=()=>{r.readyState>r.OPENED&&d===void 0&&(clearTimeout(m),d=s(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{r.status===0&&(clearTimeout(m),clearTimeout(d),o({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(m),clearTimeout(d),o({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)})}return{send:t}}var A="5.2.5",N=["de","us"];function de(t){return[{url:t?"insights.{region}.algolia.io".replace("{region}",t):"insights.algolia.io",accept:"readWrite",protocol:"https"}]}function V({appId:t,apiKey:e,authMode:o,algoliaAgents:r,region:s,...m}){let d=j(t,e,o),a=z({hosts:de(s),...m,algoliaAgent:F({algoliaAgents:r,client:"Insights",version:A}),baseHeaders:{"content-type":"text/plain",...d.headers(),...m.baseHeaders},baseQueryParameters:{...d.queryParameters(),...m.baseQueryParameters}});return{transporter:a,appId:t,clearCache(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then(()=>{})},get _ua(){return a.algoliaAgent.value},addAlgoliaAgent(n,c){a.algoliaAgent.add({segment:n,version:c})},customDelete({path:n,parameters:c},u){if(!n)throw new Error("Parameter `path` is required when calling `customDelete`.");let P={method:"DELETE",path:"/{path}".replace("{path}",n),queryParameters:c||{},headers:{}};return a.request(P,u)},customGet({path:n,parameters:c},u){if(!n)throw new Error("Parameter `path` is required when calling `customGet`.");let P={method:"GET",path:"/{path}".replace("{path}",n),queryParameters:c||{},headers:{}};return a.request(P,u)},customPost({path:n,parameters:c,body:u},p){if(!n)throw new Error("Parameter `path` is required when calling `customPost`.");let f={method:"POST",path:"/{path}".replace("{path}",n),queryParameters:c||{},headers:{},data:u||{}};return a.request(f,p)},customPut({path:n,parameters:c,body:u},p){if(!n)throw new Error("Parameter `path` is required when calling `customPut`.");let f={method:"PUT",path:"/{path}".replace("{path}",n),queryParameters:c||{},headers:{},data:u||{}};return a.request(f,p)},deleteUserToken({userToken:n},c){if(!n)throw new Error("Parameter `userToken` is required when calling `deleteUserToken`.");let i={method:"DELETE",path:"/1/usertokens/{userToken}".replace("{userToken}",encodeURIComponent(n)),queryParameters:{},headers:{}};return a.request(i,c)},pushEvents(n,c){if(!n)throw new Error("Parameter `insightsEvents` is required when calling `pushEvents`.");if(!n.events)throw new Error("Parameter `insightsEvents.events` is required when calling `pushEvents`.");let i={method:"POST",path:"/1/events",queryParameters:{},headers:{},data:n};return a.request(i,c)}}}function rt(t,e,o,r){if(!t||typeof t!="string")throw new Error("`appId` is missing.");if(!e||typeof e!="string")throw new Error("`apiKey` is missing.");if(o&&(typeof o!="string"||!N.includes(o)))throw new Error(`\`region\` must be one of the following: ${N.join(", ")}`);return V({appId:t,apiKey:e,region:o,timeouts:{connect:G,read:Q,write:B},requester:X(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:x(),requestsCache:x({serializable:!1}),hostsCache:v({caches:[H({key:`${A}-${t}`}),x()]}),...r})}export{A as apiClientVersion,rt as insightsClient}; | ||
function H(t,e,s="WithinHeaders"){let r={"x-algolia-api-key":e,"x-algolia-application-id":t};return{headers(){return s==="WithinHeaders"?r:{}},queryParameters(){return s==="WithinQueryParameters"?r:{}}}}function j(t){let e,s=`algolia-client-js-${t.key}`;function r(){return e===void 0&&(e=t.localStorage||window.localStorage),e}function n(){return JSON.parse(r().getItem(s)||"{}")}function u(o){r().setItem(s,JSON.stringify(o))}function p(){let o=t.timeToLive?t.timeToLive*1e3:null,a=n(),l=Object.fromEntries(Object.entries(a).filter(([,f])=>f.timestamp!==void 0));if(u(l),!o)return;let m=Object.fromEntries(Object.entries(l).filter(([,f])=>{let i=new Date().getTime();return!(f.timestamp+o<i)}));u(m)}return{get(o,a,l={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(p(),n()[JSON.stringify(o)])).then(m=>Promise.all([m?m.value:a(),m!==void 0])).then(([m,f])=>Promise.all([m,f||l.miss(m)])).then(([m])=>m)},set(o,a){return Promise.resolve().then(()=>{let l=n();return l[JSON.stringify(o)]={timestamp:new Date().getTime(),value:a},r().setItem(s,JSON.stringify(l)),a})},delete(o){return Promise.resolve().then(()=>{let a=n();delete a[JSON.stringify(o)],r().setItem(s,JSON.stringify(a))})},clear(){return Promise.resolve().then(()=>{r().removeItem(s)})}}}function Y(){return{get(t,e,s={miss:()=>Promise.resolve()}){return e().then(n=>Promise.all([n,s.miss(n)])).then(([n])=>n)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}function v(t){let e=[...t.caches],s=e.shift();return s===void 0?Y():{get(r,n,u={miss:()=>Promise.resolve()}){return s.get(r,n,u).catch(()=>v({caches:e}).get(r,n,u))},set(r,n){return s.set(r,n).catch(()=>v({caches:e}).set(r,n))},delete(r){return s.delete(r).catch(()=>v({caches:e}).delete(r))},clear(){return s.clear().catch(()=>v({caches:e}).clear())}}}function x(t={serializable:!0}){let e={};return{get(s,r,n={miss:()=>Promise.resolve()}){let u=JSON.stringify(s);if(u in e)return Promise.resolve(t.serializable?JSON.parse(e[u]):e[u]);let p=r();return p.then(o=>n.miss(o)).then(()=>p)},set(s,r){return e[JSON.stringify(s)]=t.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete(s){return delete e[JSON.stringify(s)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}var L=2*60*1e3;function W(t,e="up"){let s=Date.now();function r(){return e==="up"||Date.now()-s>L}function n(){return e==="timed out"&&Date.now()-s<=L}return{...t,status:e,lastUpdate:s,isUp:r,isTimedOut:n}}var J=class extends Error{name="AlgoliaError";constructor(t,e){super(t),e&&(this.name=e)}},$=class extends J{stackTrace;constructor(t,e,s){super(t,s),this.stackTrace=e}},Z=class extends ${constructor(t){super("Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError")}},b=class extends ${status;constructor(t,e,s,r="ApiError"){super(t,s,r),this.status=e}},ee=class extends J{response;constructor(t,e){super(t,"DeserializationError"),this.response=e}},te=class extends b{error;constructor(t,e,s,r){super(t,e,r,"DetailedApiError"),this.error=s}};function re(t,e,s){let r=se(s),n=`${t.protocol}://${t.url}${t.port?`:${t.port}`:""}/${e.charAt(0)==="/"?e.substring(1):e}`;return r.length&&(n+=`?${r}`),n}function se(t){return Object.keys(t).filter(e=>t[e]!==void 0).sort().map(e=>`${e}=${encodeURIComponent(Object.prototype.toString.call(t[e])==="[object Array]"?t[e].join(","):t[e]).replaceAll("+","%20")}`).join("&")}function oe(t,e){if(t.method==="GET"||t.data===void 0&&e.data===void 0)return;let s=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(s)}function ne(t,e,s){let r={Accept:"application/json",...t,...e,...s},n={};return Object.keys(r).forEach(u=>{let p=r[u];n[u.toLowerCase()]=p}),n}function ae(t){try{return JSON.parse(t.content)}catch(e){throw new ee(e.message,t)}}function ie({content:t,status:e},s){try{let r=JSON.parse(t);return"error"in r?new te(r.message,e,r.error,s):new b(r.message,e,s)}catch{}return new b(t,e,s)}function ce({isTimedOut:t,status:e}){return!t&&~~e===0}function ue({isTimedOut:t,status:e}){return t||ce({isTimedOut:t,status:e})||~~(e/100)!==2&&~~(e/100)!==4}function le({status:t}){return~~(t/100)===2}function me(t){return t.map(e=>M(e))}function M(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function z({hosts:t,hostsCache:e,baseHeaders:s,baseQueryParameters:r,algoliaAgent:n,timeouts:u,requester:p,requestsCache:o,responsesCache:a}){async function l(i){let c=await Promise.all(i.map(h=>e.get(h,()=>Promise.resolve(W(h))))),g=c.filter(h=>h.isUp()),P=c.filter(h=>h.isTimedOut()),R=[...g,...P];return{hosts:R.length>0?R:i,getTimeout(h,E){return(P.length===0&&h===0?1:P.length+3+h)*E}}}async function m(i,c,g=!0){let P=[],R=oe(i,c),y=ne(s,i.headers,c.headers),h=i.method==="GET"?{...i.data,...c.data}:{},E={...r,...i.queryParameters,...h};if(n.value&&(E["x-algolia-agent"]=n.value),c&&c.queryParameters)for(let d of Object.keys(c.queryParameters))!c.queryParameters[d]||Object.prototype.toString.call(c.queryParameters[d])==="[object Object]"?E[d]=c.queryParameters[d]:E[d]=c.queryParameters[d].toString();let O=0,D=async(d,q)=>{let w=d.pop();if(w===void 0)throw new Z(me(P));let S={...u,...c.timeouts},U={data:R,headers:y,method:i.method,url:re(w,i.path,E),connectTimeout:q(O,S.connect),responseTimeout:q(O,g?S.read:S.write)},_=C=>{let k={request:U,response:C,host:w,triesLeft:d.length};return P.push(k),k},T=await p.send(U);if(ue(T)){let C=_(T);return T.isTimedOut&&O++,console.log("Retryable failure",M(C)),await e.set(w,W(w,T.isTimedOut?"timed out":"down")),D(d,q)}if(le(T))return ae(T);throw _(T),ie(T,P)},V=t.filter(d=>d.accept==="readWrite"||(g?d.accept==="read":d.accept==="write")),I=await l(V);return D([...I.hosts].reverse(),I.getTimeout)}function f(i,c={}){let g=i.useReadTransporter||i.method==="GET";if(!g)return m(i,c,g);let P=()=>m(i,c);if((c.cacheable||i.cacheable)!==!0)return P();let y={request:i,requestOptions:c,transporter:{queryParameters:r,headers:s}};return a.get(y,()=>o.get(y,()=>o.set(y,P()).then(h=>Promise.all([o.delete(y),h]),h=>Promise.all([o.delete(y),Promise.reject(h)])).then(([h,E])=>E)),{miss:h=>a.set(y,h)})}return{hostsCache:e,requester:p,timeouts:u,algoliaAgent:n,baseHeaders:s,baseQueryParameters:r,hosts:t,request:f,requestsCache:o,responsesCache:a}}function he(t){let e={value:`Algolia for JavaScript (${t})`,add(s){let r=`; ${s.segment}${s.version!==void 0?` (${s.version})`:""}`;return e.value.indexOf(r)===-1&&(e.value=`${e.value}${r}`),e}};return e}function F({algoliaAgents:t,client:e,version:s}){let r=he(s).add({segment:e,version:s});return t.forEach(n=>r.add(n)),r}var G=1e3,Q=2e3,B=3e4;function X(){function t(e){return new Promise(s=>{let r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach(o=>r.setRequestHeader(o,e.headers[o]));let n=(o,a)=>setTimeout(()=>{r.abort(),s({status:0,content:a,isTimedOut:!0})},o),u=n(e.connectTimeout,"Connection timeout"),p;r.onreadystatechange=()=>{r.readyState>r.OPENED&&p===void 0&&(clearTimeout(u),p=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{r.status===0&&(clearTimeout(u),clearTimeout(p),s({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(u),clearTimeout(p),s({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)})}return{send:t}}var A="5.3.0",N=["de","us"];function pe(t){return[{url:t?"insights.{region}.algolia.io".replace("{region}",t):"insights.algolia.io",accept:"readWrite",protocol:"https"}]}function K({appId:t,apiKey:e,authMode:s,algoliaAgents:r,region:n,...u}){let p=H(t,e,s);return{transporter:z({hosts:pe(n),...u,algoliaAgent:F({algoliaAgents:r,client:"Insights",version:A}),baseHeaders:{"content-type":"text/plain",...p.headers(),...u.baseHeaders},baseQueryParameters:{...p.queryParameters(),...u.baseQueryParameters}}),appId:t,clearCache(){return Promise.all([this.transporter.requestsCache.clear(),this.transporter.responsesCache.clear()]).then(()=>{})},get _ua(){return this.transporter.algoliaAgent.value},addAlgoliaAgent(o,a){this.transporter.algoliaAgent.add({segment:o,version:a})},setClientApiKey({apiKey:o}){this.transporter.baseHeaders["x-algolia-api-key"]=o},customDelete({path:o,parameters:a},l){if(!o)throw new Error("Parameter `path` is required when calling `customDelete`.");let c={method:"DELETE",path:"/{path}".replace("{path}",o),queryParameters:a||{},headers:{}};return this.transporter.request(c,l)},customGet({path:o,parameters:a},l){if(!o)throw new Error("Parameter `path` is required when calling `customGet`.");let c={method:"GET",path:"/{path}".replace("{path}",o),queryParameters:a||{},headers:{}};return this.transporter.request(c,l)},customPost({path:o,parameters:a,body:l},m){if(!o)throw new Error("Parameter `path` is required when calling `customPost`.");let g={method:"POST",path:"/{path}".replace("{path}",o),queryParameters:a||{},headers:{},data:l||{}};return this.transporter.request(g,m)},customPut({path:o,parameters:a,body:l},m){if(!o)throw new Error("Parameter `path` is required when calling `customPut`.");let g={method:"PUT",path:"/{path}".replace("{path}",o),queryParameters:a||{},headers:{},data:l||{}};return this.transporter.request(g,m)},deleteUserToken({userToken:o},a){if(!o)throw new Error("Parameter `userToken` is required when calling `deleteUserToken`.");let i={method:"DELETE",path:"/1/usertokens/{userToken}".replace("{userToken}",encodeURIComponent(o)),queryParameters:{},headers:{}};return this.transporter.request(i,a)},pushEvents(o,a){if(!o)throw new Error("Parameter `insightsEvents` is required when calling `pushEvents`.");if(!o.events)throw new Error("Parameter `insightsEvents.events` is required when calling `pushEvents`.");let i={method:"POST",path:"/1/events",queryParameters:{},headers:{},data:o};return this.transporter.request(i,a)}}}function rt(t,e,s,r){if(!t||typeof t!="string")throw new Error("`appId` is missing.");if(!e||typeof e!="string")throw new Error("`apiKey` is missing.");if(s&&(typeof s!="string"||!N.includes(s)))throw new Error(`\`region\` must be one of the following: ${N.join(", ")}`);return K({appId:t,apiKey:e,region:s,timeouts:{connect:G,read:Q,write:B},requester:X(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:x(),requestsCache:x({serializable:!1}),hostsCache:v({caches:[j({key:`${A}-${t}`}),x()]}),...r})}export{A as apiClientVersion,rt as insightsClient}; | ||
//# sourceMappingURL=browser.min.js.map |
@@ -7,3 +7,3 @@ (function (global, factory) { | ||
function j(t,e,o="WithinHeaders"){let r={"x-algolia-api-key":e,"x-algolia-application-id":t};return {headers(){return o==="WithinHeaders"?r:{}},queryParameters(){return o==="WithinQueryParameters"?r:{}}}}function H(t){let e,o=`algolia-client-js-${t.key}`;function r(){return e===void 0&&(e=t.localStorage||window.localStorage),e}function s(){return JSON.parse(r().getItem(o)||"{}")}function m(a){r().setItem(o,JSON.stringify(a));}function d(){let a=t.timeToLive?t.timeToLive*1e3:null,n=s(),c=Object.fromEntries(Object.entries(n).filter(([,p])=>p.timestamp!==void 0));if(m(c),!a)return;let u=Object.fromEntries(Object.entries(c).filter(([,p])=>{let l=new Date().getTime();return !(p.timestamp+a<l)}));m(u);}return {get(a,n,c={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(d(),s()[JSON.stringify(a)])).then(u=>Promise.all([u?u.value:n(),u!==void 0])).then(([u,p])=>Promise.all([u,p||c.miss(u)])).then(([u])=>u)},set(a,n){return Promise.resolve().then(()=>{let c=s();return c[JSON.stringify(a)]={timestamp:new Date().getTime(),value:n},r().setItem(o,JSON.stringify(c)),n})},delete(a){return Promise.resolve().then(()=>{let n=s();delete n[JSON.stringify(a)],r().setItem(o,JSON.stringify(n));})},clear(){return Promise.resolve().then(()=>{r().removeItem(o);})}}}function Y(){return {get(t,e,o={miss:()=>Promise.resolve()}){return e().then(s=>Promise.all([s,o.miss(s)])).then(([s])=>s)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}function v(t){let e=[...t.caches],o=e.shift();return o===void 0?Y():{get(r,s,m={miss:()=>Promise.resolve()}){return o.get(r,s,m).catch(()=>v({caches:e}).get(r,s,m))},set(r,s){return o.set(r,s).catch(()=>v({caches:e}).set(r,s))},delete(r){return o.delete(r).catch(()=>v({caches:e}).delete(r))},clear(){return o.clear().catch(()=>v({caches:e}).clear())}}}function x(t={serializable:!0}){let e={};return {get(o,r,s={miss:()=>Promise.resolve()}){let m=JSON.stringify(o);if(m in e)return Promise.resolve(t.serializable?JSON.parse(e[m]):e[m]);let d=r();return d.then(a=>s.miss(a)).then(()=>d)},set(o,r){return e[JSON.stringify(o)]=t.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete(o){return delete e[JSON.stringify(o)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}var L=2*60*1e3;function W(t,e="up"){let o=Date.now();function r(){return e==="up"||Date.now()-o>L}function s(){return e==="timed out"&&Date.now()-o<=L}return {...t,status:e,lastUpdate:o,isUp:r,isTimedOut:s}}var J=class extends Error{name="AlgoliaError";constructor(t,e){super(t),e&&(this.name=e);}},$=class extends J{stackTrace;constructor(t,e,o){super(t,o),this.stackTrace=e;}},Z=class extends ${constructor(t){super("Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError");}},b=class extends ${status;constructor(t,e,o,r="ApiError"){super(t,o,r),this.status=e;}},ee=class extends J{response;constructor(t,e){super(t,"DeserializationError"),this.response=e;}},te=class extends b{error;constructor(t,e,o,r){super(t,e,r,"DetailedApiError"),this.error=o;}};function re(t,e,o){let r=oe(o),s=`${t.protocol}://${t.url}${t.port?`:${t.port}`:""}/${e.charAt(0)==="/"?e.substring(1):e}`;return r.length&&(s+=`?${r}`),s}function oe(t){return Object.keys(t).filter(e=>t[e]!==void 0).sort().map(e=>`${e}=${encodeURIComponent(Object.prototype.toString.call(t[e])==="[object Array]"?t[e].join(","):t[e]).replaceAll("+","%20")}`).join("&")}function se(t,e){if(t.method==="GET"||t.data===void 0&&e.data===void 0)return;let o=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(o)}function ne(t,e,o){let r={Accept:"application/json",...t,...e,...o},s={};return Object.keys(r).forEach(m=>{let d=r[m];s[m.toLowerCase()]=d;}),s}function ae(t){try{return JSON.parse(t.content)}catch(e){throw new ee(e.message,t)}}function ie({content:t,status:e},o){try{let r=JSON.parse(t);return "error"in r?new te(r.message,e,r.error,o):new b(r.message,e,o)}catch{}return new b(t,e,o)}function ce({isTimedOut:t,status:e}){return !t&&~~e===0}function ue({isTimedOut:t,status:e}){return t||ce({isTimedOut:t,status:e})||~~(e/100)!==2&&~~(e/100)!==4}function le({status:t}){return ~~(t/100)===2}function me(t){return t.map(e=>M(e))}function M(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return {...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function z({hosts:t,hostsCache:e,baseHeaders:o,baseQueryParameters:r,algoliaAgent:s,timeouts:m,requester:d,requestsCache:a,responsesCache:n}){async function c(l){let i=await Promise.all(l.map(h=>e.get(h,()=>Promise.resolve(W(h))))),P=i.filter(h=>h.isUp()),f=i.filter(h=>h.isTimedOut()),R=[...P,...f];return {hosts:R.length>0?R:l,getTimeout(h,y){return (f.length===0&&h===0?1:f.length+3+h)*y}}}async function u(l,i,P=!0){let f=[],R=se(l,i),E=ne(o,l.headers,i.headers),h=l.method==="GET"?{...l.data,...i.data}:{},y={...r,...l.queryParameters,...h};if(s.value&&(y["x-algolia-agent"]=s.value),i&&i.queryParameters)for(let g of Object.keys(i.queryParameters))!i.queryParameters[g]||Object.prototype.toString.call(i.queryParameters[g])==="[object Object]"?y[g]=i.queryParameters[g]:y[g]=i.queryParameters[g].toString();let O=0,D=async(g,q)=>{let w=g.pop();if(w===void 0)throw new Z(me(f));let S={...m,...i.timeouts},U={data:R,headers:E,method:l.method,url:re(w,l.path,y),connectTimeout:q(O,S.connect),responseTimeout:q(O,P?S.read:S.write)},_=C=>{let k={request:U,response:C,host:w,triesLeft:g.length};return f.push(k),k},T=await d.send(U);if(ue(T)){let C=_(T);return T.isTimedOut&&O++,console.log("Retryable failure",M(C)),await e.set(w,W(w,T.isTimedOut?"timed out":"down")),D(g,q)}if(le(T))return ae(T);throw _(T),ie(T,f)},K=t.filter(g=>g.accept==="readWrite"||(P?g.accept==="read":g.accept==="write")),I=await c(K);return D([...I.hosts].reverse(),I.getTimeout)}function p(l,i={}){let P=l.useReadTransporter||l.method==="GET";if(!P)return u(l,i,P);let f=()=>u(l,i);if((i.cacheable||l.cacheable)!==!0)return f();let E={request:l,requestOptions:i,transporter:{queryParameters:r,headers:o}};return n.get(E,()=>a.get(E,()=>a.set(E,f()).then(h=>Promise.all([a.delete(E),h]),h=>Promise.all([a.delete(E),Promise.reject(h)])).then(([h,y])=>y)),{miss:h=>n.set(E,h)})}return {hostsCache:e,requester:d,timeouts:m,algoliaAgent:s,baseHeaders:o,baseQueryParameters:r,hosts:t,request:p,requestsCache:a,responsesCache:n}}function he(t){let e={value:`Algolia for JavaScript (${t})`,add(o){let r=`; ${o.segment}${o.version!==void 0?` (${o.version})`:""}`;return e.value.indexOf(r)===-1&&(e.value=`${e.value}${r}`),e}};return e}function F({algoliaAgents:t,client:e,version:o}){let r=he(o).add({segment:e,version:o});return t.forEach(s=>r.add(s)),r}var G=1e3,Q=2e3,B=3e4;function X(){function t(e){return new Promise(o=>{let r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach(a=>r.setRequestHeader(a,e.headers[a]));let s=(a,n)=>setTimeout(()=>{r.abort(),o({status:0,content:n,isTimedOut:!0});},a),m=s(e.connectTimeout,"Connection timeout"),d;r.onreadystatechange=()=>{r.readyState>r.OPENED&&d===void 0&&(clearTimeout(m),d=s(e.responseTimeout,"Socket timeout"));},r.onerror=()=>{r.status===0&&(clearTimeout(m),clearTimeout(d),o({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}));},r.onload=()=>{clearTimeout(m),clearTimeout(d),o({content:r.responseText,status:r.status,isTimedOut:!1});},r.send(e.data);})}return {send:t}}var A="5.2.5",N=["de","us"];function de(t){return [{url:t?"insights.{region}.algolia.io".replace("{region}",t):"insights.algolia.io",accept:"readWrite",protocol:"https"}]}function V({appId:t,apiKey:e,authMode:o,algoliaAgents:r,region:s,...m}){let d=j(t,e,o),a=z({hosts:de(s),...m,algoliaAgent:F({algoliaAgents:r,client:"Insights",version:A}),baseHeaders:{"content-type":"text/plain",...d.headers(),...m.baseHeaders},baseQueryParameters:{...d.queryParameters(),...m.baseQueryParameters}});return {transporter:a,appId:t,clearCache(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then(()=>{})},get _ua(){return a.algoliaAgent.value},addAlgoliaAgent(n,c){a.algoliaAgent.add({segment:n,version:c});},customDelete({path:n,parameters:c},u){if(!n)throw new Error("Parameter `path` is required when calling `customDelete`.");let P={method:"DELETE",path:"/{path}".replace("{path}",n),queryParameters:c||{},headers:{}};return a.request(P,u)},customGet({path:n,parameters:c},u){if(!n)throw new Error("Parameter `path` is required when calling `customGet`.");let P={method:"GET",path:"/{path}".replace("{path}",n),queryParameters:c||{},headers:{}};return a.request(P,u)},customPost({path:n,parameters:c,body:u},p){if(!n)throw new Error("Parameter `path` is required when calling `customPost`.");let f={method:"POST",path:"/{path}".replace("{path}",n),queryParameters:c||{},headers:{},data:u||{}};return a.request(f,p)},customPut({path:n,parameters:c,body:u},p){if(!n)throw new Error("Parameter `path` is required when calling `customPut`.");let f={method:"PUT",path:"/{path}".replace("{path}",n),queryParameters:c||{},headers:{},data:u||{}};return a.request(f,p)},deleteUserToken({userToken:n},c){if(!n)throw new Error("Parameter `userToken` is required when calling `deleteUserToken`.");let i={method:"DELETE",path:"/1/usertokens/{userToken}".replace("{userToken}",encodeURIComponent(n)),queryParameters:{},headers:{}};return a.request(i,c)},pushEvents(n,c){if(!n)throw new Error("Parameter `insightsEvents` is required when calling `pushEvents`.");if(!n.events)throw new Error("Parameter `insightsEvents.events` is required when calling `pushEvents`.");let i={method:"POST",path:"/1/events",queryParameters:{},headers:{},data:n};return a.request(i,c)}}}function rt(t,e,o,r){if(!t||typeof t!="string")throw new Error("`appId` is missing.");if(!e||typeof e!="string")throw new Error("`apiKey` is missing.");if(o&&(typeof o!="string"||!N.includes(o)))throw new Error(`\`region\` must be one of the following: ${N.join(", ")}`);return V({appId:t,apiKey:e,region:o,timeouts:{connect:G,read:Q,write:B},requester:X(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:x(),requestsCache:x({serializable:!1}),hostsCache:v({caches:[H({key:`${A}-${t}`}),x()]}),...r})} | ||
function H(t,e,s="WithinHeaders"){let r={"x-algolia-api-key":e,"x-algolia-application-id":t};return {headers(){return s==="WithinHeaders"?r:{}},queryParameters(){return s==="WithinQueryParameters"?r:{}}}}function j(t){let e,s=`algolia-client-js-${t.key}`;function r(){return e===void 0&&(e=t.localStorage||window.localStorage),e}function n(){return JSON.parse(r().getItem(s)||"{}")}function u(o){r().setItem(s,JSON.stringify(o));}function p(){let o=t.timeToLive?t.timeToLive*1e3:null,a=n(),l=Object.fromEntries(Object.entries(a).filter(([,f])=>f.timestamp!==void 0));if(u(l),!o)return;let m=Object.fromEntries(Object.entries(l).filter(([,f])=>{let i=new Date().getTime();return !(f.timestamp+o<i)}));u(m);}return {get(o,a,l={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(p(),n()[JSON.stringify(o)])).then(m=>Promise.all([m?m.value:a(),m!==void 0])).then(([m,f])=>Promise.all([m,f||l.miss(m)])).then(([m])=>m)},set(o,a){return Promise.resolve().then(()=>{let l=n();return l[JSON.stringify(o)]={timestamp:new Date().getTime(),value:a},r().setItem(s,JSON.stringify(l)),a})},delete(o){return Promise.resolve().then(()=>{let a=n();delete a[JSON.stringify(o)],r().setItem(s,JSON.stringify(a));})},clear(){return Promise.resolve().then(()=>{r().removeItem(s);})}}}function Y(){return {get(t,e,s={miss:()=>Promise.resolve()}){return e().then(n=>Promise.all([n,s.miss(n)])).then(([n])=>n)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}function v(t){let e=[...t.caches],s=e.shift();return s===void 0?Y():{get(r,n,u={miss:()=>Promise.resolve()}){return s.get(r,n,u).catch(()=>v({caches:e}).get(r,n,u))},set(r,n){return s.set(r,n).catch(()=>v({caches:e}).set(r,n))},delete(r){return s.delete(r).catch(()=>v({caches:e}).delete(r))},clear(){return s.clear().catch(()=>v({caches:e}).clear())}}}function x(t={serializable:!0}){let e={};return {get(s,r,n={miss:()=>Promise.resolve()}){let u=JSON.stringify(s);if(u in e)return Promise.resolve(t.serializable?JSON.parse(e[u]):e[u]);let p=r();return p.then(o=>n.miss(o)).then(()=>p)},set(s,r){return e[JSON.stringify(s)]=t.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete(s){return delete e[JSON.stringify(s)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}var L=2*60*1e3;function W(t,e="up"){let s=Date.now();function r(){return e==="up"||Date.now()-s>L}function n(){return e==="timed out"&&Date.now()-s<=L}return {...t,status:e,lastUpdate:s,isUp:r,isTimedOut:n}}var J=class extends Error{name="AlgoliaError";constructor(t,e){super(t),e&&(this.name=e);}},$=class extends J{stackTrace;constructor(t,e,s){super(t,s),this.stackTrace=e;}},Z=class extends ${constructor(t){super("Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError");}},b=class extends ${status;constructor(t,e,s,r="ApiError"){super(t,s,r),this.status=e;}},ee=class extends J{response;constructor(t,e){super(t,"DeserializationError"),this.response=e;}},te=class extends b{error;constructor(t,e,s,r){super(t,e,r,"DetailedApiError"),this.error=s;}};function re(t,e,s){let r=se(s),n=`${t.protocol}://${t.url}${t.port?`:${t.port}`:""}/${e.charAt(0)==="/"?e.substring(1):e}`;return r.length&&(n+=`?${r}`),n}function se(t){return Object.keys(t).filter(e=>t[e]!==void 0).sort().map(e=>`${e}=${encodeURIComponent(Object.prototype.toString.call(t[e])==="[object Array]"?t[e].join(","):t[e]).replaceAll("+","%20")}`).join("&")}function oe(t,e){if(t.method==="GET"||t.data===void 0&&e.data===void 0)return;let s=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(s)}function ne(t,e,s){let r={Accept:"application/json",...t,...e,...s},n={};return Object.keys(r).forEach(u=>{let p=r[u];n[u.toLowerCase()]=p;}),n}function ae(t){try{return JSON.parse(t.content)}catch(e){throw new ee(e.message,t)}}function ie({content:t,status:e},s){try{let r=JSON.parse(t);return "error"in r?new te(r.message,e,r.error,s):new b(r.message,e,s)}catch{}return new b(t,e,s)}function ce({isTimedOut:t,status:e}){return !t&&~~e===0}function ue({isTimedOut:t,status:e}){return t||ce({isTimedOut:t,status:e})||~~(e/100)!==2&&~~(e/100)!==4}function le({status:t}){return ~~(t/100)===2}function me(t){return t.map(e=>M(e))}function M(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return {...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function z({hosts:t,hostsCache:e,baseHeaders:s,baseQueryParameters:r,algoliaAgent:n,timeouts:u,requester:p,requestsCache:o,responsesCache:a}){async function l(i){let c=await Promise.all(i.map(h=>e.get(h,()=>Promise.resolve(W(h))))),g=c.filter(h=>h.isUp()),P=c.filter(h=>h.isTimedOut()),R=[...g,...P];return {hosts:R.length>0?R:i,getTimeout(h,E){return (P.length===0&&h===0?1:P.length+3+h)*E}}}async function m(i,c,g=!0){let P=[],R=oe(i,c),y=ne(s,i.headers,c.headers),h=i.method==="GET"?{...i.data,...c.data}:{},E={...r,...i.queryParameters,...h};if(n.value&&(E["x-algolia-agent"]=n.value),c&&c.queryParameters)for(let d of Object.keys(c.queryParameters))!c.queryParameters[d]||Object.prototype.toString.call(c.queryParameters[d])==="[object Object]"?E[d]=c.queryParameters[d]:E[d]=c.queryParameters[d].toString();let O=0,D=async(d,q)=>{let w=d.pop();if(w===void 0)throw new Z(me(P));let S={...u,...c.timeouts},U={data:R,headers:y,method:i.method,url:re(w,i.path,E),connectTimeout:q(O,S.connect),responseTimeout:q(O,g?S.read:S.write)},_=C=>{let k={request:U,response:C,host:w,triesLeft:d.length};return P.push(k),k},T=await p.send(U);if(ue(T)){let C=_(T);return T.isTimedOut&&O++,console.log("Retryable failure",M(C)),await e.set(w,W(w,T.isTimedOut?"timed out":"down")),D(d,q)}if(le(T))return ae(T);throw _(T),ie(T,P)},V=t.filter(d=>d.accept==="readWrite"||(g?d.accept==="read":d.accept==="write")),I=await l(V);return D([...I.hosts].reverse(),I.getTimeout)}function f(i,c={}){let g=i.useReadTransporter||i.method==="GET";if(!g)return m(i,c,g);let P=()=>m(i,c);if((c.cacheable||i.cacheable)!==!0)return P();let y={request:i,requestOptions:c,transporter:{queryParameters:r,headers:s}};return a.get(y,()=>o.get(y,()=>o.set(y,P()).then(h=>Promise.all([o.delete(y),h]),h=>Promise.all([o.delete(y),Promise.reject(h)])).then(([h,E])=>E)),{miss:h=>a.set(y,h)})}return {hostsCache:e,requester:p,timeouts:u,algoliaAgent:n,baseHeaders:s,baseQueryParameters:r,hosts:t,request:f,requestsCache:o,responsesCache:a}}function he(t){let e={value:`Algolia for JavaScript (${t})`,add(s){let r=`; ${s.segment}${s.version!==void 0?` (${s.version})`:""}`;return e.value.indexOf(r)===-1&&(e.value=`${e.value}${r}`),e}};return e}function F({algoliaAgents:t,client:e,version:s}){let r=he(s).add({segment:e,version:s});return t.forEach(n=>r.add(n)),r}var G=1e3,Q=2e3,B=3e4;function X(){function t(e){return new Promise(s=>{let r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach(o=>r.setRequestHeader(o,e.headers[o]));let n=(o,a)=>setTimeout(()=>{r.abort(),s({status:0,content:a,isTimedOut:!0});},o),u=n(e.connectTimeout,"Connection timeout"),p;r.onreadystatechange=()=>{r.readyState>r.OPENED&&p===void 0&&(clearTimeout(u),p=n(e.responseTimeout,"Socket timeout"));},r.onerror=()=>{r.status===0&&(clearTimeout(u),clearTimeout(p),s({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}));},r.onload=()=>{clearTimeout(u),clearTimeout(p),s({content:r.responseText,status:r.status,isTimedOut:!1});},r.send(e.data);})}return {send:t}}var A="5.3.0",N=["de","us"];function pe(t){return [{url:t?"insights.{region}.algolia.io".replace("{region}",t):"insights.algolia.io",accept:"readWrite",protocol:"https"}]}function K({appId:t,apiKey:e,authMode:s,algoliaAgents:r,region:n,...u}){let p=H(t,e,s);return {transporter:z({hosts:pe(n),...u,algoliaAgent:F({algoliaAgents:r,client:"Insights",version:A}),baseHeaders:{"content-type":"text/plain",...p.headers(),...u.baseHeaders},baseQueryParameters:{...p.queryParameters(),...u.baseQueryParameters}}),appId:t,clearCache(){return Promise.all([this.transporter.requestsCache.clear(),this.transporter.responsesCache.clear()]).then(()=>{})},get _ua(){return this.transporter.algoliaAgent.value},addAlgoliaAgent(o,a){this.transporter.algoliaAgent.add({segment:o,version:a});},setClientApiKey({apiKey:o}){this.transporter.baseHeaders["x-algolia-api-key"]=o;},customDelete({path:o,parameters:a},l){if(!o)throw new Error("Parameter `path` is required when calling `customDelete`.");let c={method:"DELETE",path:"/{path}".replace("{path}",o),queryParameters:a||{},headers:{}};return this.transporter.request(c,l)},customGet({path:o,parameters:a},l){if(!o)throw new Error("Parameter `path` is required when calling `customGet`.");let c={method:"GET",path:"/{path}".replace("{path}",o),queryParameters:a||{},headers:{}};return this.transporter.request(c,l)},customPost({path:o,parameters:a,body:l},m){if(!o)throw new Error("Parameter `path` is required when calling `customPost`.");let g={method:"POST",path:"/{path}".replace("{path}",o),queryParameters:a||{},headers:{},data:l||{}};return this.transporter.request(g,m)},customPut({path:o,parameters:a,body:l},m){if(!o)throw new Error("Parameter `path` is required when calling `customPut`.");let g={method:"PUT",path:"/{path}".replace("{path}",o),queryParameters:a||{},headers:{},data:l||{}};return this.transporter.request(g,m)},deleteUserToken({userToken:o},a){if(!o)throw new Error("Parameter `userToken` is required when calling `deleteUserToken`.");let i={method:"DELETE",path:"/1/usertokens/{userToken}".replace("{userToken}",encodeURIComponent(o)),queryParameters:{},headers:{}};return this.transporter.request(i,a)},pushEvents(o,a){if(!o)throw new Error("Parameter `insightsEvents` is required when calling `pushEvents`.");if(!o.events)throw new Error("Parameter `insightsEvents.events` is required when calling `pushEvents`.");let i={method:"POST",path:"/1/events",queryParameters:{},headers:{},data:o};return this.transporter.request(i,a)}}}function rt(t,e,s,r){if(!t||typeof t!="string")throw new Error("`appId` is missing.");if(!e||typeof e!="string")throw new Error("`apiKey` is missing.");if(s&&(typeof s!="string"||!N.includes(s)))throw new Error(`\`region\` must be one of the following: ${N.join(", ")}`);return K({appId:t,apiKey:e,region:s,timeouts:{connect:G,read:Q,write:B},requester:X(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:x(),requestsCache:x({serializable:!1}),hostsCache:v({caches:[j({key:`${A}-${t}`}),x()]}),...r})} | ||
@@ -10,0 +10,0 @@ exports.apiClientVersion = A; |
@@ -13,3 +13,3 @@ // builds/node.ts | ||
import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common"; | ||
var apiClientVersion = "5.2.5"; | ||
var apiClientVersion = "5.3.0"; | ||
var REGIONS = ["de", "us"]; | ||
@@ -29,22 +29,21 @@ function getDefaultHosts(region) { | ||
const auth = createAuth(appIdOption, apiKeyOption, authMode); | ||
const transporter = createTransporter({ | ||
hosts: getDefaultHosts(regionOption), | ||
...options, | ||
algoliaAgent: getAlgoliaAgent({ | ||
algoliaAgents, | ||
client: "Insights", | ||
version: apiClientVersion | ||
return { | ||
transporter: createTransporter({ | ||
hosts: getDefaultHosts(regionOption), | ||
...options, | ||
algoliaAgent: getAlgoliaAgent({ | ||
algoliaAgents, | ||
client: "Insights", | ||
version: apiClientVersion | ||
}), | ||
baseHeaders: { | ||
"content-type": "text/plain", | ||
...auth.headers(), | ||
...options.baseHeaders | ||
}, | ||
baseQueryParameters: { | ||
...auth.queryParameters(), | ||
...options.baseQueryParameters | ||
} | ||
}), | ||
baseHeaders: { | ||
"content-type": "text/plain", | ||
...auth.headers(), | ||
...options.baseHeaders | ||
}, | ||
baseQueryParameters: { | ||
...auth.queryParameters(), | ||
...options.baseQueryParameters | ||
} | ||
}); | ||
return { | ||
transporter, | ||
/** | ||
@@ -58,3 +57,5 @@ * The `appId` currently in use. | ||
clearCache() { | ||
return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => void 0); | ||
return Promise.all([this.transporter.requestsCache.clear(), this.transporter.responsesCache.clear()]).then( | ||
() => void 0 | ||
); | ||
}, | ||
@@ -65,3 +66,3 @@ /** | ||
get _ua() { | ||
return transporter.algoliaAgent.value; | ||
return this.transporter.algoliaAgent.value; | ||
}, | ||
@@ -75,5 +76,14 @@ /** | ||
addAlgoliaAgent(segment, version) { | ||
transporter.algoliaAgent.add({ segment, version }); | ||
this.transporter.algoliaAgent.add({ segment, version }); | ||
}, | ||
/** | ||
* Helper method to switch the API key used to authenticate the requests. | ||
* | ||
* @param params - Method params. | ||
* @param params.apiKey - The new API Key to use. | ||
*/ | ||
setClientApiKey({ apiKey }) { | ||
this.transporter.baseHeaders["x-algolia-api-key"] = apiKey; | ||
}, | ||
/** | ||
* This method allow you to send requests to the Algolia REST API. | ||
@@ -99,3 +109,3 @@ * | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -123,3 +133,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -149,3 +159,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -175,3 +185,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -198,3 +208,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -224,3 +234,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
} | ||
@@ -227,0 +237,0 @@ }; |
import * as _algolia_client_common from '@algolia/client-common'; | ||
import { ClientOptions } from '@algolia/client-common'; | ||
import { CreateClientOptions, RequestOptions, ClientOptions } from '@algolia/client-common'; | ||
/** | ||
* Properties for the `customDelete` method. | ||
*/ | ||
type CustomDeleteProps = { | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
*/ | ||
path: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
*/ | ||
parameters?: Record<string, any>; | ||
}; | ||
/** | ||
* Properties for the `customGet` method. | ||
*/ | ||
type CustomGetProps = { | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
*/ | ||
path: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
*/ | ||
parameters?: Record<string, any>; | ||
}; | ||
/** | ||
* Properties for the `customPost` method. | ||
*/ | ||
type CustomPostProps = { | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
*/ | ||
path: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
*/ | ||
parameters?: Record<string, any>; | ||
/** | ||
* Parameters to send with the custom request. | ||
*/ | ||
body?: Record<string, unknown>; | ||
}; | ||
/** | ||
* Properties for the `customPut` method. | ||
*/ | ||
type CustomPutProps = { | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
*/ | ||
path: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
*/ | ||
parameters?: Record<string, any>; | ||
/** | ||
* Parameters to send with the custom request. | ||
*/ | ||
body?: Record<string, unknown>; | ||
}; | ||
/** | ||
* Properties for the `deleteUserToken` method. | ||
*/ | ||
type DeleteUserTokenProps = { | ||
/** | ||
* User token for which to delete all associated events. | ||
*/ | ||
userToken: string; | ||
}; | ||
/** | ||
* The response of the Insights API. | ||
*/ | ||
type EventsResponse = { | ||
/** | ||
* Details about the response, such as error messages. | ||
*/ | ||
message?: string; | ||
/** | ||
* The HTTP status code of the response. | ||
*/ | ||
status?: number; | ||
}; | ||
type AddToCartEvent = 'addToCart'; | ||
@@ -328,9 +412,2 @@ | ||
/** | ||
* Error. | ||
*/ | ||
type ErrorBase = Record<string, any> & { | ||
message?: string; | ||
}; | ||
type PurchaseEvent = 'purchase'; | ||
@@ -486,16 +563,2 @@ | ||
/** | ||
* The response of the Insights API. | ||
*/ | ||
type EventsResponse = { | ||
/** | ||
* Details about the response, such as error messages. | ||
*/ | ||
message?: string; | ||
/** | ||
* The HTTP status code of the response. | ||
*/ | ||
status?: number; | ||
}; | ||
type InsightsEvents = { | ||
@@ -508,94 +571,103 @@ /** | ||
/** | ||
* Properties for the `customDelete` method. | ||
*/ | ||
type CustomDeleteProps = { | ||
declare const apiClientVersion = "5.3.0"; | ||
declare const REGIONS: readonly ["de", "us"]; | ||
type Region = (typeof REGIONS)[number]; | ||
declare function createInsightsClient({ appId: appIdOption, apiKey: apiKeyOption, authMode, algoliaAgents, region: regionOption, ...options }: CreateClientOptions & { | ||
region?: Region; | ||
}): { | ||
transporter: _algolia_client_common.Transporter; | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
* The `appId` currently in use. | ||
*/ | ||
path: string; | ||
appId: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
* Clears the cache of the transporter for the `requestsCache` and `responsesCache` properties. | ||
*/ | ||
parameters?: Record<string, any>; | ||
}; | ||
/** | ||
* Properties for the `customGet` method. | ||
*/ | ||
type CustomGetProps = { | ||
clearCache(): Promise<void>; | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
* Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system. | ||
*/ | ||
path: string; | ||
readonly _ua: string; | ||
/** | ||
* Query parameters to apply to the current query. | ||
* Adds a `segment` to the `x-algolia-agent` sent with every requests. | ||
* | ||
* @param segment - The algolia agent (user-agent) segment to add. | ||
* @param version - The version of the agent. | ||
*/ | ||
parameters?: Record<string, any>; | ||
}; | ||
/** | ||
* Properties for the `customPost` method. | ||
*/ | ||
type CustomPostProps = { | ||
addAlgoliaAgent(segment: string, version?: string): void; | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
* Helper method to switch the API key used to authenticate the requests. | ||
* | ||
* @param params - Method params. | ||
* @param params.apiKey - The new API Key to use. | ||
*/ | ||
path: string; | ||
setClientApiKey({ apiKey }: { | ||
apiKey: string; | ||
}): void; | ||
/** | ||
* Query parameters to apply to the current query. | ||
* This method allow you to send requests to the Algolia REST API. | ||
* | ||
* @param customDelete - The customDelete object. | ||
* @param customDelete.path - Path of the endpoint, anything after \"/1\" must be specified. | ||
* @param customDelete.parameters - Query parameters to apply to the current query. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
parameters?: Record<string, any>; | ||
customDelete({ path, parameters }: CustomDeleteProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>>; | ||
/** | ||
* Parameters to send with the custom request. | ||
* This method allow you to send requests to the Algolia REST API. | ||
* | ||
* @param customGet - The customGet object. | ||
* @param customGet.path - Path of the endpoint, anything after \"/1\" must be specified. | ||
* @param customGet.parameters - Query parameters to apply to the current query. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
body?: Record<string, unknown>; | ||
}; | ||
/** | ||
* Properties for the `customPut` method. | ||
*/ | ||
type CustomPutProps = { | ||
customGet({ path, parameters }: CustomGetProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>>; | ||
/** | ||
* Path of the endpoint, anything after \"/1\" must be specified. | ||
* This method allow you to send requests to the Algolia REST API. | ||
* | ||
* @param customPost - The customPost object. | ||
* @param customPost.path - Path of the endpoint, anything after \"/1\" must be specified. | ||
* @param customPost.parameters - Query parameters to apply to the current query. | ||
* @param customPost.body - Parameters to send with the custom request. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
path: string; | ||
customPost({ path, parameters, body }: CustomPostProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>>; | ||
/** | ||
* Query parameters to apply to the current query. | ||
* This method allow you to send requests to the Algolia REST API. | ||
* | ||
* @param customPut - The customPut object. | ||
* @param customPut.path - Path of the endpoint, anything after \"/1\" must be specified. | ||
* @param customPut.parameters - Query parameters to apply to the current query. | ||
* @param customPut.body - Parameters to send with the custom request. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
parameters?: Record<string, any>; | ||
customPut({ path, parameters, body }: CustomPutProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>>; | ||
/** | ||
* Parameters to send with the custom request. | ||
* Deletes all events related to the specified user token from events metrics and analytics. The deletion is asynchronous, and processed within 48 hours. To delete a personalization user profile, see `Delete a user profile` in the Personalization API. | ||
* | ||
* @param deleteUserToken - The deleteUserToken object. | ||
* @param deleteUserToken.userToken - User token for which to delete all associated events. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
body?: Record<string, unknown>; | ||
}; | ||
/** | ||
* Properties for the `deleteUserToken` method. | ||
*/ | ||
type DeleteUserTokenProps = { | ||
deleteUserToken({ userToken }: DeleteUserTokenProps, requestOptions?: RequestOptions): Promise<void>; | ||
/** | ||
* User token for which to delete all associated events. | ||
* Sends a list of events to the Insights API. You can include up to 1,000 events in a single request, but the request body must be smaller than 2 MB. | ||
* | ||
* @param insightsEvents - The insightsEvents object. | ||
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions. | ||
*/ | ||
userToken: string; | ||
pushEvents(insightsEvents: InsightsEvents, requestOptions?: RequestOptions): Promise<EventsResponse>; | ||
}; | ||
declare const apiClientVersion = "5.2.5"; | ||
declare const REGIONS: readonly ["de", "us"]; | ||
type Region = (typeof REGIONS)[number]; | ||
/** | ||
* The client type. | ||
* Error. | ||
*/ | ||
type InsightsClient = ReturnType<typeof insightsClient>; | ||
declare function insightsClient(appId: string, apiKey: string, region?: Region, options?: ClientOptions): { | ||
transporter: _algolia_client_common.Transporter; | ||
appId: string; | ||
clearCache(): Promise<void>; | ||
_ua: string; | ||
addAlgoliaAgent(segment: string, version?: string): void; | ||
customDelete({ path, parameters }: CustomDeleteProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<Record<string, unknown>>; | ||
customGet({ path, parameters }: CustomGetProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<Record<string, unknown>>; | ||
customPost({ path, parameters, body }: CustomPostProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<Record<string, unknown>>; | ||
customPut({ path, parameters, body }: CustomPutProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<Record<string, unknown>>; | ||
deleteUserToken({ userToken }: DeleteUserTokenProps, requestOptions?: _algolia_client_common.RequestOptions): Promise<void>; | ||
pushEvents(insightsEvents: InsightsEvents, requestOptions?: _algolia_client_common.RequestOptions): Promise<EventsResponse>; | ||
type ErrorBase = Record<string, any> & { | ||
message?: string; | ||
}; | ||
type InsightsClient = ReturnType<typeof createInsightsClient>; | ||
declare function insightsClient(appId: string, apiKey: string, region?: Region, options?: ClientOptions): InsightsClient; | ||
export { type AddToCartEvent, type AddedToCartObjectIDs, type AddedToCartObjectIDsAfterSearch, type ClickEvent, type ClickedFilters, type ClickedObjectIDs, type ClickedObjectIDsAfterSearch, type ConversionEvent, type ConvertedFilters, type ConvertedObjectIDs, type ConvertedObjectIDsAfterSearch, type CustomDeleteProps, type CustomGetProps, type CustomPostProps, type CustomPutProps, type DeleteUserTokenProps, type Discount, type ErrorBase, type EventsItems, type EventsResponse, type InsightsClient, type InsightsEvents, type ObjectData, type ObjectDataAfterSearch, type Price, type PurchaseEvent, type PurchasedObjectIDs, type PurchasedObjectIDsAfterSearch, type Region, type Value, type ViewEvent, type ViewedFilters, type ViewedObjectIDs, apiClientVersion, insightsClient }; |
// src/insightsClient.ts | ||
import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common"; | ||
var apiClientVersion = "5.2.5"; | ||
var apiClientVersion = "5.3.0"; | ||
var REGIONS = ["de", "us"]; | ||
@@ -18,22 +18,21 @@ function getDefaultHosts(region) { | ||
const auth = createAuth(appIdOption, apiKeyOption, authMode); | ||
const transporter = createTransporter({ | ||
hosts: getDefaultHosts(regionOption), | ||
...options, | ||
algoliaAgent: getAlgoliaAgent({ | ||
algoliaAgents, | ||
client: "Insights", | ||
version: apiClientVersion | ||
return { | ||
transporter: createTransporter({ | ||
hosts: getDefaultHosts(regionOption), | ||
...options, | ||
algoliaAgent: getAlgoliaAgent({ | ||
algoliaAgents, | ||
client: "Insights", | ||
version: apiClientVersion | ||
}), | ||
baseHeaders: { | ||
"content-type": "text/plain", | ||
...auth.headers(), | ||
...options.baseHeaders | ||
}, | ||
baseQueryParameters: { | ||
...auth.queryParameters(), | ||
...options.baseQueryParameters | ||
} | ||
}), | ||
baseHeaders: { | ||
"content-type": "text/plain", | ||
...auth.headers(), | ||
...options.baseHeaders | ||
}, | ||
baseQueryParameters: { | ||
...auth.queryParameters(), | ||
...options.baseQueryParameters | ||
} | ||
}); | ||
return { | ||
transporter, | ||
/** | ||
@@ -47,3 +46,5 @@ * The `appId` currently in use. | ||
clearCache() { | ||
return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => void 0); | ||
return Promise.all([this.transporter.requestsCache.clear(), this.transporter.responsesCache.clear()]).then( | ||
() => void 0 | ||
); | ||
}, | ||
@@ -54,3 +55,3 @@ /** | ||
get _ua() { | ||
return transporter.algoliaAgent.value; | ||
return this.transporter.algoliaAgent.value; | ||
}, | ||
@@ -64,5 +65,14 @@ /** | ||
addAlgoliaAgent(segment, version) { | ||
transporter.algoliaAgent.add({ segment, version }); | ||
this.transporter.algoliaAgent.add({ segment, version }); | ||
}, | ||
/** | ||
* Helper method to switch the API key used to authenticate the requests. | ||
* | ||
* @param params - Method params. | ||
* @param params.apiKey - The new API Key to use. | ||
*/ | ||
setClientApiKey({ apiKey }) { | ||
this.transporter.baseHeaders["x-algolia-api-key"] = apiKey; | ||
}, | ||
/** | ||
* This method allow you to send requests to the Algolia REST API. | ||
@@ -88,3 +98,3 @@ * | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -112,3 +122,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -138,3 +148,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -164,3 +174,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -187,3 +197,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
}, | ||
@@ -213,3 +223,3 @@ /** | ||
}; | ||
return transporter.request(request, requestOptions); | ||
return this.transporter.request(request, requestOptions); | ||
} | ||
@@ -216,0 +226,0 @@ }; |
{ | ||
"version": "5.2.5", | ||
"version": "5.3.0", | ||
"repository": { | ||
@@ -47,5 +47,5 @@ "type": "git", | ||
"dependencies": { | ||
"@algolia/client-common": "5.2.5", | ||
"@algolia/requester-browser-xhr": "5.2.5", | ||
"@algolia/requester-node-http": "5.2.5" | ||
"@algolia/client-common": "5.3.0", | ||
"@algolia/requester-browser-xhr": "5.3.0", | ||
"@algolia/requester-node-http": "5.3.0" | ||
}, | ||
@@ -52,0 +52,0 @@ "devDependencies": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
353008
3340
0
+ Added@algolia/client-common@5.3.0(transitive)
+ Added@algolia/requester-browser-xhr@5.3.0(transitive)
+ Added@algolia/requester-node-http@5.3.0(transitive)
- Removed@algolia/client-common@5.2.5(transitive)
- Removed@algolia/requester-browser-xhr@5.2.5(transitive)
- Removed@algolia/requester-node-http@5.2.5(transitive)
Updated@algolia/client-common@5.3.0