Files
Your Name 38652eb9b5 Initalize
2026-05-03 12:12:57 -04:00

2 lines
12 KiB
JavaScript

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