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