generated from thegrind/laravel-dockerized
13 lines
14 KiB
JavaScript
13 lines
14 KiB
JavaScript
(function (global, factory) {
|
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@algolia/abtesting"] = {}));
|
|
})(this, (function (exports) { 'use strict';
|
|
|
|
function U(){function t(e){return new Promise(o=>{let r=new XMLHttpRequest;r.open(e.method,e.url,true),Object.keys(e.headers).forEach(n=>r.setRequestHeader(n,e.headers[n]));let u=(n,s)=>setTimeout(()=>{r.abort(),o({status:0,content:s,isTimedOut:true});},n),d=u(e.connectTimeout,"Connection timeout"),g;r.onreadystatechange=()=>{r.readyState>r.OPENED&&g===void 0&&(clearTimeout(d),g=u(e.responseTimeout,"Socket timeout"));},r.onerror=()=>{r.status===0&&(clearTimeout(d),clearTimeout(g),o({content:r.responseText||"Network request failed",status:r.status,isTimedOut:false}));},r.onload=()=>{clearTimeout(d),clearTimeout(g),o({content:r.responseText,status:r.status,isTimedOut:false});},r.send(e.data);})}return {send:t}}function G(t){let e,o=`algolia-client-js-${t.key}`;function r(){return e===void 0&&(e=t.localStorage||window.localStorage),e}function u(){return JSON.parse(r().getItem(o)||"{}")}function d(n){r().setItem(o,JSON.stringify(n));}function g(){let n=t.timeToLive?t.timeToLive*1e3:null,s=u(),a=Object.fromEntries(Object.entries(s).filter(([,l])=>l.timestamp!==void 0));if(d(a),!n)return;let c=Object.fromEntries(Object.entries(a).filter(([,l])=>{let h=new Date().getTime();return !(l.timestamp+n<h)}));d(c);}return {get(n,s,a={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(g(),u()[JSON.stringify(n)])).then(c=>Promise.all([c?c.value:s(),c!==void 0])).then(([c,l])=>Promise.all([c,l||a.miss(c)])).then(([c])=>c)},set(n,s){return Promise.resolve().then(()=>{let a=u();return a[JSON.stringify(n)]={timestamp:new Date().getTime(),value:s},r().setItem(o,JSON.stringify(a)),s})},delete(n){return Promise.resolve().then(()=>{let s=u();delete s[JSON.stringify(n)],r().setItem(o,JSON.stringify(s));})},clear(){return Promise.resolve().then(()=>{r().removeItem(o);})}}}function K(){return {get(t,e,o={miss:()=>Promise.resolve()}){return e().then(u=>Promise.all([u,o.miss(u)])).then(([u])=>u)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}function E(t){let e=[...t.caches],o=e.shift();return o===void 0?K():{get(r,u,d={miss:()=>Promise.resolve()}){return o.get(r,u,d).catch(()=>E({caches:e}).get(r,u,d))},set(r,u){return o.set(r,u).catch(()=>E({caches:e}).set(r,u))},delete(r){return o.delete(r).catch(()=>E({caches:e}).delete(r))},clear(){return o.clear().catch(()=>E({caches:e}).clear())}}}function v(t={serializable:true}){let e={};return {get(o,r,u={miss:()=>Promise.resolve()}){let d=JSON.stringify(o);if(d in e)return Promise.resolve(t.serializable?JSON.parse(e[d]):e[d]);let g=r();return g.then(n=>u.miss(n)).then(()=>g)},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()}}}function Y(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 Q(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 j({algoliaAgents:t,client:e,version:o}){let r=Y(o).add({segment:e,version:o});return t.forEach(u=>r.add(u)),r}function W(){return {debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var k=2*60*1e3;function $(t,e="up"){let o=Date.now();function r(){return e==="up"||Date.now()-o>k}function u(){return e==="timed out"&&Date.now()-o<=k}return {...t,status:e,lastUpdate:o,isUp:r,isTimedOut:u}}var J=class extends Error{name="AlgoliaError";constructor(t,e){super(t),e&&(this.name=e);}};var z=class extends J{stackTrace;constructor(t,e,o){super(t,o),this.stackTrace=e;}},Z=class extends z{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");}},C=class extends z{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 C{error;constructor(t,e,o,r){super(t,e,r,"DetailedApiError"),this.error=o;}};function re(t,e,o){let r=se(o),u=`${t.protocol}://${t.url}${t.port?`:${t.port}`:""}/${e.charAt(0)==="/"?e.substring(1):e}`;return r.length&&(u+=`?${r}`),u}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]).replace(/\+/g,"%20")}`).join("&")}function oe(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 ae(t,e,o){let r={Accept:"application/json",...t,...e,...o},u={};return Object.keys(r).forEach(d=>{let g=r[d];u[d.toLowerCase()]=g;}),u}function ne(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 C(r.message,e,o)}catch{}return new C(t,e,o)}function ue({isTimedOut:t,status:e}){return !t&&~~e===0}function ce({isTimedOut:t,status:e}){return t||ue({isTimedOut:t,status:e})||~~(e/100)!==2&&~~(e/100)!==4}function me({status:t}){return ~~(t/100)===2}function le(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 V({hosts:t,hostsCache:e,baseHeaders:o,logger:r,baseQueryParameters:u,algoliaAgent:d,timeouts:g,requester:n,requestsCache:s,responsesCache:a}){async function c(i){let m=await Promise.all(i.map(P=>e.get(P,()=>Promise.resolve($(P))))),f=m.filter(P=>P.isUp()),p=m.filter(P=>P.isTimedOut()),w=[...f,...p];return {hosts:w.length>0?w:i,getTimeout(P,A){return (p.length===0&&P===0?1:p.length+3+P)*A}}}async function l(i,m,f=true){let p=[],w=oe(i,m),y=ae(o,i.headers,m.headers),P=i.method==="GET"?{...i.data,...m.data}:{},A={...u,...i.queryParameters,...P};if(d.value&&(A["x-algolia-agent"]=d.value),m&&m.queryParameters)for(let T of Object.keys(m.queryParameters))!m.queryParameters[T]||Object.prototype.toString.call(m.queryParameters[T])==="[object Object]"?A[T]=m.queryParameters[T]:A[T]=m.queryParameters[T].toString();let x=0,N=async(T,B)=>{let R=T.pop();if(R===void 0)throw new Z(le(p));let S={...g,...m.timeouts},_={data:w,headers:y,method:i.method,url:re(R,i.path,A),connectTimeout:B(x,S.connect),responseTimeout:B(x,f?S.read:S.write)},H=b=>{let L={request:_,response:b,host:R,triesLeft:T.length};return p.push(L),L},q=await n.send(_);if(ce(q)){let b=H(q);return q.isTimedOut&&x++,r.info("Retryable failure",M(b)),await e.set(R,$(R,q.isTimedOut?"timed out":"down")),N(T,B)}if(me(q))return ne(q);throw H(q),ie(q,p)},X=t.filter(T=>T.accept==="readWrite"||(f?T.accept==="read":T.accept==="write")),D=await c(X);return N([...D.hosts].reverse(),D.getTimeout)}function h(i,m={}){let f=i.useReadTransporter||i.method==="GET";if(!f)return l(i,m,f);let p=()=>l(i,m);if((m.cacheable||i.cacheable)!==true)return p();let y={request:i,requestOptions:m,transporter:{queryParameters:u,headers:o}};return a.get(y,()=>s.get(y,()=>s.set(y,p()).then(P=>Promise.all([s.delete(y),P]),P=>Promise.all([s.delete(y),Promise.reject(P)])).then(([P,A])=>A)),{miss:P=>a.set(y,P)})}return {hostsCache:e,requester:n,timeouts:g,logger:r,algoliaAgent:d,baseHeaders:o,baseQueryParameters:u,hosts:t,request:h,requestsCache:s,responsesCache:a}}var O="1.1.0",I=["de","us"];function de(t){return [{url:t?"analytics.{region}.algolia.com".replace("{region}",t):"analytics.algolia.com",accept:"readWrite",protocol:"https"}]}function F({appId:t,apiKey:e,authMode:o,algoliaAgents:r,region:u,...d}){let g=Q(t,e,o),n=V({hosts:de(u),...d,algoliaAgent:j({algoliaAgents:r,client:"AbtestingV3",version:O}),baseHeaders:{"content-type":"text/plain",...g.headers(),...d.baseHeaders},baseQueryParameters:{...g.queryParameters(),...d.baseQueryParameters}});return {transporter:n,appId:t,apiKey:e,clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})},get _ua(){return n.algoliaAgent.value},addAlgoliaAgent(s,a){n.algoliaAgent.add({segment:s,version:a});},setClientApiKey({apiKey:s}){!o||o==="WithinHeaders"?n.baseHeaders["x-algolia-api-key"]=s:n.baseQueryParameters["x-algolia-api-key"]=s;},addABTests(s,a){if(!s)throw new Error("Parameter `addABTestsRequest` is required when calling `addABTests`.");if(!s.name)throw new Error("Parameter `addABTestsRequest.name` is required when calling `addABTests`.");if(!s.variants)throw new Error("Parameter `addABTestsRequest.variants` is required when calling `addABTests`.");if(!s.metrics)throw new Error("Parameter `addABTestsRequest.metrics` is required when calling `addABTests`.");if(!s.endAt)throw new Error("Parameter `addABTestsRequest.endAt` is required when calling `addABTests`.");let i={method:"POST",path:"/3/abtests",queryParameters:{},headers:{},data:s};return n.request(i,a)},customDelete({path:s,parameters:a},c){if(!s)throw new Error("Parameter `path` is required when calling `customDelete`.");let m={method:"DELETE",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{}};return n.request(m,c)},customGet({path:s,parameters:a},c){if(!s)throw new Error("Parameter `path` is required when calling `customGet`.");let m={method:"GET",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{}};return n.request(m,c)},customPost({path:s,parameters:a,body:c},l){if(!s)throw new Error("Parameter `path` is required when calling `customPost`.");let f={method:"POST",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{},data:c||{}};return n.request(f,l)},customPut({path:s,parameters:a,body:c},l){if(!s)throw new Error("Parameter `path` is required when calling `customPut`.");let f={method:"PUT",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{},data:c||{}};return n.request(f,l)},deleteABTest({id:s},a){if(!s)throw new Error("Parameter `id` is required when calling `deleteABTest`.");let i={method:"DELETE",path:"/3/abtests/{id}".replace("{id}",encodeURIComponent(s)),queryParameters:{},headers:{}};return n.request(i,a)},estimateABTest(s,a){if(!s)throw new Error("Parameter `estimateABTestRequest` is required when calling `estimateABTest`.");if(!s.configuration)throw new Error("Parameter `estimateABTestRequest.configuration` is required when calling `estimateABTest`.");if(!s.variants)throw new Error("Parameter `estimateABTestRequest.variants` is required when calling `estimateABTest`.");let i={method:"POST",path:"/3/abtests/estimate",queryParameters:{},headers:{},data:s};return n.request(i,a)},getABTest({id:s},a){if(!s)throw new Error("Parameter `id` is required when calling `getABTest`.");let i={method:"GET",path:"/3/abtests/{id}".replace("{id}",encodeURIComponent(s)),queryParameters:{},headers:{}};return n.request(i,a)},getTimeseries({id:s,startDate:a,endDate:c,metric:l},h){if(!s)throw new Error("Parameter `id` is required when calling `getTimeseries`.");let i="/3/abtests/{id}/timeseries".replace("{id}",encodeURIComponent(s)),m={},f={};a!==void 0&&(f.startDate=a.toString()),c!==void 0&&(f.endDate=c.toString()),l!==void 0&&(f.metric=l.toString());let p={method:"GET",path:i,queryParameters:f,headers:m};return n.request(p,h)},listABTests({offset:s,limit:a,indexPrefix:c,indexSuffix:l,direction:h}={},i=void 0){let m="/3/abtests",f={},p={};s!==void 0&&(p.offset=s.toString()),a!==void 0&&(p.limit=a.toString()),c!==void 0&&(p.indexPrefix=c.toString()),l!==void 0&&(p.indexSuffix=l.toString()),h!==void 0&&(p.direction=h.toString());let w={method:"GET",path:m,queryParameters:p,headers:f};return n.request(w,i)},scheduleABTest(s,a){if(!s)throw new Error("Parameter `scheduleABTestsRequest` is required when calling `scheduleABTest`.");if(!s.name)throw new Error("Parameter `scheduleABTestsRequest.name` is required when calling `scheduleABTest`.");if(!s.variants)throw new Error("Parameter `scheduleABTestsRequest.variants` is required when calling `scheduleABTest`.");if(!s.metrics)throw new Error("Parameter `scheduleABTestsRequest.metrics` is required when calling `scheduleABTest`.");if(!s.scheduledAt)throw new Error("Parameter `scheduleABTestsRequest.scheduledAt` is required when calling `scheduleABTest`.");if(!s.endAt)throw new Error("Parameter `scheduleABTestsRequest.endAt` is required when calling `scheduleABTest`.");let i={method:"POST",path:"/3/abtests/schedule",queryParameters:{},headers:{},data:s};return n.request(i,a)},stopABTest({id:s},a){if(!s)throw new Error("Parameter `id` is required when calling `stopABTest`.");let i={method:"POST",path:"/3/abtests/{id}/stop".replace("{id}",encodeURIComponent(s)),queryParameters:{},headers:{}};return n.request(i,a)}}}function it(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"||!I.includes(o)))throw new Error(`\`region\` must be one of the following: ${I.join(", ")}`);return F({appId:t,apiKey:e,region:o,timeouts:{connect:1e3,read:2e3,write:3e4},logger:W(),requester:U(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:v(),requestsCache:v({serializable:false}),hostsCache:E({caches:[G({key:`${O}-${t}`}),v()]}),...r})}
|
|
|
|
exports.abtestingV3Client = it;
|
|
exports.apiClientVersion = O;
|
|
|
|
}));
|