@algolia/abtesting 1.21.2 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/browser.d.ts +161 -4
- package/dist/builds/browser.js +312 -1
- package/dist/builds/browser.js.map +1 -1
- package/dist/builds/browser.min.js +5 -5
- package/dist/builds/browser.min.js.map +1 -1
- package/dist/builds/browser.umd.js +7 -7
- package/dist/builds/fetch.js +312 -1
- package/dist/builds/fetch.js.map +1 -1
- package/dist/builds/node.cjs +312 -1
- package/dist/builds/node.cjs.map +1 -1
- package/dist/builds/node.js +312 -1
- package/dist/builds/node.js.map +1 -1
- package/dist/builds/worker.js +312 -1
- package/dist/builds/worker.js.map +1 -1
- package/dist/fetch.d.ts +161 -4
- package/dist/node.d.cts +161 -4
- package/dist/node.d.ts +161 -4
- package/dist/src/abtestingV3Client.cjs +312 -1
- package/dist/src/abtestingV3Client.cjs.map +1 -1
- package/dist/src/abtestingV3Client.js +312 -1
- package/dist/src/abtestingV3Client.js.map +1 -1
- package/dist/worker.d.ts +161 -4
- package/package.json +10 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
function
|
|
2
|
-
`&&(n=1));n<
|
|
3
|
-
`,n);if(
|
|
4
|
-
`?2:1:(
|
|
5
|
-
`),event:t,id:this.lastEventId,retry:this.retry};return this.data=[],e}};async function*he(t){let e=new fe;for await(let s of pe(t)){let r=e.decode(s);r!==null&&(yield r)}}var ge=750,J=120*1e3;function M(t,e="up"){let s=Date.now();function r(){return e==="up"||Date.now()-s>J}function a(){return e==="timed out"&&Date.now()-s<=J}return{...t,status:e,lastUpdate:s,isUp:r,isTimedOut:a}}var re=class extends Error{name="AlgoliaError";constructor(t,e){super(t),e&&(this.name=e)}};var se=class extends re{stackTrace;constructor(t,e,s){super(t,s),this.stackTrace=e}},Q=class extends se{constructor(t){super("Unreachable hosts - your application id may be incorrect. If the error persists, please visit our help center https://alg.li/support-unreachable-hosts or reach out to the Algolia Support team: https://alg.li/support",t,"RetryError")}},$=class extends se{status;constructor(t,e,s,r="ApiError"){super(t,s,r),this.status=e}},ye=class extends re{response;constructor(t,e){super(t,"DeserializationError"),this.response=e}},Pe=class extends ${error;constructor(t,e,s,r){super(t,e,r,"DetailedApiError"),this.error=s}};function V(t,e,s){let r=Te(s),a=`${t.protocol}://${t.url}${t.port?`:${t.port}`:""}/${e.charAt(0)==="/"?e.substring(1):e}`;return r.length&&(a+=`?${r}`),a}function Te(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]).replace(/\+/g,"%20")}`).join("&")}function X(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 K(t,e,s){let r={Accept:"application/json",...t,...e,...s},a={};return Object.keys(r).forEach(d=>{let h=r[d];a[d.toLowerCase()]=h}),a}function Ae(t){if(!(t.status===204||t.content.length===0))try{return JSON.parse(t.content)}catch(e){throw new ye(e.message,t)}}function Ee({content:t,status:e},s){try{let r=JSON.parse(t);return"error"in r?new Pe(r.message,e,r.error,s):new $(r.message,e,s)}catch{}return new $(t,e,s)}function Re({isTimedOut:t,status:e}){return!t&&~~e===0}function ve({isTimedOut:t,status:e}){return t||Re({isTimedOut:t,status:e})||~~(e/100)!==2&&~~(e/100)!==4}function xe({status:t}){return~~(t/100)===2}function qe(t){return t.map(e=>oe(e))}function oe(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 ne({hosts:t,hostsCache:e,baseHeaders:s,logger:r,baseQueryParameters:a,algoliaAgent:d,timeouts:h,requester:c,requestsCache:o,responsesCache:n,compress:u,compression:p}){async function f(i){let l=await Promise.all(i.map(g=>e.get(g,()=>Promise.resolve(M(g))))),q=l.filter(g=>g.isUp()),R=l.filter(g=>g.isTimedOut()),x=[...q,...R];return{hosts:x.length>0?x:i,getTimeout(g,S){return(R.length===0&&g===0?1:R.length+3+g)*S}}}async function m(i,l,q){let R=[],x=X(i,l),A=K(s,i.headers,l.headers),g=p==="gzip"&&x!==void 0&&x.length>ge&&(i.method==="POST"||i.method==="PUT");g&&u===void 0&&r.info("Compression is disabled because no compress method is available.");let S=g&&u!==void 0,L=S?await u(x):x;S&&(A["content-encoding"]="gzip");let I=i.method==="GET"?{...i.data,...l.data}:{},b={...a,...i.queryParameters,...I};if(d.value&&(b["x-algolia-agent"]=d.value),l&&l.queryParameters)for(let E of Object.keys(l.queryParameters))!l.queryParameters[E]||Object.prototype.toString.call(l.queryParameters[E])==="[object Object]"?b[E]=l.queryParameters[E]:b[E]=l.queryParameters[E].toString();let B=0,_=async(E,k)=>{let C=E.pop();if(C===void 0)throw new Q(qe(R));let U={...h,...l.timeouts},G={data:L,headers:A,method:i.method,url:V(C,i.path,b),connectTimeout:k(B,U.connect),responseTimeout:k(B,q?U.read:U.write)},W=H=>{let z={request:G,response:H,host:C,triesLeft:E.length};return R.push(z),z},w=await c.send(G);if(ve(w)){let H=W(w);return w.isTimedOut&&B++,r.info("Retryable failure",oe(H)),await e.set(C,M(C,w.isTimedOut?"timed out":"down")),_(E,k)}if(xe(w))return Ae(w);throw W(w),Ee(w,R)},v=t.filter(E=>E.accept==="readWrite"||(q?E.accept==="read":E.accept==="write")),F=await f(v);return _([...F.hosts].reverse(),F.getTimeout)}function T(i,l={}){let q=()=>m(i,l,R),R=i.useReadTransporter||i.method==="GET";if((l.cacheable||i.cacheable)!==!0)return q();let A={request:i,requestOptions:l,transporter:{queryParameters:a,headers:s}};return n.get(A,()=>o.get(A,()=>o.set(A,q()).then(g=>Promise.all([o.delete(A),g]),g=>Promise.all([o.delete(A),Promise.reject(g)])).then(([g,S])=>S)),{miss:g=>n.set(A,g)})}async function*y(i,l={}){if(!c.sendStream)throw new Error("This requester does not support streaming");let q=X(i,l),R=K(s,i.headers,l.headers);R.accept="text/event-stream";let x=i.method==="GET"?{...i.data,...l.data}:{},A={...a,...i.queryParameters,...x};if(d.value&&(A["x-algolia-agent"]=d.value),l&&l.queryParameters)for(let v of Object.keys(l.queryParameters))!l.queryParameters[v]||Object.prototype.toString.call(l.queryParameters[v])==="[object Object]"?A[v]=l.queryParameters[v]:A[v]=l.queryParameters[v].toString();let g=i.useReadTransporter||i.method==="GET",S=t.filter(v=>v.accept==="readWrite"||(g?v.accept==="read":v.accept==="write")),I=(await f(S)).hosts[0];if(!I)throw new Q([]);let b={...h,...l.timeouts},B={data:q,headers:R,method:i.method,url:V(I,i.path,A),connectTimeout:b.connect,responseTimeout:g?b.read:b.write},_=await c.sendStream(B);yield*he(_)}return{hostsCache:e,requester:c,timeouts:h,logger:r,algoliaAgent:d,baseHeaders:s,baseQueryParameters:a,hosts:t,request:T,requestStream:y,requestsCache:o,responsesCache:n}}function P(t,e,s){if(s==null||typeof s=="string"&&s.length===0)throw new Error(`Parameter \`${t}\` is required when calling \`${e}\`.`)}function ae(){function t(e){return new Promise(s=>{let r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach(c=>r.setRequestHeader(c,e.headers[c]));let a=(c,o)=>setTimeout(()=>{r.abort(),s({status:0,content:o,isTimedOut:!0})},c),d=a(e.connectTimeout,"Connection timeout"),h;r.onreadystatechange=()=>{r.readyState>r.OPENED&&h===void 0&&(clearTimeout(d),h=a(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{r.status===0&&(clearTimeout(d),clearTimeout(h),s({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(d),clearTimeout(h),s({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)})}return{send:t}}var D="1.21.2",j=["de","us"];function Se(t){return[{url:t?"analytics.{region}.algolia.com".replace("{region}",t):"analytics.algolia.com",accept:"readWrite",protocol:"https"}]}function ie({appId:t,apiKey:e,authMode:s,algoliaAgents:r,region:a,...d}){let h=Z(t,e,s),c=ne({hosts:Se(a),...d,algoliaAgent:ee({algoliaAgents:r,client:"AbtestingV3",version:D}),baseHeaders:{"content-type":"text/plain",...h.headers(),...d.baseHeaders},baseQueryParameters:{...h.queryParameters(),...d.baseQueryParameters}});return{transporter:c,appId:t,apiKey:e,clearCache(){return Promise.all([c.requestsCache.clear(),c.responsesCache.clear()]).then(()=>{})},get _ua(){return c.algoliaAgent.value},addAlgoliaAgent(o,n){c.algoliaAgent.add({segment:o,version:n})},setClientApiKey({apiKey:o}){!s||s==="WithinHeaders"?c.baseHeaders["x-algolia-api-key"]=o:c.baseQueryParameters["x-algolia-api-key"]=o},addABTests(o,n){P("addABTestsRequest","addABTests",o),P("addABTestsRequest.name","addABTests",o.name),P("addABTestsRequest.variants","addABTests",o.variants),P("addABTestsRequest.metrics","addABTests",o.metrics),P("addABTestsRequest.endAt","addABTests",o.endAt);let m={method:"POST",path:"/3/abtests",queryParameters:{},headers:{},data:o};return c.request(m,n)},customDelete({path:o,parameters:n},u){P("path","customDelete",o);let T={method:"DELETE",path:"/{path}".replace("{path}",o),queryParameters:n||{},headers:{}};return c.request(T,u)},customGet({path:o,parameters:n},u){P("path","customGet",o);let T={method:"GET",path:"/{path}".replace("{path}",o),queryParameters:n||{},headers:{}};return c.request(T,u)},customPost({path:o,parameters:n,body:u},p){P("path","customPost",o);let y={method:"POST",path:"/{path}".replace("{path}",o),queryParameters:n||{},headers:{},data:u||{}};return c.request(y,p)},customPut({path:o,parameters:n,body:u},p){P("path","customPut",o);let y={method:"PUT",path:"/{path}".replace("{path}",o),queryParameters:n||{},headers:{},data:u||{}};return c.request(y,p)},deleteABTest({id:o},n){P("id","deleteABTest",o);let m={method:"DELETE",path:"/3/abtests/{id}".replace("{id}",encodeURIComponent(o)),queryParameters:{},headers:{}};return c.request(m,n)},estimateABTest(o,n){P("estimateABTestRequest","estimateABTest",o),P("estimateABTestRequest.configuration","estimateABTest",o.configuration),P("estimateABTestRequest.variants","estimateABTest",o.variants);let m={method:"POST",path:"/3/abtests/estimate",queryParameters:{},headers:{},data:o};return c.request(m,n)},getABTest({id:o},n){P("id","getABTest",o);let m={method:"GET",path:"/3/abtests/{id}".replace("{id}",encodeURIComponent(o)),queryParameters:{},headers:{}};return c.request(m,n)},getTimeseries({id:o,startDate:n,endDate:u,metric:p},f){P("id","getTimeseries",o);let m="/3/abtests/{id}/timeseries".replace("{id}",encodeURIComponent(o)),T={},y={};n!==void 0&&(y.startDate=n.toString()),u!==void 0&&(y.endDate=u.toString()),p!==void 0&&(y.metric=p.toString());let i={method:"GET",path:m,queryParameters:y,headers:T};return c.request(i,f)},listABTests({offset:o,limit:n,indexPrefix:u,indexSuffix:p,direction:f}={},m=void 0){let T="/3/abtests",y={},i={};o!==void 0&&(i.offset=o.toString()),n!==void 0&&(i.limit=n.toString()),u!==void 0&&(i.indexPrefix=u.toString()),p!==void 0&&(i.indexSuffix=p.toString()),f!==void 0&&(i.direction=f.toString());let l={method:"GET",path:T,queryParameters:i,headers:y};return c.request(l,m)},stopABTest({id:o},n){P("id","stopABTest",o);let m={method:"POST",path:"/3/abtests/{id}/stop".replace("{id}",encodeURIComponent(o)),queryParameters:{},headers:{}};return c.request(m,n)}}}function At(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"||!j.includes(s)))throw new Error(`\`region\` must be one of the following: ${j.join(", ")}`);let{compression:a,...d}=r||{};return ie({appId:t,apiKey:e,region:s,timeouts:{connect:1e3,read:2e3,write:3e4},logger:te(),requester:ae(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:N(),requestsCache:N({serializable:!1}),hostsCache:O({caches:[Y({key:`${D}-${t}`}),N()]}),...d})}export{At as abtestingV3Client,D as apiClientVersion};
|
|
1
|
+
function oe(e){let t,s=`algolia-client-js-${e.key}`;function o(){return t===void 0&&(t=e.localStorage||window.localStorage),t}function c(){return JSON.parse(o().getItem(s)||"{}")}function m(r){o().setItem(s,JSON.stringify(r))}function y(){return new Promise(r=>setTimeout(r,0))}function i(){let r=e.timeToLive?e.timeToLive*1e3:null,n=c(),a=new Date().getTime(),d=!1;return{namespace:Object.fromEntries(Object.entries(n).filter(([,u])=>!u||u.timestamp===void 0||r&&u.timestamp+r<a?(d=!0,!1):!0)),changed:d}}return{get(r,n,a={miss:()=>Promise.resolve()}){return y().then(()=>{let{namespace:d,changed:l}=i(),u=d[JSON.stringify(r)];return l&&m(d),u?u.value:n().then(T=>a.miss(T).then(()=>T))})},set(r,n){return y().then(()=>{let a=c();return a[JSON.stringify(r)]={timestamp:new Date().getTime(),value:n},o().setItem(s,JSON.stringify(a)),n})},delete(r){return y().then(()=>{let n=c();delete n[JSON.stringify(r)],o().setItem(s,JSON.stringify(n))})},clear(){return Promise.resolve().then(()=>{o().removeItem(s)})}}}function Pe(){return{get(e,t,s={miss:()=>Promise.resolve()}){return t().then(c=>Promise.all([c,s.miss(c)])).then(([c])=>c)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}function w(e){let t=[...e.caches],s=t.shift();return s===void 0?Pe():{get(o,c,m={miss:()=>Promise.resolve()}){return s.get(o,c,m).catch(()=>w({caches:t}).get(o,c,m))},set(o,c){return s.set(o,c).catch(()=>w({caches:t}).set(o,c))},delete(o){return s.delete(o).catch(()=>w({caches:t}).delete(o))},clear(){return s.clear().catch(()=>w({caches:t}).clear())}}}function _(e={serializable:!0}){let t={};return{get(s,o,c={miss:()=>Promise.resolve()}){let m=JSON.stringify(s);if(m in t)return Promise.resolve(e.serializable?JSON.parse(t[m]):t[m]);let y=o();return y.then(i=>c.miss(i)).then(()=>y)},set(s,o){return t[JSON.stringify(s)]=e.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(s){return delete t[JSON.stringify(s)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}function Te(e){let t={value:`Algolia for JavaScript (${e})`,add(s){let o=`; ${s.segment}${s.version!==void 0?` (${s.version})`:""}`;return t.value.indexOf(o)===-1&&(t.value=`${t.value}${o}`),t}};return t}function ne(e,t,s="WithinHeaders"){let o={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers(){return s==="WithinHeaders"?o:{}},queryParameters(){return s==="WithinQueryParameters"?o:{}}}}function ae({algoliaAgents:e,client:t,version:s}){let o=Te(s).add({segment:t,version:s});return e.forEach(c=>o.add(c)),o}function ie(){return{debug(e,t){return Promise.resolve()},info(e,t){return Promise.resolve()},error(e,t){return Promise.resolve()}}}var ge=10*1024*1024;async function*ye(e){let t=e.getReader();try{for(;;){let{done:s,value:o}=await t.read();if(s)return;yield o}}finally{t.releaseLock()}}function qe(e){return Symbol.asyncIterator in e?e:ye(e)}async function*Re(e){let t=new TextDecoder("utf-8"),s=[],o=0,c=!1,m=!0;for await(let i of qe(e)){let r=t.decode(i,{stream:!0}),n=0;for(c&&(c=!1,r.length>0&&r[0]===`
|
|
2
|
+
`&&(n=1));n<r.length;){let a=r.indexOf("\r",n),d=r.indexOf(`
|
|
3
|
+
`,n);if(a===-1&&d===-1){let q=r.slice(n);if(s.push(q),o+=q.length,o>ge)throw new Error("SSE line buffer exceeded 10MB");break}let l,u;a!==-1&&(d===-1||a<d)?(l=a,a+1<r.length?u=r[a+1]===`
|
|
4
|
+
`?2:1:(c=!0,u=1)):(l=d,u=1);let T=r.slice(n,l);s.push(T);let P=s.length===1?s[0]:s.join("");s.length=0,o=0,m&&(P.startsWith("\uFEFF")&&(P=P.slice(1)),m=!1),yield P,n=l+u}}let y=t.decode();if(y&&s.push(y),s.length>0){let i=s.join("");m&&i.startsWith("\uFEFF")&&(i=i.slice(1)),yield i}}var Ae=class{data=[];eventType="";lastEventId=null;retry=null;decode(e){if(e==="")return this.dispatch();if(e[0]===":")return null;let t=e.indexOf(":"),s,o;switch(t===-1?(s=e,o=""):(s=e.slice(0,t),o=e.slice(t+1),o[0]===" "&&(o=o.slice(1))),s){case"data":this.data.push(o);break;case"event":this.eventType=o;break;case"id":o.includes("\0")||(this.lastEventId=o);break;case"retry":/^[0-9]+$/.test(o)&&(this.retry=parseInt(o,10));break}return null}dispatch(){let e=this.eventType;if(this.eventType="",this.data.length===0)return null;let t={data:this.data.join(`
|
|
5
|
+
`),event:e,id:this.lastEventId,retry:this.retry};return this.data=[],t}};async function*Ee(e){let t=new Ae;for await(let s of Re(e)){let o=t.decode(s);o!==null&&(yield o)}}var ve=750,X=120*1e3;function K(e,t="up"){let s=Date.now();function o(){return t==="up"||Date.now()-s>X}function c(){return t==="timed out"&&Date.now()-s<=X}return{...e,status:t,lastUpdate:s,isUp:o,isTimedOut:c}}var ue=class extends Error{name="AlgoliaError";constructor(e,t){super(e),t&&(this.name=t)}};var ce=class extends ue{stackTrace;correlationId;constructor(e,t,s,o){super(o?`${e} (Correlation-ID: ${o})`:e,s),this.stackTrace=t,this.correlationId=o}},Y=class extends ce{constructor(e,t){super("Unreachable hosts - your application id may be incorrect. If the error persists, please visit our help center https://alg.li/support-unreachable-hosts or reach out to the Algolia Support team: https://alg.li/support",e,"RetryError",t)}},j=class extends ce{status;constructor(e,t,s,o="ApiError",c){super(e,s,o,c),this.status=t}},Ie=class extends ue{response;correlationId;constructor(e,t,s){super(s?`${e} (Correlation-ID: ${s})`:e,"DeserializationError"),this.response=t,this.correlationId=s}},He=class extends j{error;constructor(e,t,s,o,c){super(e,t,o,"DetailedApiError",c),this.error=s}};function Z(e,t,s){let o=Se(s),c=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${t.charAt(0)==="/"?t.substring(1):t}`;return o.length&&(c+=`?${o}`),c}function Se(e){return Object.keys(e).filter(t=>e[t]!==void 0).sort().map(t=>`${t}=${encodeURIComponent(Object.prototype.toString.call(e[t])==="[object Array]"?e[t].join(","):e[t]).replace(/\+/g,"%20")}`).join("&")}function ee(e,t){if(e.method==="GET"||e.data===void 0&&t.data===void 0)return;let s=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(s)}function te(e,t,s){let o={Accept:"application/json",...e,...t,...s},c={};return Object.keys(o).forEach(m=>{let y=o[m];c[m.toLowerCase()]=y}),c}function de(e){if(!(e.status===204||e.content.length===0))try{return JSON.parse(e.content)}catch(t){throw new Ie(t.message,e,$(e.headers))}}function xe(e){return{status:e.status,headers:e.headers,content:e.content,data:de(e)}}function $(e){if(!e)return;if(e["correlation-id"]!==void 0)return e["correlation-id"];let t=Object.keys(e).find(s=>s.toLowerCase()==="correlation-id");return t===void 0?void 0:e[t]}function be(e){for(let t=e.length-1;t>=0;t--){let s=$(e[t].response.headers);if(s!==void 0)return s}}function we(e,t){let{content:s,status:o}=e,c=$(e.headers);try{let m=JSON.parse(s);return"error"in m?new He(m.message,o,m.error,t,c):new j(m.message,o,t,"ApiError",c)}catch{}return new j(s,o,t,"ApiError",c)}var L="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",re=11;function se(){var e;let t="";if(typeof((e=globalThis.crypto)==null?void 0:e.getRandomValues)=="function"){let s=new Uint8Array(re);globalThis.crypto.getRandomValues(s);for(let o of s)t+=L[o%L.length];return t}for(let s=0;s<re;s++)t+=L[Math.floor(Math.random()*L.length)];return t}function Be({isTimedOut:e,status:t}){return!e&&~~t===0}function Oe({isTimedOut:e,status:t}){return e||Be({isTimedOut:e,status:t})||~~(t/100)!==2&&~~(t/100)!==4}function Ce({status:e}){return~~(e/100)===2}function We(e){return e.map(t=>le(t))}function le(e){let t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function me({hosts:e,hostsCache:t,baseHeaders:s,logger:o,baseQueryParameters:c,algoliaAgent:m,timeouts:y,requester:i,requestsCache:r,responsesCache:n,compress:a,compression:d,requestIdChannel:l}){function u(h,p){l===void 0||h["request-id"]!==void 0||Object.keys(p).some(v=>v.toLowerCase()==="x-algolia-request-id")||(l==="headers"?h["request-id"]=se():p["x-algolia-request-id"]=se())}async function T(h){let p=await Promise.all(h.map(g=>t.get(g,()=>Promise.resolve(K(g))))),v=p.filter(g=>g.isUp()),A=p.filter(g=>g.isTimedOut()),H=[...v,...A];return{hosts:H.length>0?H:h,getTimeout(g,x){return(A.length===0&&g===0?1:A.length+3+g)*x}}}async function P(h,p,v){let A=[],H=ee(h,p),R=te(s,h.headers,p.headers),g=d==="gzip"&&H!==void 0&&H.length>ve&&(h.method==="POST"||h.method==="PUT");g&&a===void 0&&o.info("Compression is disabled because no compress method is available.");let x=g&&a!==void 0,N=x?await a(H):H;x&&(R["content-encoding"]="gzip");let W=h.method==="GET"?{...h.data,...p.data}:{},S={...c,...h.queryParameters,...W};if(m.value&&(S["x-algolia-agent"]=m.value),p&&p.queryParameters)for(let E of Object.keys(p.queryParameters))!p.queryParameters[E]||Object.prototype.toString.call(p.queryParameters[E])==="[object Object]"?S[E]=p.queryParameters[E]:S[E]=p.queryParameters[E].toString();u(R,S);let O=0,D=async(E,U)=>{let C=E.pop();if(C===void 0)throw new Y(We(A),be(A));let G={...y,...p.timeouts},z={data:N,headers:R,method:h.method,url:Z(C,h.path,S),connectTimeout:U(O,G.connect),responseTimeout:U(O,v?G.read:G.write)},J=Q=>{let V={request:z,response:Q,host:C,triesLeft:E.length};return A.push(V),V},b=await i.send(z);if(Oe(b)){let Q=J(b);return b.isTimedOut&&O++,o.info("Retryable failure",le(Q)),await t.set(C,K(C,b.isTimedOut?"timed out":"down")),D(E,U)}if(Ce(b))return b;throw J(b),we(b,A)},I=e.filter(E=>E.accept==="readWrite"||(v?E.accept==="read":E.accept==="write")),M=await T(I);return D([...M.hosts].reverse(),M.getTimeout)}function q(h,p={}){let v=()=>P(h,p,A).then(g=>de(g)),A=h.useReadTransporter||h.method==="GET";if((p.cacheable||h.cacheable)!==!0)return v();let R={request:h,requestOptions:p,transporter:{queryParameters:c,headers:s}};return n.get(R,()=>r.get(R,()=>r.set(R,v()).then(g=>Promise.all([r.delete(R),g]),g=>Promise.all([r.delete(R),Promise.reject(g)])).then(([g,x])=>x)),{miss:g=>n.set(R,g)})}function B(h,p={}){let v=h.useReadTransporter||h.method==="GET";return P(h,p,v).then(A=>xe(A))}async function*fe(h,p={}){if(!i.sendStream)throw new Error("This requester does not support streaming");let v=ee(h,p),A=te(s,h.headers,p.headers);A.accept="text/event-stream";let H=h.method==="GET"?{...h.data,...p.data}:{},R={...c,...h.queryParameters,...H};if(m.value&&(R["x-algolia-agent"]=m.value),p&&p.queryParameters)for(let I of Object.keys(p.queryParameters))!p.queryParameters[I]||Object.prototype.toString.call(p.queryParameters[I])==="[object Object]"?R[I]=p.queryParameters[I]:R[I]=p.queryParameters[I].toString();u(A,R);let g=h.useReadTransporter||h.method==="GET",x=e.filter(I=>I.accept==="readWrite"||(g?I.accept==="read":I.accept==="write")),W=(await T(x)).hosts[0];if(!W)throw new Y([]);let S={...y,...p.timeouts},O={data:v,headers:A,method:h.method,url:Z(W,h.path,R),connectTimeout:S.connect,responseTimeout:g?S.read:S.write},D=await i.sendStream(O);yield*Ee(D)}return{hostsCache:t,requester:i,timeouts:y,logger:o,algoliaAgent:m,baseHeaders:s,baseQueryParameters:c,requestIdChannel:l,hosts:e,request:q,requestWithHttpInfo:B,requestStream:fe,requestsCache:r,responsesCache:n}}function f(e,t,s){if(s==null||typeof s=="string"&&s.length===0)throw new Error(`Parameter \`${e}\` is required when calling \`${t}\`.`)}function De(e){let t={};for(let s of e.trim().split(/[\r\n]+/)){let o=s.indexOf(": ");o>0&&(t[s.slice(0,o).toLowerCase()]=s.slice(o+2))}return t}function he(){function e(t){return new Promise(s=>{let o=new XMLHttpRequest;o.open(t.method,t.url,!0),Object.keys(t.headers).forEach(i=>o.setRequestHeader(i,t.headers[i]));let c=(i,r)=>setTimeout(()=>{o.abort(),s({status:0,content:r,isTimedOut:!0})},i),m=c(t.connectTimeout,"Connection timeout"),y;o.onreadystatechange=()=>{o.readyState>o.OPENED&&y===void 0&&(clearTimeout(m),y=c(t.responseTimeout,"Socket timeout"))},o.onerror=()=>{o.status===0&&(clearTimeout(m),clearTimeout(y),s({content:o.responseText||"Network request failed",status:o.status,isTimedOut:!1}))},o.onload=()=>{clearTimeout(m),clearTimeout(y),s({content:o.responseText,headers:De(o.getAllResponseHeaders()),status:o.status,isTimedOut:!1})},o.send(t.data)})}return{send:e}}var k="1.23.0",F=["de","us"];function Le(e){return[{url:e?"analytics.{region}.algolia.com".replace("{region}",e):"analytics.algolia.com",accept:"readWrite",protocol:"https"}]}function pe({appId:e,apiKey:t,authMode:s,algoliaAgents:o,region:c,...m}){let y=ne(e,t,s),i=me({hosts:Le(c),...m,algoliaAgent:ae({algoliaAgents:o,client:"AbtestingV3",version:k}),baseHeaders:{"content-type":"text/plain",...y.headers(),...m.baseHeaders},baseQueryParameters:{...y.queryParameters(),...m.baseQueryParameters}});return{transporter:i,appId:e,apiKey:t,clearCache(){return Promise.all([i.requestsCache.clear(),i.responsesCache.clear()]).then(()=>{})},get _ua(){return i.algoliaAgent.value},addAlgoliaAgent(r,n){i.algoliaAgent.add({segment:r,version:n})},setClientApiKey({apiKey:r}){!s||s==="WithinHeaders"?i.baseHeaders["x-algolia-api-key"]=r:i.baseQueryParameters["x-algolia-api-key"]=r},addABTests(r,n){f("addABTestsRequest","addABTests",r),f("addABTestsRequest.name","addABTests",r.name),f("addABTestsRequest.variants","addABTests",r.variants),f("addABTestsRequest.metrics","addABTests",r.metrics),f("addABTestsRequest.endAt","addABTests",r.endAt);let u={method:"POST",path:"/3/abtests",queryParameters:{},headers:{},data:r};return i.request(u,n)},addABTestsWithHTTPInfo(r,n){f("addABTestsRequest","addABTestsWithHTTPInfo",r),f("addABTestsRequest.name","addABTestsWithHTTPInfo",r.name),f("addABTestsRequest.variants","addABTestsWithHTTPInfo",r.variants),f("addABTestsRequest.metrics","addABTestsWithHTTPInfo",r.metrics),f("addABTestsRequest.endAt","addABTestsWithHTTPInfo",r.endAt);let u={method:"POST",path:"/3/abtests",queryParameters:{},headers:{},data:r};return i.requestWithHttpInfo(u,n)},customDelete({path:r,parameters:n},a){f("path","customDelete",r);let T={method:"DELETE",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{}};return i.request(T,a)},customDeleteWithHTTPInfo({path:r,parameters:n},a){f("path","customDeleteWithHTTPInfo",r);let T={method:"DELETE",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{}};return i.requestWithHttpInfo(T,a)},customGet({path:r,parameters:n},a){f("path","customGet",r);let T={method:"GET",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{}};return i.request(T,a)},customGetWithHTTPInfo({path:r,parameters:n},a){f("path","customGetWithHTTPInfo",r);let T={method:"GET",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{}};return i.requestWithHttpInfo(T,a)},customPost({path:r,parameters:n,body:a},d){f("path","customPost",r);let P={method:"POST",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{},data:a||{}};return i.request(P,d)},customPostWithHTTPInfo({path:r,parameters:n,body:a},d){f("path","customPostWithHTTPInfo",r);let P={method:"POST",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{},data:a||{}};return i.requestWithHttpInfo(P,d)},customPut({path:r,parameters:n,body:a},d){f("path","customPut",r);let P={method:"PUT",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{},data:a||{}};return i.request(P,d)},customPutWithHTTPInfo({path:r,parameters:n,body:a},d){f("path","customPutWithHTTPInfo",r);let P={method:"PUT",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{},data:a||{}};return i.requestWithHttpInfo(P,d)},deleteABTest({id:r},n){f("id","deleteABTest",r);let u={method:"DELETE",path:"/3/abtests/{id}".replace("{id}",encodeURIComponent(r)),queryParameters:{},headers:{}};return i.request(u,n)},deleteABTestWithHTTPInfo({id:r},n){f("id","deleteABTestWithHTTPInfo",r);let u={method:"DELETE",path:"/3/abtests/{id}".replace("{id}",encodeURIComponent(r)),queryParameters:{},headers:{}};return i.requestWithHttpInfo(u,n)},estimateABTest(r,n){f("estimateABTestRequest","estimateABTest",r),f("estimateABTestRequest.configuration","estimateABTest",r.configuration),f("estimateABTestRequest.variants","estimateABTest",r.variants);let u={method:"POST",path:"/3/abtests/estimate",queryParameters:{},headers:{},data:r};return i.request(u,n)},estimateABTestWithHTTPInfo(r,n){f("estimateABTestRequest","estimateABTestWithHTTPInfo",r),f("estimateABTestRequest.configuration","estimateABTestWithHTTPInfo",r.configuration),f("estimateABTestRequest.variants","estimateABTestWithHTTPInfo",r.variants);let u={method:"POST",path:"/3/abtests/estimate",queryParameters:{},headers:{},data:r};return i.requestWithHttpInfo(u,n)},getABTest({id:r},n){f("id","getABTest",r);let u={method:"GET",path:"/3/abtests/{id}".replace("{id}",encodeURIComponent(r)),queryParameters:{},headers:{}};return i.request(u,n)},getABTestWithHTTPInfo({id:r},n){f("id","getABTestWithHTTPInfo",r);let u={method:"GET",path:"/3/abtests/{id}".replace("{id}",encodeURIComponent(r)),queryParameters:{},headers:{}};return i.requestWithHttpInfo(u,n)},getTimeseries({id:r,startDate:n,endDate:a,metric:d},l){f("id","getTimeseries",r);let u="/3/abtests/{id}/timeseries".replace("{id}",encodeURIComponent(r)),T={},P={};n!==void 0&&(P.startDate=n.toString()),a!==void 0&&(P.endDate=a.toString()),d!==void 0&&(P.metric=d.toString());let q={method:"GET",path:u,queryParameters:P,headers:T};return i.request(q,l)},getTimeseriesWithHTTPInfo({id:r,startDate:n,endDate:a,metric:d},l){f("id","getTimeseriesWithHTTPInfo",r);let u="/3/abtests/{id}/timeseries".replace("{id}",encodeURIComponent(r)),T={},P={};n!==void 0&&(P.startDate=n.toString()),a!==void 0&&(P.endDate=a.toString()),d!==void 0&&(P.metric=d.toString());let q={method:"GET",path:u,queryParameters:P,headers:T};return i.requestWithHttpInfo(q,l)},listABTests({offset:r,limit:n,indexPrefix:a,indexSuffix:d,direction:l}={},u=void 0){let T="/3/abtests",P={},q={};r!==void 0&&(q.offset=r.toString()),n!==void 0&&(q.limit=n.toString()),a!==void 0&&(q.indexPrefix=a.toString()),d!==void 0&&(q.indexSuffix=d.toString()),l!==void 0&&(q.direction=l.toString());let B={method:"GET",path:T,queryParameters:q,headers:P};return i.request(B,u)},listABTestsWithHTTPInfo({offset:r,limit:n,indexPrefix:a,indexSuffix:d,direction:l}={},u=void 0){let T="/3/abtests",P={},q={};r!==void 0&&(q.offset=r.toString()),n!==void 0&&(q.limit=n.toString()),a!==void 0&&(q.indexPrefix=a.toString()),d!==void 0&&(q.indexSuffix=d.toString()),l!==void 0&&(q.direction=l.toString());let B={method:"GET",path:T,queryParameters:q,headers:P};return i.requestWithHttpInfo(B,u)},stopABTest({id:r},n){f("id","stopABTest",r);let u={method:"POST",path:"/3/abtests/{id}/stop".replace("{id}",encodeURIComponent(r)),queryParameters:{},headers:{}};return i.request(u,n)},stopABTestWithHTTPInfo({id:r},n){f("id","stopABTestWithHTTPInfo",r);let u={method:"POST",path:"/3/abtests/{id}/stop".replace("{id}",encodeURIComponent(r)),queryParameters:{},headers:{}};return i.requestWithHttpInfo(u,n)}}}function Bt(e,t,s,o){if(!e||typeof e!="string")throw new Error("`appId` is missing.");if(!t||typeof t!="string")throw new Error("`apiKey` is missing.");if(s&&(typeof s!="string"||!F.includes(s)))throw new Error(`\`region\` must be one of the following: ${F.join(", ")}`);let{compression:c,...m}=o||{};return pe({appId:e,apiKey:t,region:s,timeouts:{connect:1e3,read:2e3,write:3e4},logger:ie(),requester:he(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:_(),requestsCache:_({serializable:!1}),hostsCache:w({caches:[oe({key:`${k}-${e}`}),_()]}),...m})}export{Bt as abtestingV3Client,k as apiClientVersion};
|
|
6
6
|
//# sourceMappingURL=browser.min.js.map
|