2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
function W(r){let e,s=`algolia-client-js-${r.key}`;function t(){return e===void 0&&(e=r.localStorage||window.localStorage),e}function a(){return JSON.parse(t().getItem(s)||"{}")}function l(o){t().setItem(s,JSON.stringify(o))}function i(){let o=r.timeToLive?r.timeToLive*1e3:null,n=a(),c=Object.fromEntries(Object.entries(n).filter(([,m])=>m.timestamp!==void 0));if(l(c),!o)return;let u=Object.fromEntries(Object.entries(c).filter(([,m])=>{let p=new Date().getTime();return!(m.timestamp+o<p)}));l(u)}return{get(o,n,c={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(i(),a()[JSON.stringify(o)])).then(u=>Promise.all([u?u.value:n(),u!==void 0])).then(([u,m])=>Promise.all([u,m||c.miss(u)])).then(([u])=>u)},set(o,n){return Promise.resolve().then(()=>{let c=a();return c[JSON.stringify(o)]={timestamp:new Date().getTime(),value:n},t().setItem(s,JSON.stringify(c)),n})},delete(o){return Promise.resolve().then(()=>{let n=a();delete n[JSON.stringify(o)],t().setItem(s,JSON.stringify(n))})},clear(){return Promise.resolve().then(()=>{t().removeItem(s)})}}}function re(){return{get(r,e,s={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,s.miss(a)])).then(([a])=>a)},set(r,e){return Promise.resolve(e)},delete(r){return Promise.resolve()},clear(){return Promise.resolve()}}}function v(r){let e=[...r.caches],s=e.shift();return s===void 0?re():{get(t,a,l={miss:()=>Promise.resolve()}){return s.get(t,a,l).catch(()=>v({caches:e}).get(t,a,l))},set(t,a){return s.set(t,a).catch(()=>v({caches:e}).set(t,a))},delete(t){return s.delete(t).catch(()=>v({caches:e}).delete(t))},clear(){return s.clear().catch(()=>v({caches:e}).clear())}}}function I(r={serializable:!0}){let e={};return{get(s,t,a={miss:()=>Promise.resolve()}){let l=JSON.stringify(s);if(l in e)return Promise.resolve(r.serializable?JSON.parse(e[l]):e[l]);let i=t();return i.then(o=>a.miss(o)).then(()=>i)},set(s,t){return e[JSON.stringify(s)]=r.serializable?JSON.stringify(t):t,Promise.resolve(t)},delete(s){return delete e[JSON.stringify(s)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}function te(r){let e={value:`Algolia for JavaScript (${r})`,add(s){let t=`; ${s.segment}${s.version!==void 0?` (${s.version})`:""}`;return e.value.indexOf(t)===-1&&(e.value=`${e.value}${t}`),e}};return e}function j(r,e,s="WithinHeaders"){let t={"x-algolia-api-key":e,"x-algolia-application-id":r};return{headers(){return s==="WithinHeaders"?t:{}},queryParameters(){return s==="WithinQueryParameters"?t:{}}}}function z({algoliaAgents:r,client:e,version:s}){let t=te(s).add({segment:e,version:s});return r.forEach(a=>t.add(a)),t}function J(){return{debug(r,e){return Promise.resolve()},info(r,e){return Promise.resolve()},error(r,e){return Promise.resolve()}}}var se=750,Q=120*1e3;function $(r,e="up"){let s=Date.now();function t(){return e==="up"||Date.now()-s>Q}function a(){return e==="timed out"&&Date.now()-s<=Q}return{...r,status:e,lastUpdate:s,isUp:t,isTimedOut:a}}var F=class extends Error{name="AlgoliaError";constructor(r,e){super(r),e&&(this.name=e)}};var B=class extends F{stackTrace;constructor(r,e,s){super(r,s),this.stackTrace=e}},oe=class extends B{constructor(r){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",r,"RetryError")}},_=class extends B{status;constructor(r,e,s,t="ApiError"){super(r,s,t),this.status=e}},ne=class extends F{response;constructor(r,e){super(r,"DeserializationError"),this.response=e}},ae=class extends _{error;constructor(r,e,s,t){super(r,e,t,"DetailedApiError"),this.error=s}};function ie(r,e,s){let t=ce(s),a=`${r.protocol}://${r.url}${r.port?`:${r.port}`:""}/${e.charAt(0)==="/"?e.substring(1):e}`;return t.length&&(a+=`?${t}`),a}function ce(r){return Object.keys(r).filter(e=>r[e]!==void 0).sort().map(e=>`${e}=${encodeURIComponent(Object.prototype.toString.call(r[e])==="[object Array]"?r[e].join(","):r[e]).replace(/\+/g,"%20")}`).join("&")}function ue(r,e){if(r.method==="GET"||r.data===void 0&&e.data===void 0)return;let s=Array.isArray(r.data)?r.data:{...r.data,...e.data};return JSON.stringify(s)}function le(r,e,s){let t={Accept:"application/json",...r,...e,...s},a={};return Object.keys(t).forEach(l=>{let i=t[l];a[l.toLowerCase()]=i}),a}function me(r){try{return JSON.parse(r.content)}catch(e){throw new ne(e.message,r)}}function de({content:r,status:e},s){try{let t=JSON.parse(r);return"error"in t?new ae(t.message,e,t.error,s):new _(t.message,e,s)}catch{}return new _(r,e,s)}function pe({isTimedOut:r,status:e}){return!r&&~~e===0}function he({isTimedOut:r,status:e}){return r||pe({isTimedOut:r,status:e})||~~(e/100)!==2&&~~(e/100)!==4}function fe({status:r}){return~~(r/100)===2}function Pe(r){return r.map(e=>X(e))}function X(r){let e=r.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...r,request:{...r.request,headers:{...r.request.headers,...e}}}}function K({hosts:r,hostsCache:e,baseHeaders:s,logger:t,baseQueryParameters:a,algoliaAgent:l,timeouts:i,requester:o,requestsCache:n,responsesCache:c,compress:u,compression:m}){async function p(h){let f=await Promise.all(h.map(d=>e.get(d,()=>Promise.resolve($(d))))),T=f.filter(d=>d.isUp()),q=f.filter(d=>d.isTimedOut()),R=[...T,...q];return{hosts:R.length>0?R:h,getTimeout(d,w){return(q.length===0&&d===0?1:q.length+3+d)*w}}}async function g(h,f,T){let q=[],R=ue(h,f),y=le(s,h.headers,f.headers),d=m==="gzip"&&R!==void 0&&R.length>se&&(h.method==="POST"||h.method==="PUT");d&&u===void 0&&t.info("Compression is disabled because no compress method is available.");let w=d&&u!==void 0,G=w?await u(R):R;w&&(y["content-encoding"]="gzip");let Z=h.method==="GET"?{...h.data,...f.data}:{},C={...a,...h.queryParameters,...Z};if(l.value&&(C["x-algolia-agent"]=l.value),f&&f.queryParameters)for(let P of Object.keys(f.queryParameters))!f.queryParameters[P]||Object.prototype.toString.call(f.queryParameters[P])==="[object Object]"?C[P]=f.queryParameters[P]:C[P]=f.queryParameters[P].toString();let b=0,H=async(P,A)=>{let O=P.pop();if(O===void 0)throw new oe(Pe(q));let N={...i,...f.timeouts},L={data:G,headers:y,method:h.method,url:ie(O,h.path,C),connectTimeout:A(b,N.connect),responseTimeout:A(b,T?N.read:N.write)},k=D=>{let M={request:L,response:D,host:O,triesLeft:P.length};return q.push(M),M},E=await o.send(L);if(he(E)){let D=k(E);return E.isTimedOut&&b++,t.info("Retryable failure",X(D)),await e.set(O,$(O,E.isTimedOut?"timed out":"down")),H(P,A)}if(fe(E))return me(E);throw k(E),de(E,q)},ee=r.filter(P=>P.accept==="readWrite"||(T?P.accept==="read":P.accept==="write")),U=await p(ee);return H([...U.hosts].reverse(),U.getTimeout)}function x(h,f={}){let T=()=>g(h,f,q),q=h.useReadTransporter||h.method==="GET";if((f.cacheable||h.cacheable)!==!0)return T();let y={request:h,requestOptions:f,transporter:{queryParameters:a,headers:s}};return c.get(y,()=>n.get(y,()=>n.set(y,T()).then(d=>Promise.all([n.delete(y),d]),d=>Promise.all([n.delete(y),Promise.reject(d)])).then(([d,w])=>w)),{miss:d=>c.set(y,d)})}return{hostsCache:e,requester:o,timeouts:i,logger:t,algoliaAgent:l,baseHeaders:s,baseQueryParameters:a,hosts:r,request:x,requestsCache:n,responsesCache:c}}function V(){function r(e){return new Promise(s=>{let t=new XMLHttpRequest;t.open(e.method,e.url,!0),Object.keys(e.headers).forEach(o=>t.setRequestHeader(o,e.headers[o]));let a=(o,n)=>setTimeout(()=>{t.abort(),s({status:0,content:n,isTimedOut:!0})},o),l=a(e.connectTimeout,"Connection timeout"),i;t.onreadystatechange=()=>{t.readyState>t.OPENED&&i===void 0&&(clearTimeout(l),i=a(e.responseTimeout,"Socket timeout"))},t.onerror=()=>{t.status===0&&(clearTimeout(l),clearTimeout(i),s({content:t.responseText||"Network request failed",status:t.status,isTimedOut:!1}))},t.onload=()=>{clearTimeout(l),clearTimeout(i),s({content:t.responseText,status:t.status,isTimedOut:!1})},t.send(e.data)})}return{send:r}}var S="1.52.0";function ge(){return[{url:"status.algolia.com",accept:"readWrite",protocol:"https"}]}function Y({appId:r,apiKey:e,authMode:s,algoliaAgents:t,...a}){let l=j(r,e,s),i=K({hosts:ge(),...a,algoliaAgent:z({algoliaAgents:t,client:"Monitoring",version:S}),baseHeaders:{"content-type":"text/plain",...l.headers(),...a.baseHeaders},baseQueryParameters:{...l.queryParameters(),...a.baseQueryParameters}});return{transporter:i,appId:r,apiKey:e,clearCache(){return Promise.all([i.requestsCache.clear(),i.responsesCache.clear()]).then(()=>{})},get _ua(){return i.algoliaAgent.value},addAlgoliaAgent(o,n){i.algoliaAgent.add({segment:o,version:n})},setClientApiKey({apiKey:o}){!s||s==="WithinHeaders"?i.baseHeaders["x-algolia-api-key"]=o:i.baseQueryParameters["x-algolia-api-key"]=o},customDelete({path:o,parameters:n},c){if(!o)throw new Error("Parameter `path` is required when calling `customDelete`.");let g={method:"DELETE",path:"/{path}".replace("{path}",o),queryParameters:n||{},headers:{}};return i.request(g,c)},customGet({path:o,parameters:n},c){if(!o)throw new Error("Parameter `path` is required when calling `customGet`.");let g={method:"GET",path:"/{path}".replace("{path}",o),queryParameters:n||{},headers:{}};return i.request(g,c)},customPost({path:o,parameters:n,body:c},u){if(!o)throw new Error("Parameter `path` is required when calling `customPost`.");let x={method:"POST",path:"/{path}".replace("{path}",o),queryParameters:n||{},headers:{},data:c||{}};return i.request(x,u)},customPut({path:o,parameters:n,body:c},u){if(!o)throw new Error("Parameter `path` is required when calling `customPut`.");let x={method:"PUT",path:"/{path}".replace("{path}",o),queryParameters:n||{},headers:{},data:c||{}};return i.request(x,u)},getClusterIncidents({clusters:o},n){if(!o)throw new Error("Parameter `clusters` is required when calling `getClusterIncidents`.");let p={method:"GET",path:"/1/incidents/{clusters}".replace("{clusters}",encodeURIComponent(o)),queryParameters:{},headers:{}};return i.request(p,n)},getClusterStatus({clusters:o},n){if(!o)throw new Error("Parameter `clusters` is required when calling `getClusterStatus`.");let p={method:"GET",path:"/1/status/{clusters}".replace("{clusters}",encodeURIComponent(o)),queryParameters:{},headers:{}};return i.request(p,n)},getIncidents(o){let m={method:"GET",path:"/1/incidents",queryParameters:{},headers:{}};return i.request(m,o)},getIndexingTime({clusters:o},n){if(!o)throw new Error("Parameter `clusters` is required when calling `getIndexingTime`.");let p={method:"GET",path:"/1/indexing/{clusters}".replace("{clusters}",encodeURIComponent(o)),queryParameters:{},headers:{}};return i.request(p,n)},getLatency({clusters:o},n){if(!o)throw new Error("Parameter `clusters` is required when calling `getLatency`.");let p={method:"GET",path:"/1/latency/{clusters}".replace("{clusters}",encodeURIComponent(o)),queryParameters:{},headers:{}};return i.request(p,n)},getMetrics({metric:o,period:n},c){if(!o)throw new Error("Parameter `metric` is required when calling `getMetrics`.");if(!n)throw new Error("Parameter `period` is required when calling `getMetrics`.");let g={method:"GET",path:"/1/infrastructure/{metric}/period/{period}".replace("{metric}",encodeURIComponent(o)).replace("{period}",encodeURIComponent(n)),queryParameters:{},headers:{}};return i.request(g,c)},getReachability({clusters:o},n){if(!o)throw new Error("Parameter `clusters` is required when calling `getReachability`.");let p={method:"GET",path:"/1/reachability/{clusters}/probes".replace("{clusters}",encodeURIComponent(o)),queryParameters:{},headers:{}};return i.request(p,n)},getServers(o){let m={method:"GET",path:"/1/inventory/servers",queryParameters:{},headers:{}};return i.request(m,o)},getStatus(o){let m={method:"GET",path:"/1/status",queryParameters:{},headers:{}};return i.request(m,o)}}}function tr(r,e,s){if(!r||typeof r!="string")throw new Error("`appId` is missing.");if(!e||typeof e!="string")throw new Error("`apiKey` is missing.");let{compression:t,...a}=s||{};return Y({appId:r,apiKey:e,timeouts:{connect:1e3,read:2e3,write:3e4},logger:J(),requester:V(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:I(),requestsCache:I({serializable:!1}),hostsCache:v({caches:[W({key:`${S}-${r}`}),I()]}),...a})}export{S as apiClientVersion,tr as monitoringClient};
|
|
//# sourceMappingURL=browser.min.js.map
|