jira-daily-report 0.1.113 → 0.1.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/extension.js +2 -1
- package/dist/extension.js.map +1 -1
- package/package.json +1 -1
package/dist/extension.js
CHANGED
|
@@ -12,7 +12,8 @@ Arguments: `+Array.prototype.slice.call(O).join("")+`
|
|
|
12
12
|
`,rA=k2.encode(W1),sA=2,vo=class{constructor(p,b){let{escapeName:z}=this.constructor,a=u.isString(b),n=`Content-Disposition: form-data; name="${z(p)}"${!a&&b.name?`; filename="${z(b.name)}"`:""}${W1}`;a?b=k2.encode(String(b).replace(/\r?\n|\r\n?/g,W1)):n+=`Content-Type: ${b.type||"application/octet-stream"}${W1}`,this.headers=k2.encode(n+W1),this.contentLength=a?b.byteLength:b.size,this.size=this.headers.byteLength+this.contentLength+sA,this.name=p,this.value=b}async*encode(){yield this.headers;let{value:p}=this;u.isTypedArray(p)?yield p:yield*wp(p),yield rA}static escapeName(p){return String(p).replace(/[\r\n"]/g,b=>({"\r":"%0D","\n":"%0A",'"':"%22"})[b])}},AA=(o,p,b)=>{let{tag:z="form-data-boundary",size:a=25,boundary:n=z+"-"+Z.generateString(a,iA)}=b||{};if(!u.isFormData(o))throw TypeError("FormData instance required");if(n.length<1||n.length>70)throw Error("boundary must be 10-70 characters long");let t=k2.encode("--"+n+W1),r=k2.encode("--"+n+"--"+W1+W1),q=r.byteLength,l=Array.from(o.entries()).map(([f,h])=>{let B=new vo(f,h);return q+=B.size,B});q+=t.byteLength*l.length,q=u.toFiniteNumber(q);let A={"Content-Type":`multipart/form-data; boundary=${n}`};return Number.isFinite(q)&&(A["Content-Length"]=q),p&&p(A),$c.Readable.from(async function*(){for(let f of l)yield t,yield*f.encode();yield r}())},Vc=AA;var Kc=p0(require("stream"),1),yo=class extends Kc.default.Transform{__transform(p,b,z){this.push(p),z()}_transform(p,b,z){if(p.length!==0&&(this._transform=this.__transform,p[0]!==120)){let a=Buffer.alloc(2);a[0]=120,a[1]=156,this.push(a,b)}this.__transform(p,b,z)}},Jc=yo;var qA=(o,p)=>u.isAsyncFn(o)?function(...b){let z=b.pop();o.apply(this,b).then(a=>{try{p?z(null,...p(a)):z(null,a)}catch(n){z(n)}},z)}:o,Qc=qA;function dA(o,p){o=o||10;let b=new Array(o),z=new Array(o),a=0,n=0,t;return p=p!==void 0?p:1e3,function(q){let l=Date.now(),A=z[n];t||(t=l),b[a]=q,z[a]=l;let f=n,h=0;for(;f!==a;)h+=b[f++],f=f%o;if(a=(a+1)%o,a===n&&(n=(n+1)%o),l-t<p)return;let B=A&&l-A;return B?Math.round(h*1e3/B):void 0}}var Zc=dA;function uA(o,p){let b=0,z=1e3/p,a,n,t=(l,A=Date.now())=>{b=A,a=null,n&&(clearTimeout(n),n=null),o.apply(null,l)};return[(...l)=>{let A=Date.now(),f=A-b;f>=z?t(l,A):(a=l,n||(n=setTimeout(()=>{n=null,t(a)},z-f)))},()=>a&&t(a)]}var pa=uA;var r1=(o,p,b=3)=>{let z=0,a=Zc(50,250);return pa(n=>{let t=n.loaded,r=n.lengthComputable?n.total:void 0,q=t-z,l=a(q),A=t<=r;z=t;let f={loaded:t,total:r,progress:r?t/r:void 0,bytes:q,rate:l||void 0,estimated:l&&r&&A?(r-t)/l:void 0,event:n,lengthComputable:r!=null,[p?"download":"upload"]:!0};o(f)},b)},c2=(o,p)=>{let b=o!=null;return[z=>p[0]({lengthComputable:b,total:o,loaded:z}),p[1]]},a2=o=>(...p)=>u.asap(()=>o(...p));var Ma={flush:s1.default.constants.Z_SYNC_FLUSH,finishFlush:s1.default.constants.Z_SYNC_FLUSH},lA={flush:s1.default.constants.BROTLI_OPERATION_FLUSH,finishFlush:s1.default.constants.BROTLI_OPERATION_FLUSH},oa=u.isFunction(s1.default.createBrotliDecompress),{http:WA,https:fA}=ta.default,mA=/https:?/,ba=Z.protocols.map(o=>o+":"),ea=(o,[p,b])=>(o.on("end",b).on("error",b),p);function RA(o,p){o.beforeRedirects.proxy&&o.beforeRedirects.proxy(o),o.beforeRedirects.config&&o.beforeRedirects.config(o,p)}function ra(o,p,b){let z=p;if(!z&&z!==!1){let a=ca.default.getProxyForUrl(b);a&&(z=new URL(a))}if(z){if(z.username&&(z.auth=(z.username||"")+":"+(z.password||"")),z.auth){(z.auth.username||z.auth.password)&&(z.auth=(z.auth.username||"")+":"+(z.auth.password||""));let n=Buffer.from(z.auth,"utf8").toString("base64");o.headers["Proxy-Authorization"]="Basic "+n}o.headers.host=o.hostname+(o.port?":"+o.port:"");let a=z.hostname||z.host;o.hostname=a,o.host=a,o.port=z.port,o.path=b,z.protocol&&(o.protocol=z.protocol.includes(":")?z.protocol:`${z.protocol}:`)}o.beforeRedirects.proxy=function(n){ra(n,p,n.href)}}var hA=typeof process<"u"&&u.kindOf(process)==="process",LA=o=>new Promise((p,b)=>{let z,a,n=(q,l)=>{a||(a=!0,z&&z(q,l))},t=q=>{n(q),p(q)},r=q=>{n(q,!0),b(q)};o(t,r,q=>z=q).catch(r)}),NA=({address:o,family:p})=>{if(!u.isString(o))throw TypeError("address must be a string");return{address:o,family:p||(o.indexOf(".")<0?6:4)}},za=(o,p)=>NA(u.isObject(o)?o:{address:o,family:p}),sa=hA&&function(p){return LA(async function(z,a,n){let{data:t,lookup:r,family:q}=p,{responseType:l,responseEncoding:A}=p,f=p.method.toUpperCase(),h,B=!1,W;if(r){let P=Qc(r,E=>u.isArray(E)?E:[E]);r=(E,q0,E0)=>{P(E,q0,(t0,v0,k)=>{if(t0)return E0(t0);let y0=u.isArray(v0)?v0.map(d0=>za(d0)):[za(v0,k)];q0.all?E0(t0,y0):E0(t0,y0[0].address,y0[0].family)})}}let R=new ia.EventEmitter,x=()=>{p.cancelToken&&p.cancelToken.unsubscribe(S),p.signal&&p.signal.removeEventListener("abort",S),R.removeAllListeners()};n((P,E)=>{h=!0,E&&(B=!0,x())});function S(P){R.emit("abort",!P||P.type?new I0(null,p,W):P)}R.once("abort",a),(p.cancelToken||p.signal)&&(p.cancelToken&&p.cancelToken.subscribe(S),p.signal&&(p.signal.aborted?S():p.signal.addEventListener("abort",S)));let I=B1(p.baseURL,p.url),C=new URL(I,Z.hasBrowserEnv?Z.origin:void 0),G=C.protocol||ba[0];if(G==="data:"){let P;if(f!=="GET")return Z0(z,a,{status:405,statusText:"method not allowed",headers:{},config:p});try{P=No(p.url,l==="blob",{Blob:p.env&&p.env.Blob})}catch(E){throw y.from(E,y.ERR_BAD_REQUEST,p)}return l==="text"?(P=P.toString(A),(!A||A==="utf8")&&(P=u.stripBOM(P))):l==="stream"&&(P=w1.default.Readable.from(P)),Z0(z,a,{data:P,status:200,statusText:"OK",headers:new r0,config:p})}if(ba.indexOf(G)===-1)return a(new y("Unsupported protocol "+G,y.ERR_BAD_REQUEST,p));let U=r0.from(p.headers).normalize();U.set("User-Agent","axios/"+T1,!1);let{onUploadProgress:M0,onDownloadProgress:L0}=p,e0=p.maxRate,S0,M1;if(u.isSpecCompliantForm(t)){let P=U.getContentType(/boundary=([-_\w\d]{10,70})/i);t=Vc(t,E=>{U.set(E)},{tag:`axios-${T1}-boundary`,boundary:P&&P[1]||void 0})}else if(u.isFormData(t)&&u.isFunction(t.getHeaders)){if(U.set(t.getHeaders()),!U.hasContentLength())try{let P=await na.default.promisify(t.getLength).call(t);Number.isFinite(P)&&P>=0&&U.setContentLength(P)}catch{}}else if(u.isBlob(t)||u.isFile(t))t.size&&U.setContentType(t.type||"application/octet-stream"),U.setContentLength(t.size||0),t=w1.default.Readable.from(wp(t));else if(t&&!u.isStream(t)){if(!Buffer.isBuffer(t))if(u.isArrayBuffer(t))t=Buffer.from(new Uint8Array(t));else if(u.isString(t))t=Buffer.from(t,"utf-8");else return a(new y("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",y.ERR_BAD_REQUEST,p));if(U.setContentLength(t.length,!1),p.maxBodyLength>-1&&t.length>p.maxBodyLength)return a(new y("Request body larger than maxBodyLength limit",y.ERR_BAD_REQUEST,p))}let k0=u.toFiniteNumber(U.getContentLength());u.isArray(e0)?(S0=e0[0],M1=e0[1]):S0=M1=e0,t&&(M0||S0)&&(u.isStream(t)||(t=w1.default.Readable.from(t,{objectMode:!1})),t=w1.default.pipeline([t,new Bo({maxRate:u.toFiniteNumber(S0)})],u.noop),M0&&t.on("progress",ea(t,c2(k0,r1(a2(M0),!1,3)))));let o1;if(p.auth){let P=p.auth.username||"",E=p.auth.password||"";o1=P+":"+E}if(!o1&&C.username){let P=C.username,E=C.password;o1=P+":"+E}o1&&U.delete("authorization");let U0;try{U0=g1(C.pathname+C.search,p.params,p.paramsSerializer).replace(/^\?/,"")}catch(P){let E=new Error(P.message);return E.config=p,E.url=p.url,E.exists=!0,a(E)}U.set("Accept-Encoding","gzip, compress, deflate"+(oa?", br":""),!1);let l0={path:U0,method:f,headers:U.toJSON(),agents:{http:p.httpAgent,https:p.httpsAgent},auth:o1,protocol:G,family:q,beforeRedirect:RA,beforeRedirects:{}};!u.isUndefined(r)&&(l0.lookup=r),p.socketPath?l0.socketPath=p.socketPath:(l0.hostname=C.hostname.startsWith("[")?C.hostname.slice(1,-1):C.hostname,l0.port=C.port,ra(l0,p.proxy,G+"//"+C.hostname+(C.port?":"+C.port:"")+l0.path));let R0,f1=mA.test(l0.protocol);if(l0.agent=f1?p.httpsAgent:p.httpAgent,p.transport?R0=p.transport:p.maxRedirects===0?R0=f1?Oa.default:aa.default:(p.maxRedirects&&(l0.maxRedirects=p.maxRedirects),p.beforeRedirect&&(l0.beforeRedirects.config=p.beforeRedirect),R0=f1?fA:WA),p.maxBodyLength>-1?l0.maxBodyLength=p.maxBodyLength:l0.maxBodyLength=1/0,p.insecureHTTPParser&&(l0.insecureHTTPParser=p.insecureHTTPParser),W=R0.request(l0,function(E){if(W.destroyed)return;let q0=[E],E0=+E.headers["content-length"];if(L0||M1){let d0=new Bo({maxRate:u.toFiniteNumber(M1)});L0&&d0.on("progress",ea(d0,c2(E0,r1(a2(L0),!0,3)))),q0.push(d0)}let t0=E,v0=E.req||W;if(p.decompress!==!1&&E.headers["content-encoding"])switch((f==="HEAD"||E.statusCode===204)&&delete E.headers["content-encoding"],(E.headers["content-encoding"]||"").toLowerCase()){case"gzip":case"x-gzip":case"compress":case"x-compress":q0.push(s1.default.createUnzip(Ma)),delete E.headers["content-encoding"];break;case"deflate":q0.push(new Jc),q0.push(s1.default.createUnzip(Ma)),delete E.headers["content-encoding"];break;case"br":oa&&(q0.push(s1.default.createBrotliDecompress(lA)),delete E.headers["content-encoding"])}t0=q0.length>1?w1.default.pipeline(q0,u.noop):q0[0];let k=w1.default.finished(t0,()=>{k(),x()}),y0={status:E.statusCode,statusText:E.statusMessage,headers:new r0(E.headers),config:p,request:v0};if(l==="stream")y0.data=t0,Z0(z,a,y0);else{let d0=[],J=0;t0.on("data",function(f0){d0.push(f0),J+=f0.length,p.maxContentLength>-1&&J>p.maxContentLength&&(B=!0,t0.destroy(),a(new y("maxContentLength size of "+p.maxContentLength+" exceeded",y.ERR_BAD_RESPONSE,p,v0)))}),t0.on("aborted",function(){if(B)return;let f0=new y("stream has been aborted",y.ERR_BAD_RESPONSE,p,v0);t0.destroy(f0),a(f0)}),t0.on("error",function(f0){W.destroyed||a(y.from(f0,null,p,v0))}),t0.on("end",function(){try{let f0=d0.length===1?d0[0]:Buffer.concat(d0);l!=="arraybuffer"&&(f0=f0.toString(A),(!A||A==="utf8")&&(f0=u.stripBOM(f0))),y0.data=f0}catch(f0){return a(y.from(f0,null,p,y0.request,y0))}Z0(z,a,y0)})}R.once("abort",d0=>{t0.destroyed||(t0.emit("error",d0),t0.destroy())})}),R.once("abort",P=>{a(P),W.destroy(P)}),W.on("error",function(E){a(y.from(E,null,p,W))}),W.on("socket",function(E){E.setKeepAlive(!0,1e3*60)}),p.timeout){let P=parseInt(p.timeout,10);if(Number.isNaN(P)){a(new y("error trying to parse `config.timeout` to int",y.ERR_BAD_OPTION_VALUE,p,W));return}W.setTimeout(P,function(){if(h)return;let q0=p.timeout?"timeout of "+p.timeout+"ms exceeded":"timeout exceeded",E0=p.transitional||Z1;p.timeoutErrorMessage&&(q0=p.timeoutErrorMessage),a(new y(q0,E0.clarifyTimeoutError?y.ETIMEDOUT:y.ECONNABORTED,p,W)),S()})}if(u.isStream(t)){let P=!1,E=!1;t.on("end",()=>{P=!0}),t.once("error",q0=>{E=!0,W.destroy(q0)}),t.on("close",()=>{!P&&!E&&S(new I0("Request stream has been aborted",p,W))}),t.pipe(W)}else W.end(t)})};var Aa=Z.hasStandardBrowserEnv?((o,p)=>b=>(b=new URL(b,Z.origin),o.protocol===b.protocol&&o.host===b.host&&(p||o.port===b.port)))(new URL(Z.origin),Z.navigator&&/(msie|trident)/i.test(Z.navigator.userAgent)):()=>!0;var qa=Z.hasStandardBrowserEnv?{write(o,p,b,z,a,n){let t=[o+"="+encodeURIComponent(p)];u.isNumber(b)&&t.push("expires="+new Date(b).toGMTString()),u.isString(z)&&t.push("path="+z),u.isString(a)&&t.push("domain="+a),n===!0&&t.push("secure"),document.cookie=t.join("; ")},read(o){let p=document.cookie.match(new RegExp("(^|;\\s*)("+o+")=([^;]*)"));return p?decodeURIComponent(p[3]):null},remove(o){this.write(o,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};var da=o=>o instanceof r0?{...o}:o;function J0(o,p){p=p||{};let b={};function z(l,A,f,h){return u.isPlainObject(l)&&u.isPlainObject(A)?u.merge.call({caseless:h},l,A):u.isPlainObject(A)?u.merge({},A):u.isArray(A)?A.slice():A}function a(l,A,f,h){if(u.isUndefined(A)){if(!u.isUndefined(l))return z(void 0,l,f,h)}else return z(l,A,f,h)}function n(l,A){if(!u.isUndefined(A))return z(void 0,A)}function t(l,A){if(u.isUndefined(A)){if(!u.isUndefined(l))return z(void 0,l)}else return z(void 0,A)}function r(l,A,f){if(f in p)return z(l,A);if(f in o)return z(void 0,l)}let q={url:n,method:n,data:n,baseURL:t,transformRequest:t,transformResponse:t,paramsSerializer:t,timeout:t,timeoutMessage:t,withCredentials:t,withXSRFToken:t,adapter:t,responseType:t,xsrfCookieName:t,xsrfHeaderName:t,onUploadProgress:t,onDownloadProgress:t,decompress:t,maxContentLength:t,maxBodyLength:t,beforeRedirect:t,transport:t,httpAgent:t,httpsAgent:t,cancelToken:t,socketPath:t,responseEncoding:t,validateStatus:r,headers:(l,A,f)=>a(da(l),da(A),f,!0)};return u.forEach(Object.keys(Object.assign({},o,p)),function(A){let f=q[A]||a,h=f(o[A],p[A],A);u.isUndefined(h)&&f!==r||(b[A]=h)}),b}var Sp=o=>{let p=J0({},o),{data:b,withXSRFToken:z,xsrfHeaderName:a,xsrfCookieName:n,headers:t,auth:r}=p;p.headers=t=r0.from(t),p.url=g1(B1(p.baseURL,p.url),o.params,o.paramsSerializer),r&&t.set("Authorization","Basic "+btoa((r.username||"")+":"+(r.password?unescape(encodeURIComponent(r.password)):"")));let q;if(u.isFormData(b)){if(Z.hasStandardBrowserEnv||Z.hasStandardBrowserWebWorkerEnv)t.setContentType(void 0);else if((q=t.getContentType())!==!1){let[l,...A]=q?q.split(";").map(f=>f.trim()).filter(Boolean):[];t.setContentType([l||"multipart/form-data",...A].join("; "))}}if(Z.hasStandardBrowserEnv&&(z&&u.isFunction(z)&&(z=z(p)),z||z!==!1&&Aa(p.url))){let l=a&&n&&qa.read(n);l&&t.set(a,l)}return p};var xA=typeof XMLHttpRequest<"u",ua=xA&&function(o){return new Promise(function(b,z){let a=Sp(o),n=a.data,t=r0.from(a.headers).normalize(),{responseType:r,onUploadProgress:q,onDownloadProgress:l}=a,A,f,h,B,W;function R(){B&&B(),W&&W(),a.cancelToken&&a.cancelToken.unsubscribe(A),a.signal&&a.signal.removeEventListener("abort",A)}let x=new XMLHttpRequest;x.open(a.method.toUpperCase(),a.url,!0),x.timeout=a.timeout;function S(){if(!x)return;let C=r0.from("getAllResponseHeaders"in x&&x.getAllResponseHeaders()),U={data:!r||r==="text"||r==="json"?x.responseText:x.response,status:x.status,statusText:x.statusText,headers:C,config:o,request:x};Z0(function(L0){b(L0),R()},function(L0){z(L0),R()},U),x=null}"onloadend"in x?x.onloadend=S:x.onreadystatechange=function(){!x||x.readyState!==4||x.status===0&&!(x.responseURL&&x.responseURL.indexOf("file:")===0)||setTimeout(S)},x.onabort=function(){x&&(z(new y("Request aborted",y.ECONNABORTED,o,x)),x=null)},x.onerror=function(){z(new y("Network Error",y.ERR_NETWORK,o,x)),x=null},x.ontimeout=function(){let G=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded",U=a.transitional||Z1;a.timeoutErrorMessage&&(G=a.timeoutErrorMessage),z(new y(G,U.clarifyTimeoutError?y.ETIMEDOUT:y.ECONNABORTED,o,x)),x=null},n===void 0&&t.setContentType(null),"setRequestHeader"in x&&u.forEach(t.toJSON(),function(G,U){x.setRequestHeader(U,G)}),u.isUndefined(a.withCredentials)||(x.withCredentials=!!a.withCredentials),r&&r!=="json"&&(x.responseType=a.responseType),l&&([h,W]=r1(l,!0),x.addEventListener("progress",h)),q&&x.upload&&([f,B]=r1(q),x.upload.addEventListener("progress",f),x.upload.addEventListener("loadend",B)),(a.cancelToken||a.signal)&&(A=C=>{x&&(z(!C||C.type?new I0(null,o,x):C),x.abort(),x=null)},a.cancelToken&&a.cancelToken.subscribe(A),a.signal&&(a.signal.aborted?A():a.signal.addEventListener("abort",A)));let I=S2(a.url);if(I&&Z.protocols.indexOf(I)===-1){z(new y("Unsupported protocol "+I+":",y.ERR_BAD_REQUEST,o));return}x.send(n||null)})};var gA=(o,p)=>{let{length:b}=o=o?o.filter(Boolean):[];if(p||b){let z=new AbortController,a,n=function(l){if(!a){a=!0,r();let A=l instanceof Error?l:this.reason;z.abort(A instanceof y?A:new I0(A instanceof Error?A.message:A))}},t=p&&setTimeout(()=>{t=null,n(new y(`timeout ${p} of ms exceeded`,y.ETIMEDOUT))},p),r=()=>{o&&(t&&clearTimeout(t),t=null,o.forEach(l=>{l.unsubscribe?l.unsubscribe(n):l.removeEventListener("abort",n)}),o=null)};o.forEach(l=>l.addEventListener("abort",n));let{signal:q}=z;return q.unsubscribe=()=>u.asap(r),q}},la=gA;var BA=function*(o,p){let b=o.byteLength;if(!p||b<p){yield o;return}let z=0,a;for(;z<b;)a=z+p,yield o.slice(z,a),z=a},vA=async function*(o,p){for await(let b of yA(o))yield*BA(b,p)},yA=async function*(o){if(o[Symbol.asyncIterator]){yield*o;return}let p=o.getReader();try{for(;;){let{done:b,value:z}=await p.read();if(b)break;yield z}}finally{await p.cancel()}},Xo=(o,p,b,z)=>{let a=vA(o,p),n=0,t,r=q=>{t||(t=!0,z&&z(q))};return new ReadableStream({async pull(q){try{let{done:l,value:A}=await a.next();if(l){r(),q.close();return}let f=A.byteLength;if(b){let h=n+=f;b(h)}q.enqueue(new Uint8Array(A))}catch(l){throw r(l),l}},cancel(q){return r(q),a.return()}},{highWaterMark:2})};var Ep=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",fa=Ep&&typeof ReadableStream=="function",XA=Ep&&(typeof TextEncoder=="function"?(o=>p=>o.encode(p))(new TextEncoder):async o=>new Uint8Array(await new Response(o).arrayBuffer())),ma=(o,...p)=>{try{return!!o(...p)}catch{return!1}},TA=fa&&ma(()=>{let o=!1,p=new Request(Z.origin,{body:new ReadableStream,method:"POST",get duplex(){return o=!0,"half"}}).headers.has("Content-Type");return o&&!p}),Wa=64*1024,To=fa&&ma(()=>u.isReadableStream(new Response("").body)),kp={stream:To&&(o=>o.body)};Ep&&(o=>{["text","arrayBuffer","blob","formData","stream"].forEach(p=>{!kp[p]&&(kp[p]=u.isFunction(o[p])?b=>b[p]():(b,z)=>{throw new y(`Response type '${p}' is not supported`,y.ERR_NOT_SUPPORT,z)})})})(new Response);var wA=async o=>{if(o==null)return 0;if(u.isBlob(o))return o.size;if(u.isSpecCompliantForm(o))return(await new Request(Z.origin,{method:"POST",body:o}).arrayBuffer()).byteLength;if(u.isArrayBufferView(o)||u.isArrayBuffer(o))return o.byteLength;if(u.isURLSearchParams(o)&&(o=o+""),u.isString(o))return(await XA(o)).byteLength},SA=async(o,p)=>{let b=u.toFiniteNumber(o.getContentLength());return b??wA(p)},Ra=Ep&&(async o=>{let{url:p,method:b,data:z,signal:a,cancelToken:n,timeout:t,onDownloadProgress:r,onUploadProgress:q,responseType:l,headers:A,withCredentials:f="same-origin",fetchOptions:h}=Sp(o);l=l?(l+"").toLowerCase():"text";let B=la([a,n&&n.toAbortSignal()],t),W,R=B&&B.unsubscribe&&(()=>{B.unsubscribe()}),x;try{if(q&&TA&&b!=="get"&&b!=="head"&&(x=await SA(A,z))!==0){let U=new Request(p,{method:"POST",body:z,duplex:"half"}),M0;if(u.isFormData(z)&&(M0=U.headers.get("content-type"))&&A.setContentType(M0),U.body){let[L0,e0]=c2(x,r1(a2(q)));z=Xo(U.body,Wa,L0,e0)}}u.isString(f)||(f=f?"include":"omit");let S="credentials"in Request.prototype;W=new Request(p,{...h,signal:B,method:b.toUpperCase(),headers:A.normalize().toJSON(),body:z,duplex:"half",credentials:S?f:void 0});let I=await fetch(W),C=To&&(l==="stream"||l==="response");if(To&&(r||C&&R)){let U={};["status","statusText","headers"].forEach(S0=>{U[S0]=I[S0]});let M0=u.toFiniteNumber(I.headers.get("content-length")),[L0,e0]=r&&c2(M0,r1(a2(r),!0))||[];I=new Response(Xo(I.body,Wa,L0,()=>{e0&&e0(),R&&R()}),U)}l=l||"text";let G=await kp[u.findKey(kp,l)||"text"](I,o);return!C&&R&&R(),await new Promise((U,M0)=>{Z0(U,M0,{data:G,headers:r0.from(I.headers),status:I.status,statusText:I.statusText,config:o,request:W})})}catch(S){throw R&&R(),S&&S.name==="TypeError"&&/fetch/i.test(S.message)?Object.assign(new y("Network Error",y.ERR_NETWORK,o,W),{cause:S.cause||S}):y.from(S,S&&S.code,o,W)}});var wo={http:sa,xhr:ua,fetch:Ra};u.forEach(wo,(o,p)=>{if(o){try{Object.defineProperty(o,"name",{value:p})}catch{}Object.defineProperty(o,"adapterName",{value:p})}});var ha=o=>`- ${o}`,kA=o=>u.isFunction(o)||o===null||o===!1,Cp={getAdapter:o=>{o=u.isArray(o)?o:[o];let{length:p}=o,b,z,a={};for(let n=0;n<p;n++){b=o[n];let t;if(z=b,!kA(b)&&(z=wo[(t=String(b)).toLowerCase()],z===void 0))throw new y(`Unknown adapter '${t}'`);if(z)break;a[t||"#"+n]=z}if(!z){let n=Object.entries(a).map(([r,q])=>`adapter ${r} `+(q===!1?"is not supported by the environment":"is not available in the build")),t=p?n.length>1?`since :
|
|
13
13
|
`+n.map(ha).join(`
|
|
14
14
|
`):" "+ha(n[0]):"as no adapter specified";throw new y("There is no suitable adapter to dispatch the request "+t,"ERR_NOT_SUPPORT")}return z},adapters:wo};function So(o){if(o.cancelToken&&o.cancelToken.throwIfRequested(),o.signal&&o.signal.aborted)throw new I0(null,o)}function _p(o){return So(o),o.headers=r0.from(o.headers),o.data=B2.call(o,o.transformRequest),["post","put","patch"].indexOf(o.method)!==-1&&o.headers.setContentType("application/x-www-form-urlencoded",!1),Cp.getAdapter(o.adapter||p2.adapter)(o).then(function(z){return So(o),z.data=B2.call(o,o.transformResponse,z),z.headers=r0.from(z.headers),z},function(z){return v2(z)||(So(o),z&&z.response&&(z.response.data=B2.call(o,o.transformResponse,z.response),z.response.headers=r0.from(z.response.headers))),Promise.reject(z)})}var Dp={};["object","boolean","number","function","string","symbol"].forEach((o,p)=>{Dp[o]=function(z){return typeof z===o||"a"+(p<1?"n ":" ")+o}});var La={};Dp.transitional=function(p,b,z){function a(n,t){return"[Axios v"+T1+"] Transitional option '"+n+"'"+t+(z?". "+z:"")}return(n,t,r)=>{if(p===!1)throw new y(a(t," has been removed"+(b?" in "+b:"")),y.ERR_DEPRECATED);return b&&!La[t]&&(La[t]=!0,console.warn(a(t," has been deprecated since v"+b+" and will be removed in the near future"))),p?p(n,t,r):!0}};Dp.spelling=function(p){return(b,z)=>(console.warn(`${z} is likely a misspelling of ${p}`),!0)};function EA(o,p,b){if(typeof o!="object")throw new y("options must be an object",y.ERR_BAD_OPTION_VALUE);let z=Object.keys(o),a=z.length;for(;a-- >0;){let n=z[a],t=p[n];if(t){let r=o[n],q=r===void 0||t(r,n,o);if(q!==!0)throw new y("option "+n+" must be "+q,y.ERR_BAD_OPTION_VALUE);continue}if(b!==!0)throw new y("Unknown option "+n,y.ERR_BAD_OPTION)}}var E2={assertOptions:EA,validators:Dp};var p1=E2.validators,O2=class{constructor(p){this.defaults=p,this.interceptors={request:new QM,response:new QM}}async request(p,b){try{return await this._request(p,b)}catch(z){if(z instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;let n=a.stack?a.stack.replace(/^.+\n/,""):"";try{z.stack?n&&!String(z.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(z.stack+=`
|
|
15
|
-
`+n):z.stack=n}catch{}}throw z}}_request(p,b){typeof p=="string"?(b=b||{},b.url=p):b=p||{},b=J0(this.defaults,b);let{transitional:z,paramsSerializer:a,headers:n}=b;z!==void 0&&E2.assertOptions(z,{silentJSONParsing:p1.transitional(p1.boolean),forcedJSONParsing:p1.transitional(p1.boolean),clarifyTimeoutError:p1.transitional(p1.boolean)},!1),a!=null&&(u.isFunction(a)?b.paramsSerializer={serialize:a}:E2.assertOptions(a,{encode:p1.function,serialize:p1.function},!0)),b.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?b.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:b.allowAbsoluteUrls=!0),E2.assertOptions(b,{baseUrl:p1.spelling("baseURL"),withXsrfToken:p1.spelling("withXSRFToken")},!0),b.method=(b.method||this.defaults.method||"get").toLowerCase();let t=n&&u.merge(n.common,n[b.method]);n&&u.forEach(["delete","get","head","post","put","patch","common"],W=>{delete n[W]}),b.headers=r0.concat(t,n);let r=[],q=!0;this.interceptors.request.forEach(function(R){typeof R.runWhen=="function"&&R.runWhen(b)===!1||(q=q&&R.synchronous,r.unshift(R.fulfilled,R.rejected))});let l=[];this.interceptors.response.forEach(function(R){l.push(R.fulfilled,R.rejected)});let A,f=0,h;if(!q){let W=[_p.bind(this),void 0];for(W.unshift.apply(W,r),W.push.apply(W,l),h=W.length,A=Promise.resolve(b);f<h;)A=A.then(W[f++],W[f++]);return A}h=r.length;let B=b;for(f=0;f<h;){let W=r[f++],R=r[f++];try{B=W(B)}catch(x){R.call(this,x);break}}try{A=_p.call(this,B)}catch(W){return Promise.reject(W)}for(f=0,h=l.length;f<h;)A=A.then(l[f++],l[f++]);return A}getUri(p){p=J0(this.defaults,p);let b=B1(p.baseURL,p.url,p.allowAbsoluteUrls);return g1(b,p.params,p.paramsSerializer)}};u.forEach(["delete","get","head","options"],function(p){O2.prototype[p]=function(b,z){return this.request(J0(z||{},{method:p,url:b,data:(z||{}).data}))}});u.forEach(["post","put","patch"],function(p){function b(z){return function(n,t,r){return this.request(J0(r||{},{method:p,headers:z?{"Content-Type":"multipart/form-data"}:{},url:n,data:t}))}}O2.prototype[p]=b(),O2.prototype[p+"Form"]=b(!0)});var C2=O2;var ko=class o{constructor(p){if(typeof p!="function")throw new TypeError("executor must be a function.");let b;this.promise=new Promise(function(n){b=n});let z=this;this.promise.then(a=>{if(!z._listeners)return;let n=z._listeners.length;for(;n-- >0;)z._listeners[n](a);z._listeners=null}),this.promise.then=a=>{let n,t=new Promise(r=>{z.subscribe(r),n=r}).then(a);return t.cancel=function(){z.unsubscribe(n)},t},p(function(n,t,r){z.reason||(z.reason=new I0(n,t,r),b(z.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(p){if(this.reason){p(this.reason);return}this._listeners?this._listeners.push(p):this._listeners=[p]}unsubscribe(p){if(!this._listeners)return;let b=this._listeners.indexOf(p);b!==-1&&this._listeners.splice(b,1)}toAbortSignal(){let p=new AbortController,b=z=>{p.abort(z)};return this.subscribe(b),p.signal.unsubscribe=()=>this.unsubscribe(b),p.signal}static source(){let p;return{token:new o(function(a){p=a}),cancel:p}}},Na=ko;function Eo(o){return function(b){return o.apply(null,b)}}function Co(o){return u.isObject(o)&&o.isAxiosError===!0}var _o={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(_o).forEach(([o,p])=>{_o[p]=o});var xa=_o;function ga(o){let p=new C2(o),b=f2(C2.prototype.request,p);return u.extend(b,C2.prototype,p,{allOwnKeys:!0}),u.extend(b,p,null,{allOwnKeys:!0}),b.create=function(a){return ga(J0(o,a))},b}var m0=ga(p2);m0.Axios=C2;m0.CanceledError=I0;m0.CancelToken=Na;m0.isCancel=v2;m0.VERSION=T1;m0.toFormData=l1;m0.AxiosError=y;m0.Cancel=m0.CanceledError;m0.all=function(p){return Promise.all(p)};m0.spread=Eo;m0.isAxiosError=Co;m0.mergeConfig=J0;m0.AxiosHeaders=r0;m0.formToJSON=o=>Np(u.isHTMLForm(o)?new FormData(o):o);m0.getAdapter=Cp.getAdapter;m0.HttpStatusCode=xa;m0.default=m0;var B0=m0;var{Axios:$5,AxiosError:V5,CanceledError:K5,isCancel:J5,CancelToken:Q5,VERSION:Z5,all:pl,Cancel:Ml,isAxiosError:ol,spread:bl,toFormData:el,AxiosHeaders:zl,HttpStatusCode:cl,formToJSON:al,getAdapter:Ol,mergeConfig:nl}=B0;var Po=p0(tp());var Ip=p0(n2()),DA="https://api.tempo.io/4",PA="https://apidocs.tempo.io/#section/Authentication",_2=new Map,Ta=5*60*1e3,Do=class{axiosInstance=null;workerId;tempoApiToken;timezone="Australia/Sydney";constructor(p,b){this.workerId=p,this.tempoApiToken=b}getAxiosInstance(){return this.axiosInstance||(this.axiosInstance=B0.create({baseURL:DA,headers:{Authorization:`Bearer ${this.tempoApiToken}`,"Content-Type":"application/json"}})),this.axiosInstance}getLastSixWorkingDays(){let p=Ip.default.tz(this.timezone),b=[],z=p.clone();for(;b.length<10;)z.isoWeekday()<=5&&b.unshift(z.clone()),z.subtract(1,"day");let a=b[0].tz(this.timezone).format("YYYY-MM-DD"),n=p.tz(this.timezone).format("YYYY-MM-DD");return{startDate:a,endDate:n}}async fetchLastSixDaysWorklogs(){let{startDate:p,endDate:b}=this.getLastSixWorkingDays(),z=`${this.workerId}-${p}-${b}`,a=_2.get(z);if(a&&Date.now()-a.timestamp<Ta)return console.log("Using cached worklog data for last six days"),a.data;if(!this.tempoApiToken){let n=`Jira Tempo API token is missing. Please configure Jira Tempo API token in settings. See ${PA} for more info.`;throw new Error(n)}try{let n={authorIds:[this.workerId],from:p,to:b,offset:0,limit:70},q=(await this.getAxiosInstance().post("/worklogs/search",n)).data.results;return _2.set(z,{data:q,timestamp:Date.now(),key:z}),q}catch(n){throw B0.isAxiosError(n)?new Error(`Failed to fetch worklogs: ${n.response?.data?.errorMessages||n.message}`):new Error(`Unexpected error: ${n}`)}}async fetchWorklogs(p,b){let z=Ip.default.tz(p,this.timezone).format("YYYY-MM-DD"),a=Ip.default.tz(b,this.timezone).format("YYYY-MM-DD"),n=`${this.workerId}-${z}-${a}`,t=_2.get(n);if(t&&Date.now()-t.timestamp<Ta)return console.log(`Using cached worklog data for ${z} to ${a}`),t.data;try{console.log(`Fetching fresh worklog data for ${z} to ${a}`);let r={authorIds:[this.workerId],from:z,to:a},A=(await this.getAxiosInstance().post("/worklogs/search",r)).data.results;return _2.set(n,{data:A,timestamp:Date.now(),key:n}),A}catch(r){throw console.error("Error fetching worklogs:",r),r}}static clearCache(){_2.clear(),console.log("Tempo worklog cache cleared")}},D2=Do;var wa={DEVELOPER:"Developer",QC:"QC"};async function Sa(o){if(P2&&Date.now()-P2.timestamp<jA)return console.log("Using cached task data"),P2.data;let p=await UA(o);return P2={data:p,timestamp:Date.now()},p}var S1=null,P2=null,IA=5*60*1e3,jA=2*60*1e3;async function jp(o){if(S1&&Date.now()-S1.timestamp<IA)return console.log("Using cached user info"),S1.data;try{let p=await o.getJiraServer(),z={Authorization:await o.getAuthHeader(),"Content-Type":"application/json"},a=await B0.get(`${p}rest/api/3/myself`,{headers:z});return S1={data:a.data,timestamp:Date.now()},a.data}catch(p){return console.error("Failed to fetch user info:",p),S1?(console.log("Using stale cached user info due to API error"),S1.data):(await o.getUsername()).split("@")[0]}}async function UA(o){let p=await o.getUsername(),b=await o.getJiraServer(),a={Authorization:await o.getAuthHeader(),"Content-Type":"application/json"},t=await o.getWhoAmI()===wa.QC,r=`assignee = '${p}' AND status IN ('Selected for Development', 'Open', 'In Progress')`,q=["summary","subtasks","status","priority","issuetype"].concat(t?["parent"]:[]).join(","),l=`${b}rest/api/3/search/jql?jql=${encodeURIComponent(r)}&fields=${encodeURIComponent(q)}&maxResults=100`;try{let h=((await B0.get(l,{headers:a})).data.issues||[]).filter(B=>(B.fields.subtasks||[]).filter(R=>R.fields.summary!=="Test execution").length===0);return{inProgress:h.filter(B=>B.fields.status.name==="In Progress"),open:h.filter(B=>B.fields.status.name==="Open"||B.fields.status.name==="Selected for Development")}}catch(A){return console.error(`Failed to fetch backlog tasks: ${A.message}`,A.response?.data),{inProgress:[],open:[]}}}var Io=new Map,FA=10*60*1e3;async function HA(o,p){let b=Io.get(o);if(b&&Date.now()-b.timestamp<FA)return b.data;try{let z=await p.getJiraServer(),a=await p.getWhoAmI(),t={Authorization:await p.getAuthHeader(),"Content-Type":"application/json"},r=`${z}rest/api/3/issue/${o}?fields=summary,status,issueType,priority${a===wa.QC?",parent":""}`,q=await B0.get(r,{headers:t});return Io.set(o,{data:q.data,timestamp:Date.now()}),q.data}catch(z){return console.error(`Failed to fetch Jira issue ${o}: ${z?.message}`),null}}async function ka(o,p,b){if(o.length===0)return{tasks:[],actualDate:null};let z={};o.forEach(t=>{let r=Po.default.tz(t.startDate,"Australia/Sydney").format("YYYY-MM-DD");z[r]||(z[r]=[]),z[r].push(t)});let n=Po.default.tz("Australia/Sydney").subtract(1,"day").clone();for(let t=0;t<14;t++){for(;n.isoWeekday()>5;)n.subtract(1,"day");let r=n.format("YYYY-MM-DD"),q=z[r];if(q&&q.length>0){let l=q.map(f=>HA(f.issue.id,b));return{tasks:(await Promise.all(l)).filter(f=>f!==null),actualDate:r}}n.subtract(1,"day")}return{tasks:[],actualDate:null}}var YA=null,Wl=30*60*1e3;function Ea(){S1=null,P2=null,YA=null,Io.clear(),console.log("All caches cleared")}function Ca(o,p,b){let z=`Hi everyone,
|
|
15
|
+
`+n):z.stack=n}catch{}}throw z}}_request(p,b){typeof p=="string"?(b=b||{},b.url=p):b=p||{},b=J0(this.defaults,b);let{transitional:z,paramsSerializer:a,headers:n}=b;z!==void 0&&E2.assertOptions(z,{silentJSONParsing:p1.transitional(p1.boolean),forcedJSONParsing:p1.transitional(p1.boolean),clarifyTimeoutError:p1.transitional(p1.boolean)},!1),a!=null&&(u.isFunction(a)?b.paramsSerializer={serialize:a}:E2.assertOptions(a,{encode:p1.function,serialize:p1.function},!0)),b.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?b.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:b.allowAbsoluteUrls=!0),E2.assertOptions(b,{baseUrl:p1.spelling("baseURL"),withXsrfToken:p1.spelling("withXSRFToken")},!0),b.method=(b.method||this.defaults.method||"get").toLowerCase();let t=n&&u.merge(n.common,n[b.method]);n&&u.forEach(["delete","get","head","post","put","patch","common"],W=>{delete n[W]}),b.headers=r0.concat(t,n);let r=[],q=!0;this.interceptors.request.forEach(function(R){typeof R.runWhen=="function"&&R.runWhen(b)===!1||(q=q&&R.synchronous,r.unshift(R.fulfilled,R.rejected))});let l=[];this.interceptors.response.forEach(function(R){l.push(R.fulfilled,R.rejected)});let A,f=0,h;if(!q){let W=[_p.bind(this),void 0];for(W.unshift.apply(W,r),W.push.apply(W,l),h=W.length,A=Promise.resolve(b);f<h;)A=A.then(W[f++],W[f++]);return A}h=r.length;let B=b;for(f=0;f<h;){let W=r[f++],R=r[f++];try{B=W(B)}catch(x){R.call(this,x);break}}try{A=_p.call(this,B)}catch(W){return Promise.reject(W)}for(f=0,h=l.length;f<h;)A=A.then(l[f++],l[f++]);return A}getUri(p){p=J0(this.defaults,p);let b=B1(p.baseURL,p.url,p.allowAbsoluteUrls);return g1(b,p.params,p.paramsSerializer)}};u.forEach(["delete","get","head","options"],function(p){O2.prototype[p]=function(b,z){return this.request(J0(z||{},{method:p,url:b,data:(z||{}).data}))}});u.forEach(["post","put","patch"],function(p){function b(z){return function(n,t,r){return this.request(J0(r||{},{method:p,headers:z?{"Content-Type":"multipart/form-data"}:{},url:n,data:t}))}}O2.prototype[p]=b(),O2.prototype[p+"Form"]=b(!0)});var C2=O2;var ko=class o{constructor(p){if(typeof p!="function")throw new TypeError("executor must be a function.");let b;this.promise=new Promise(function(n){b=n});let z=this;this.promise.then(a=>{if(!z._listeners)return;let n=z._listeners.length;for(;n-- >0;)z._listeners[n](a);z._listeners=null}),this.promise.then=a=>{let n,t=new Promise(r=>{z.subscribe(r),n=r}).then(a);return t.cancel=function(){z.unsubscribe(n)},t},p(function(n,t,r){z.reason||(z.reason=new I0(n,t,r),b(z.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(p){if(this.reason){p(this.reason);return}this._listeners?this._listeners.push(p):this._listeners=[p]}unsubscribe(p){if(!this._listeners)return;let b=this._listeners.indexOf(p);b!==-1&&this._listeners.splice(b,1)}toAbortSignal(){let p=new AbortController,b=z=>{p.abort(z)};return this.subscribe(b),p.signal.unsubscribe=()=>this.unsubscribe(b),p.signal}static source(){let p;return{token:new o(function(a){p=a}),cancel:p}}},Na=ko;function Eo(o){return function(b){return o.apply(null,b)}}function Co(o){return u.isObject(o)&&o.isAxiosError===!0}var _o={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(_o).forEach(([o,p])=>{_o[p]=o});var xa=_o;function ga(o){let p=new C2(o),b=f2(C2.prototype.request,p);return u.extend(b,C2.prototype,p,{allOwnKeys:!0}),u.extend(b,p,null,{allOwnKeys:!0}),b.create=function(a){return ga(J0(o,a))},b}var m0=ga(p2);m0.Axios=C2;m0.CanceledError=I0;m0.CancelToken=Na;m0.isCancel=v2;m0.VERSION=T1;m0.toFormData=l1;m0.AxiosError=y;m0.Cancel=m0.CanceledError;m0.all=function(p){return Promise.all(p)};m0.spread=Eo;m0.isAxiosError=Co;m0.mergeConfig=J0;m0.AxiosHeaders=r0;m0.formToJSON=o=>Np(u.isHTMLForm(o)?new FormData(o):o);m0.getAdapter=Cp.getAdapter;m0.HttpStatusCode=xa;m0.default=m0;var B0=m0;var{Axios:$5,AxiosError:V5,CanceledError:K5,isCancel:J5,CancelToken:Q5,VERSION:Z5,all:pl,Cancel:Ml,isAxiosError:ol,spread:bl,toFormData:el,AxiosHeaders:zl,HttpStatusCode:cl,formToJSON:al,getAdapter:Ol,mergeConfig:nl}=B0;var Po=p0(tp());var Ip=p0(n2()),DA="https://api.tempo.io/4",PA="https://apidocs.tempo.io/#section/Authentication",_2=new Map,Ta=5*60*1e3,Do=class{axiosInstance=null;workerId;tempoApiToken;timezone="Australia/Sydney";constructor(p,b){this.workerId=p,this.tempoApiToken=b}getAxiosInstance(){return this.axiosInstance||(this.axiosInstance=B0.create({baseURL:DA,headers:{Authorization:`Bearer ${this.tempoApiToken}`,"Content-Type":"application/json"}})),this.axiosInstance}getLastSixWorkingDays(){let p=Ip.default.tz(this.timezone),b=[],z=p.clone();for(;b.length<10;)z.isoWeekday()<=5&&b.unshift(z.clone()),z.subtract(1,"day");let a=b[0].tz(this.timezone).format("YYYY-MM-DD"),n=p.tz(this.timezone).format("YYYY-MM-DD");return{startDate:a,endDate:n}}async fetchLastSixDaysWorklogs(){let{startDate:p,endDate:b}=this.getLastSixWorkingDays(),z=`${this.workerId}-${p}-${b}`,a=_2.get(z);if(a&&Date.now()-a.timestamp<Ta)return console.log("Using cached worklog data for last six days"),a.data;if(!this.tempoApiToken){let n=`Jira Tempo API token is missing. Please configure Jira Tempo API token in settings. See ${PA} for more info.`;throw new Error(n)}try{let n={authorIds:[this.workerId],from:p,to:b,offset:0,limit:70},q=(await this.getAxiosInstance().post("/worklogs/search",n)).data.results;return _2.set(z,{data:q,timestamp:Date.now(),key:z}),q}catch(n){throw B0.isAxiosError(n)?new Error(`Failed to fetch worklogs: ${n.response?.data?.errorMessages||n.message}`):new Error(`Unexpected error: ${n}`)}}async fetchWorklogs(p,b){let z=Ip.default.tz(p,this.timezone).format("YYYY-MM-DD"),a=Ip.default.tz(b,this.timezone).format("YYYY-MM-DD"),n=`${this.workerId}-${z}-${a}`,t=_2.get(n);if(t&&Date.now()-t.timestamp<Ta)return console.log(`Using cached worklog data for ${z} to ${a}`),t.data;try{console.log(`Fetching fresh worklog data for ${z} to ${a}`);let r={authorIds:[this.workerId],from:z,to:a},A=(await this.getAxiosInstance().post("/worklogs/search",r)).data.results;return _2.set(n,{data:A,timestamp:Date.now(),key:n}),A}catch(r){throw console.error("Error fetching worklogs:",r),r}}static clearCache(){_2.clear(),console.log("Tempo worklog cache cleared")}},D2=Do;var wa={DEVELOPER:"Developer",QC:"QC"};async function Sa(o){if(P2&&Date.now()-P2.timestamp<jA)return console.log("Using cached task data"),P2.data;let p=await UA(o);return P2={data:p,timestamp:Date.now()},p}var S1=null,P2=null,IA=5*60*1e3,jA=2*60*1e3;async function jp(o){if(S1&&Date.now()-S1.timestamp<IA)return console.log("Using cached user info"),S1.data;try{let p=await o.getJiraServer(),z={Authorization:await o.getAuthHeader(),"Content-Type":"application/json"},a=await B0.get(`${p}rest/api/3/myself`,{headers:z});return S1={data:a.data,timestamp:Date.now()},a.data}catch(p){return console.error("Failed to fetch user info:",p),S1?(console.log("Using stale cached user info due to API error"),S1.data):(await o.getUsername()).split("@")[0]}}async function UA(o){let p=await o.getUsername(),b=await o.getJiraServer(),a={Authorization:await o.getAuthHeader(),"Content-Type":"application/json"},t=await o.getWhoAmI()===wa.QC,r=`assignee = '${p}' AND status IN ('Selected for Development', 'Open', 'In Progress')`,q=["summary","subtasks","status","priority","issuetype"].concat(t?["parent"]:[]).join(","),l=`${b}rest/api/3/search/jql?jql=${encodeURIComponent(r)}&fields=${encodeURIComponent(q)}&maxResults=100`;try{let h=((await B0.get(l,{headers:a})).data.issues||[]).filter(B=>(B.fields.subtasks||[]).filter(R=>R.fields.summary!=="Test execution").length===0);return{inProgress:h.filter(B=>B.fields.status.name==="In Progress"),open:h.filter(B=>B.fields.status.name==="Open"||B.fields.status.name==="Selected for Development")}}catch(A){return console.error(`Failed to fetch backlog tasks: ${A.message}`,A.response?.data),{inProgress:[],open:[]}}}var Io=new Map,FA=10*60*1e3;async function HA(o,p){let b=Io.get(o);if(b&&Date.now()-b.timestamp<FA)return b.data;try{let z=await p.getJiraServer(),a=await p.getWhoAmI(),t={Authorization:await p.getAuthHeader(),"Content-Type":"application/json"},r=`${z}rest/api/3/issue/${o}?fields=summary,status,issueType,priority${a===wa.QC?",parent":""}`,q=await B0.get(r,{headers:t});return Io.set(o,{data:q.data,timestamp:Date.now()}),q.data}catch(z){return console.error(`Failed to fetch Jira issue ${o}: ${z?.message}`),null}}async function ka(o,p,b){if(o.length===0)return{tasks:[],actualDate:null};let z={};o.forEach(t=>{let r=Po.default.tz(t.startDate,"Australia/Sydney").format("YYYY-MM-DD");z[r]||(z[r]=[]),z[r].push(t)});let n=Po.default.tz("Australia/Sydney").subtract(1,"day").clone();for(let t=0;t<14;t++){for(;n.isoWeekday()>5;)n.subtract(1,"day");let r=n.format("YYYY-MM-DD"),q=z[r];if(q&&q.length>0){let l=q.map(f=>HA(f.issue.id,b));return{tasks:(await Promise.all(l)).filter(f=>f!==null),actualDate:r}}n.subtract(1,"day")}return{tasks:[],actualDate:null}}var YA=null,Wl=30*60*1e3;function Ea(){S1=null,P2=null,YA=null,Io.clear(),console.log("All caches cleared")}function Ca(o,p,b){let z=`
|
|
16
|
+
Hi everyone,
|
|
16
17
|
${o}
|
|
17
18
|
`,a=jo(b);z+=a.length>0?a.map(r=>`- ${r?.fields?.parent?.key||r?.key}: ${r?.fields?.parent?.fields?.summary||r?.fields?.summary}`).join(`
|
|
18
19
|
`)+`
|