import{k as e,m as t,r,n as a,o as n,c as s,y as l,s as i,v as u,z as o,g as d,w as m,L as v}from"./rsa-plugins-common.min.js";import{R as c}from"./rsa-plugins-RetryQueue.min.js";const p={maxRetryDelay:36e4,minRetryDelay:1e3,backoffFactor:2,maxAttempts:10,maxItems:100},y="v1",A=(e,t,r)=>i({batch:e,sentAt:t},!0,void 0,r),h=(e,t)=>{const a=new URL(e);return new URL(r([a.pathname,"/",y,"/",t].join("")),a).href},R=(t,r,a,n)=>{var s,l;if(!n)return;let i=(u="XhrQueuePlugin",o=null!==(s=null==t||null===(l=t.error)||void 0===l?void 0:l.message)&&void 0!==s?s:"Unknown",`${u}${e}Failed to deliver event(s). Cause: ${o}.`);var u,o;const d="The event(s) will be dropped.";r?a.willBeRetried?(i=`${i} The event(s) will be retried.`,a.retryAttemptNumber>0&&(i=`${i} Retry attempt ${a.retryAttemptNumber} of ${a.maxRetryAttempts}.`),n.warn(i)):n.error(`${i} Retries exhausted (${a.maxRetryAttempts}). ${d}`):n.error(`${i} ${d}`)},f=(e,t,r,i)=>{let u,o,d;const m=a();if(Array.isArray(e)){const r=e.map((e=>n(e.event,m)));u=A(r,m,i),o=e[0]?s(e[0].headers):{},v=t.lifecycle.activeDataplaneUrl.value,d=h(v,"batch")}else{const{url:t,event:r,headers:a}=e,v=n(r,m);u=l(v,i),o=s(a),d=t}var v;return o.SentAt=m,r.reclaimed&&(o.Reclaimed="true"),r.retryAttemptNumber>0&&(o["Retry-Attempt"]=r.retryAttemptNumber.toString(),o["Retried-After"]=r.timeSinceLastAttempt.toString(),o["Retried-After-First"]=r.timeSinceFirstAttempt.toString()),{data:u,headers:o,url:d}},g="XhrQueue",$=()=>({name:g,deps:[],initialize:e=>{e.plugins.loadedPlugins.value=[...e.plugins.loadedPlugins.value,g]},dataplaneEventsQueue:{init(e,r,n,s,l){const i=e.lifecycle.writeKey.value;r.setAuthHeader(i);const u=(o=e.loadOptions.value.queueOptions,t(p,o));var o;return new c(`rudder_${i}`,u,((t,a,n)=>{const{data:s,url:i,headers:u}=f(t,e,n,l);r.getAsyncData({url:i,options:{method:"POST",headers:u,data:s,sendRawData:!0},isRawResponse:!0,timeout:3e4,callback:(e,t)=>{var r,s;if(d(null==t?void 0:t.error))return void a(null);const i=m(null!==(r=null==t||null===(s=t.xhr)||void 0===s?void 0:s.status)&&void 0!==r?r:0);R(t,i,n,l);a(i?t:null)}})}),n,v,l,(e=>{var t;const r=a(),n=e.map((e=>e.event));return null===(t=A(n,r,l))||void 0===t?void 0:t.length}))},enqueue(e,t,r,n,s){r.sentAt=a(),u(r,s);const l=e.lifecycle.activeDataplaneUrl.value,i=h(l,r.type),d={AnonymousId:o(r.anonymousId)};t.addItem({url:i,headers:d,event:r})}}});export{$ as XhrQueue,$ as default}; //# sourceMappingURL=rsa-plugins-remote-XhrQueue.min.js.map