@epam/statgpt-sdmx-toolkit 0.2.0-rc.2 → 0.2.0-rc.4

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.
Files changed (3) hide show
  1. package/index.cjs +2 -2
  2. package/index.mjs +366 -366
  3. package/package.json +3 -3
package/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=e=>{if(e!=null){const t=e.split("=");return t.length===1?e:t[1]}},p=e=>{var s;if(e==null)return{};const t=v(e),n={agency:"",id:"",version:""},r=o=>typeof o=="string"&&/^[a-zA-Z0-9_.-]+$/.test(o);if(t){if(t.includes(":")){const o=t.split(":")[0],i=t.split(":")[1].split("(")[0];n.agency=r(o)?o:"",n.id=r(i)?i:""}if(t.includes("(")&&t.includes(")")){const o=(s=t.split("(")[1])==null?void 0:s.split(")")[0];n.version=r(o)?o:""}}return n},pe=e=>{const[t,n]=e.split(")."),{agency:r,id:s,version:o}=p(t+")");return{childId:n,agency:r,id:s,version:o}},wt=(e,t,n)=>{const r=t===""?"":`(${t})`;return`${n}:${e}${r}`};var O=(e=>(e.DESCENDANTS="descendants",e.NONE="none",e.ALL="all",e))(O||{}),ne=(e=>(e.EXACT="exact",e.AVAILABLE="available",e))(ne||{});const vt=(e="",t="",n="")=>`sdmx/3.0/availability/dataflow/${e}/${t}/${n}`;class Nt{constructor(t){this.client=t}async getConstraints(t,n){const{agency:r,id:s,version:o}=p(t),i={filters:n||[],mode:ne.AVAILABLE,references:O.NONE},a=vt(r,s,o);return await this.client.postRequest(a,{body:i})}}var w=(e=>(e.CSV="csv",e.JSON="json",e.XML="xml",e))(w||{}),we=(e=>(e.ID="id",e.NAME="name",e.ID_NAME="both",e))(we||{}),ve=(e=>(e.FULL_DATASET="full",e.DATA_IN_TABLE="query",e))(ve||{});const Ne=(e,t)=>{switch(e){case w.CSV:return P("application/vnd.sdmx.data+csv;version=2.0.0",t);case w.XML:return P("application/vnd.sdmx.data+xml;version=3.0.0",t);case w.JSON:return P(`application/${e}`,t);default:return P("application/vnd.sdmx.data+csv;version=2.0.0",t)}},P=(e,t)=>`${e}; labels=${t}`;var re=(e=>(e.REFERENCE_PARTIAL="referencepartial",e.FULL="full",e))(re||{});const Pt="all",Pe="sdmx/3.0/data/dataflow",_e="&",fe=":",_t="=",Ie="+",It=",",$e="*",J=(e,t,n)=>{const{filterKey:r,timeFilter:s}=n,{agency:o,id:i,version:a}=p(e),c=[s||"",t].filter(l=>!!l).join(_e);return`${`${Pe}/${o}/${i}/${a}`}/${r||$e}?${c}`},$t=(e="",t="",n="",r=O.DESCENDANTS)=>`sdmx/3.0/structure/dataflow/${e}/${t}/${n}?references=${r}&detail=${re.REFERENCE_PARTIAL}`;class Ot{constructor(t){this.client=t}async getDataSet(t,n){const{agency:r,id:s,version:o}=p(t);return await this.client.getRequest($t(r,s,o,n))}async getDatasetData(t,n){const r=new URLSearchParams({includeHistory:"false",limit:"1000",attributes:Pt,dimensionAtObservation:"TIME_PERIOD"}).toString(),s=J(t,r,n);return await this.client.getRequest(s)}async downloadDataSet(t,n,r,s,o,i,a=!1){const c=new URLSearchParams({format:n,compress:"false",attributes:a?"all":"none",limit:"1000"}).toString(),u=J(t,c,o);return this.client.streamRequest(u,{method:"GET",headers:{Accept:Ne(n,s),"Accept-language":r}},i)}}const Lt=(e,t)=>e.error||e.message||`${t.status} ${t.statusText}`,bt="application/json",Ut="Content-Type",H="Api-Key",Ct="X-CONVERSATION-ID",_=e=>isNaN(Date.parse(e))?null:new Date(e),X=(e,t,n)=>{const r={[Ut]:(t==null?void 0:t.contentType)||bt};return t!=null&&t.jwt&&(r.Authorization=`Bearer ${t.jwt}`),t!=null&&t.chatReference&&(r[Ct]=t.chatReference),{...r,...n}},Wt=e=>{const t={...e};return t[H]&&(t[H]=t[H].substring(0,8)+"...[REDACTED]"),t.Authorization&&(t.Authorization="Bearer [REDACTED]"),t},Ee=async(e,t,n)=>await fetch(e,{method:n.method||"GET",headers:t,body:n.body?JSON.stringify(n.body):void 0}),xt=async(e,t,n)=>await fetch(e,{method:n.method,headers:t,body:n!=null&&n.isFormData&&typeof(n==null?void 0:n.body)=="string"?n.body:JSON.stringify(n.body),signal:n==null?void 0:n.signal});class Yt{constructor(){this.decoder=new TextDecoder}async streamChat(t,n,r={},s){const{onMessage:o,onError:i,onComplete:a,signal:c}=r;try{const u=await this.initializeStreamRequest(t,n,c,s);await this.processStreamData(u,o),a==null||a()}catch(u){this.handleStreamError(u,i)}}async initializeStreamRequest(t,n,r,s){const o=X(void 0,{jwt:s}),i=await xt(t,{Accept:"text/event-stream",...o},{method:"POST",body:n,signal:r});if(!i.ok){const a=await i.text();throw new Error(JSON.stringify({status:i.status,message:a}))}if(!i.body)throw new Error("No response body");return i.body.getReader()}async processStreamData(t,n){let r="";try{for(;;){const{done:s,value:o}=await t.read();if(s){r.trim()&&this.parseSSEDataLine(r,n);break}const i=this.decoder.decode(o,{stream:!0});r+=i;const a=r.split(`
2
- `);r=a.pop()||"";for(const c of a)this.parseSSEDataLine(c,n)}}finally{t.releaseLock()}}handleStreamError(t,n){const r=t instanceof Error?t:new Error(String(t));throw n==null||n(r),r}parseSSEDataLine(t,n){const r=t.trim();if(!(!r||r.startsWith(":"))&&r.startsWith("data: ")){const s=r.slice(6);if(s==="[DONE]"){console.info("SSE: Stream completed");return}try{const o=JSON.parse(s);n==null||n(o)}catch(o){console.error(`Failed to parse SSE data: ${s} ${o}`)}}}}new Yt;class Mt{constructor(t){this.config=t,console.info("SdmxApiClient initialized",{apiUrl:t.apiUrl||"NOT SET"})}async getRequest(t,n){return this.request(t,{...n,method:"GET"})}async postRequest(t,n){return this.request(t,{...n,method:"POST"})}async streamRequest(t,n,r){const s=`${this.config.apiUrl}/${t}`,o={...X(void 0,{jwt:this.config.jwt}),...n.headers};this.config.apiKey!=null&&(o["Ocp-Apim-Subscription-Key"]=this.config.apiKey);const i=new ReadableStream({async start(c){var u;try{const l=await Ee(s,o,n);if(!l.ok){const f=await l.text();throw console.error(`Fetch failed! Status: ${l.status}, Body: ${f}`),new Error(`Fetch failed with status ${l.status}`)}const g=(u=l.body)==null?void 0:u.getReader();if(!g)throw new Error("Failed to create stream reader");const E=new Uint8Array([239,187,191]);c.enqueue(E);const d=async()=>{const{done:f,value:h}=await g.read();f?c.close():(c.enqueue(h),await d())};d()}catch(l){c.error(l)}}}),a=new Headers({"Content-Disposition":`attachment; filename=${encodeURIComponent(r)}`});return new Response(i,{headers:a})}async request(t,n){const r=Date.now(),s=t.includes("availability")&&this.config.constrainsApiUrl?`${this.config.constrainsApiUrl}/${t}`:`${this.config.apiUrl}/${t}`,o={...X(void 0,{jwt:this.config.jwt}),...n.headers};this.config.apiKey!=null&&(o["Ocp-Apim-Subscription-Key"]=this.config.apiKey),this.addInfoRequestLog("API Request",s,n,o);try{const i=await Ee(s,o,n),a=Date.now()-r;let c;const u=await i.text();try{c=u?JSON.parse(u):{}}catch{if(this.addErrorRequestParsing(s,n,i,a,u),!i.ok)throw new Error(`API request failed: ${i.status} ${i.statusText} - ${u.substring(0,100)}`);c={data:u}}if(!i.ok){this.addErrorRequestLog(s,n,i,a,c);const l=Lt(c,i);throw new Error(`API request failed: ${l}`)}return c}catch(i){const a=Date.now()-r;throw console.error("API Request Exception",{method:n.method,url:s,duration:`${a}ms`,error:i instanceof Error?i.message:String(i)}),i}}addInfoRequestLog(t,n,r,s){const o={method:r.method||"GET",url:n,headers:Wt(s)};r.body&&(o.body=r.body),console.info(t,o)}addErrorRequestLog(t,n,r,s,o){console.error("API Request Failed",{method:n.method,url:t,status:r.status,statusText:r.statusText,duration:`${s}ms`,response:o})}addErrorRequestParsing(t,n,r,s,o){console.error("API Response Parse Error",{method:n.method,url:t,status:r.status,statusText:r.statusText,duration:`${s}ms`,responseText:o.substring(0,200),error:"Response is not valid JSON"})}}const kt=["FREQ","FREQUENCY"];var Oe=(e=>(e.CONDITIONAL="Conditional",e.MANDATORY="Mandatory",e))(Oe||{}),L=(e=>(e.DIMENSION="Dimension",e.MEASURE_DIMENSION="MeasureDimension",e.TIME_DIMENSION="TimeDimension",e))(L||{}),Le=(e=>(e.UNBOUNDED="unbounded",e))(Le||{});const be=(e,t)=>{var a,c,u,l,g;const n=(c=(a=e==null?void 0:e.data)==null?void 0:a.dataSets)==null?void 0:c[0],r=(l=(u=e==null?void 0:e.data)==null?void 0:u.structures)==null?void 0:l[0],s=((g=r==null?void 0:r.attributes)==null?void 0:g.dimensionGroup)||[],o=n==null?void 0:n.dimensionGroupAttributes,i={};for(const E of s){const d=E.relationship.dimensions,{codedSeriesKey:f,decodedSeriesKey:h}=se(e,t,d);i[E.id]={values:(o==null?void 0:o[f])||[],decodedSeriesKey:h,codedSeriesKey:f}}return i},se=(e,t,n)=>{var a,c;const r=(c=(a=e==null?void 0:e.data)==null?void 0:a.structures)==null?void 0:c[0],s=[...(r==null?void 0:r.dimensions.series)||[],...(r==null?void 0:r.dimensions.observation)||[]],o=new Array(s==null?void 0:s.length),i=new Array(s==null?void 0:s.length);return n==null||n.forEach(u=>{const l=(s==null?void 0:s.findIndex(d=>d.id===u))||0,g=t[l],E=s[l].values.findIndex(d=>d.id===g||d.value===g)||0;o[l]=E>=0?E:g,i[l]=g}),{codedSeriesKey:o.join(":"),decodedSeriesKey:i.join(":")}},Qt=(e,t,n)=>{var g,E,d,f,h;const r=(E=(g=e==null?void 0:e.data)==null?void 0:g.dataSets)==null?void 0:E[0],s=(f=(d=e==null?void 0:e.data)==null?void 0:d.structures)==null?void 0:f[0],o=(((h=s==null?void 0:s.attributes)==null?void 0:h.dimensionGroup)||[]).filter(y=>{var D;return((D=y.relationship.dimensions)==null?void 0:D.length)===1&&y.relationship.dimensions.includes(t||"")}),i=r==null?void 0:r.dimensionGroupAttributes,a=[...(s==null?void 0:s.dimensions.series)||[],...(s==null?void 0:s.dimensions.observation)||[]],c=a==null?void 0:a.findIndex(y=>y.id===t),u=new Array(a==null?void 0:a.length);u[c]=n||"";const l={};for(const y of o){const D=y.relationship.dimensions,{codedSeriesKey:A,decodedSeriesKey:S}=se(e,u,D);l[y.id]={values:(i==null?void 0:i[A])||[],decodedSeriesKey:S,codedSeriesKey:A}}return l},Ue=(e,t)=>{var r;if(t==null)return;const n=(r=e.values)==null?void 0:r[t];return n??(t instanceof Array?{values:t}:{value:t.toString()})},Ce="Observation",Ft=e=>{var u,l,g,E,d,f;const t=(u=e==null?void 0:e.data)==null?void 0:u.dataSets,n=(g=(l=e==null?void 0:e.data)==null?void 0:l.structures)==null?void 0:g[0];if(!t||!n)return[];const r=n.attributes,s=n.dimensions,o=(r==null?void 0:r.dimensionGroup)||[],i=t[0].series||t[0].observations,a=(E=s.series)!=null&&E.length?s.series:s.observation,c=[];for(const h in i){const y=[],{name:D,parsedTimeSeriesValue:A}=We(h,a),S=i[h],V=S.attributes||[];if(Object.keys(S).length===0){c.push({name:D,parsedTimeSeriesValue:A,values:y,attributes:[],dataSetAttrs:[]});continue}y.push(...Bt(S,n));const G=I((r==null?void 0:r.series)||[],m=>V[m]),K=Vt(((d=n.attributes)==null?void 0:d.dataSet)||[],((f=t[0].attributes)==null?void 0:f.filter(m=>m!=null))||[]),j=be(e,A),z=o.map((m,Rt)=>{const ge=j[m.id],pt=Ue(m,ge.values[Rt]);return{attribute:m,dimensionGroupValue:pt,dimensionGroupData:ge}});c.push({name:D,parsedTimeSeriesValue:A,values:y,attributes:G,dataSetAttrs:K,dimensionGroupAttributes:z})}return c},We=(e,t)=>{const n=e.split(new RegExp("(?<!\\|):(?!\\||$)")),r=[];for(let s=0;s<n.length;s++){const o=t==null?void 0:t[s],i=Number(n[s]);if(i<0||o==null)continue;const a=o.values[i];if(a==null){r.push(n[s].replace("|:",":"));continue}r.push((a==null?void 0:a.id)||(a==null?void 0:a.value)||"")}return{name:xe(r),parsedTimeSeriesValue:r}},I=(e,t)=>{const n=[];for(let r=0;r<e.length;r++){const s=e[r],o=t(r),i=o!=null&&s.values!=null?qt(o,s):void 0;n.push({name:s.id,value:i})}return n},qt=(e,t)=>{const n=t.values[e];return n==null?typeof e=="object"?e:e.toString():(n==null?void 0:n.id)||(n==null?void 0:n.value)||(n==null?void 0:n.ids)||(n==null?void 0:n.values)},xe=e=>e.map(t=>t?Ye(t):"").join("."),Ye=e=>e.replace(/\./g,"|.").replace(/:/g,"|:"),Bt=(e,t)=>{var i,a,c,u,l;const n=(a=(i=t.measures)==null?void 0:i.observation)==null?void 0:a.length;if(e.observations==null)return[{values:he(e,t.measures),obsAttributes:I(((c=t.attributes)==null?void 0:c.observation)||[],g=>e[g+n]),dimensionAtObservation:Ce}];const r=e.observations,s=(u=t.dimensions.observation)==null?void 0:u[0],o=[];for(const g in r){const E=s==null?void 0:s.values[g];o.push({dimensionAtObservation:(E==null?void 0:E.value)||(E==null?void 0:E.id),values:he(r[g],t.measures),obsAttributes:I(((l=t.attributes)==null?void 0:l.observation)||[],d=>r[g][d+n])})}return o},he=(e,t)=>{var n;return((n=t==null?void 0:t.observation)==null?void 0:n.map((r,s)=>({name:r.id,value:e[s]})))||[]},Vt=(e,t)=>e.reduce((n,r,s)=>{const o=t[s];return Gt(n,r,o,""),n},[]),Gt=(e,t,n,r)=>{var o,i,a;const s=n!=null?((o=t==null?void 0:t.values)==null?void 0:o.length)>0?((i=t.values[n])==null?void 0:i.id)||((a=t.values[n])==null?void 0:a.value):String(n):r;e.push({name:t.id,value:s||""})},Me=/^[0-9][0-9][0-9][0-9]-Q[1-4]$/,ke=/^[0-9][0-9][0-9][0-9]-W[0-9][0-9]?$/,Qe=/^[0-9][0-9][0-9][0-9]-S[1-2]$/,Fe=/^[0-9][0-9][0-9][0-9]$/,qe=/^[0-9][0-9][0-9][0-9]-(0[1-9]|1[0-2])-[0-9][0-9]$/,Be=/^[0-9][0-9][0-9][0-9]-M(0[1-9]|(1[0-2]))$/,b=e=>Fe.exec(e),U=e=>!!b(e),Ve=e=>Qe.exec(e),C=e=>!!Ve(e),W=e=>Be.exec(e),x=e=>!!W(e),Y=e=>Me.exec(e),M=e=>!!Y(e),Ge=e=>qe.exec(e),Ke=e=>!!Ge(e),je=e=>ke.exec(e),k=e=>!!je(e),oe=1440*60*1e3,ie=7*oe;function ae(e){const t=`${e}-01-01`,n=new Date(t);if(n.getDay()!==4){const s=1+(4-n.getDay()+7)%7;n.setMonth(0,s)}return n}function Kt(e){const t=new Date(e),r=-((t.getDay()+6)%7)+3;return t.setDate(t.getDate()+r),new Date(t.valueOf())}function Z(e,t="W"){const n=`${e}-12-31`,r=N(new Date(n),t);if(r.weekYear===e)return r.weekNumber;const s=`${e}-12-24`;return N(new Date(s),t).weekNumber}function ce(e,t,n="W"){return`${e}-${n}${t<10?"0"+t:t}`}function N(e,t="W"){const n=Kt(e),r=n.getFullYear(),s=ae(r),o=1+Math.ceil((n.getTime()-s.getTime())/ie);return{code:ce(r,o,t),weekNumber:o,weekYear:r}}function ze(e){const[t,n]=e.split("-W"),s=ae(+t).getTime()+(+n-1)*ie-3*oe;return new Date(s)}function He(e){const[t,n]=e.split("-W"),s=ae(+t).getTime()+(+n-1)*ie+3*oe;return new Date(s)}function ue(e){return U(e)?jt(e):C(e)?Ht(e):M(e)?Xt(e):x(e)?en(e):k(e)?ze(e):nn(e)}function le(e){return U(e)?zt(e):C(e)?Jt(e):M(e)?Zt(e):x(e)?tn(e):k(e)?He(e):rn(e)}function jt(e){const t=b(e);if(t)return new Date(Number(t[0]),0,1)}function zt(e){const t=b(e);if(t)return new Date(Number(t[0])+1,0,1)}function Ht(e){const[t,n]=e.split("-S");switch(+n){case 1:return new Date(+t,0,1);case 2:return new Date(+t,6,1)}}function Jt(e){const[t,n]=e.split("-S");switch(+n){case 1:return new Date(+t,6,1);case 2:return new Date(+t+1,0,1)}}function Xt(e){const t=Y(e);if(!t)return;const[n,r]=t[0].split("-Q");switch(+r){case 1:return new Date(+n,0,1);case 2:return new Date(+n,3,1);case 3:return new Date(+n,6,1);case 4:return new Date(+n,9,1)}}function Zt(e){const t=Y(e);if(!t)return;const[n,r]=t[0].split("-Q");switch(+r){case 1:return new Date(+n,3,1);case 2:return new Date(+n,6,1);case 3:return new Date(+n,9,1);case 4:return new Date(+n+1,0,1)}}function en(e){const t=W(e);if(!t)return;const[n,r]=t[0].split("-M");return new Date(+n,+r-1,1)}function tn(e){const t=W(e);if(!t)return;const[n,r]=t[0].split("-M");return new Date(+n,+r,1)}const nn=e=>new Date(`${e}T00:00:00`),rn=e=>{const t=new Date(`${e}T23:59:00`);return t.setMinutes(t.getMinutes()+1),t},sn=1,Je=(e,t,n,r=!0,s="Q")=>{const o=[],i=t&&t>3?dn(t,r):1,a=n?Math.floor((n-1)/3):4;for(let c=i;c<=a;c++)o.push(`${e}-${s}${c}`);return o},Xe=(e,t,n,r="S")=>{const s=[];return(t||1)<7&&(n||12)>6&&s.push(`${e}-${r}1`),n==null&&s.push(`${e}-${r}2`),s},on=e=>Math.ceil(e/3),Ze=(e,t,n="M")=>`${e}-${n}${t.toString().padStart(2,"0")}`,an=(e,t,n="M")=>{const r=[];for(let s=t;s<=12;s++)r.push(Ze(e,s,n));return r},cn=(e,t,n,r="M")=>{const s=[];for(let o=t;o<n;o++)s.push(Ze(e,o,r));return s},et=(e,t,n,r="M")=>{const s=t||1,o=n==null,i=n||12;return o?an(e,s,r):cn(e,s,i,r)},un=(e,t,n="M")=>{switch(t){case 0:return[`${e}-${n}01`,`${e}-${n}02`,`${e}-${n}03`];case 1:return[`${e}-${n}04`,`${e}-${n}05`,`${e}-${n}06`];case 2:return[`${e}-${n}07`,`${e}-${n}08`,`${e}-${n}09`];case 3:return[`${e}-${n}10`,`${e}-${n}11`,`${e}-${n}12`];default:return[]}},tt=(e,t)=>{const n=T(t,!0),r=T(e),s=n.getFullYear(),o=r.getFullYear(),i=n.getTime()<=r.getTime()?o+sn-s:0;return Array.from({length:i},(c,u)=>s+u)},T=(e,t=!1)=>{const n=ln(e,t);return n?(n.getTimezoneOffset()>0&&n.setMinutes(n.getMinutes()+n.getTimezoneOffset()),n):new Date},ln=(e,t=!1)=>{const n=Number(e);return e.toString().length!==13?t?ue(e):le(e):isNaN(n)?new Date(`${e}T00:00:00.000Z`):new Date(n)},dn=(e,t)=>t?Math.floor((e+1)/3):Math.ceil((e+1)/3),gn=(e,t)=>{const n=ye(e)-ye(t);if(n===0&&e!==t){const r=De(e),s=De(t);return r-s}return n},De=e=>U(e)?6:C(e)?5:M(e)?4:x(e)?3:k(e)?2:Ke(e)?1:0,ye=(e,t=!1)=>{const n=t?ue(e):le(e);return(n==null?void 0:n.getTime())||0};var Q=(e=>(e.LAST_UPDATE_AT="lastUpdatedAt",e.SERIES_COUNT="series_count",e))(Q||{}),nt=(e=>(e.C="c",e))(nt||{}),R=(e=>(e.EQUALS="eq",e.NOT_EQUALS="ne",e.LESS="lt",e.LESS_OR_EQUAL="le",e.GREATER="gt",e.GREATER_OR_EQUAL="ge",e.CONTAINS="co",e.NOT_CONTAINS="nc",e.STARTS="sw",e.ENDS="ew",e))(R||{}),rt=(e=>(e.BOOLEAN="Boolean",e.DATE_TIME="DateTime",e.DECIMAL="Decimal",e.INTEGER="Integer",e.OBSERVATION_TIME_PERIOD="ObservationalTimePeriod",e.STRING="String",e.TIME="Time",e.TIME_RANGE="TimeRange",e.URI="URI",e))(rt||{}),st=(e=>(e.ANNUAL="A",e.QUARTERLY="Q",e.MONTHLY="M",e))(st||{});function fn(e){var t,n;return(n=(t=e==null?void 0:e.annotations)==null?void 0:t.find(r=>{if(r.id===Q.LAST_UPDATE_AT)return r}))==null?void 0:n.value}const F=(e,t)=>(e==null?void 0:e.names)&&(e==null?void 0:e.names[t])||(e==null?void 0:e.name),ot=(e,t,n)=>{if(!(!e||t!=null&&t.has(e==null?void 0:e.id))&&(t==null||t.set(e==null?void 0:e.id,e),e!=null&&e.parent)){const r=n==null?void 0:n.get(e==null?void 0:e.parent);ot(r,t,n)}},it=(e,t)=>{const n=new Map,r=new Map(e==null?void 0:e.map(s=>[s.id,s]));return t==null||t.forEach(s=>{ot(s,n,r)}),Array.from(n==null?void 0:n.values())},at="time_period_end",ct="time_period_start",ut="TIME_PERIOD",En=e=>{const t=e==null?void 0:e.find(o=>o.id===ct),n=e==null?void 0:e.find(o=>o.id===at),r=n!=null&&n.title?new Date(n==null?void 0:n.title):null;return{startPeriod:t!=null&&t.title?new Date(t==null?void 0:t.title):null,endPeriod:r}},hn=(e,t)=>e.id.localeCompare(t.id),Dn=(e,t)=>e.memberValue.localeCompare(t.memberValue),yn=(e,t)=>{const n=new Array(e.length),r=e.map((i,a)=>[i,a]);r.sort((i,a)=>hn(i[0],a[0]));const s=[...t];s.sort(Dn);let o=0;for(const i of r){const a=i[0];for(;o<s.length&&s[o].memberValue.localeCompare(a.id)<0;)o+=1;o<s.length&&s[o].memberValue===a.id&&(n[i[1]]=i[0])}return n.filter(i=>i!=null)},An=e=>!!(e!=null&&e.some(t=>t.parent)),Sn=(e,t,n,r,s=[])=>{var i,a;let o=e||[];if(mn(n||[],t||"")){const c=(i=(n||[])[0].cubeRegions)==null?void 0:i.find(({isIncluded:u})=>u);if(c){const u=(a=c.memberSelection)==null?void 0:a.find(({componentId:l})=>l===t);u?o=o.length===0?(u.selectionValues||[]).map(({memberValue:l})=>({id:l,name:l})):yn(o,u.selectionValues):o=[]}}else s.length!==0&&(o=o.filter(({id:c})=>s.includes(c)));return An(e)&&(o=it(e,o)),o==null?void 0:o.map(c=>({...c,name:r?F(c,r):c==null?void 0:c.name}))},mn=(e,t)=>e!=null&&e.length>0&&t!=null,Tn=e=>{var n;const t=[];return(n=e==null?void 0:e.filters)==null||n.forEach(r=>{r.componentCode!==ut&&t.push({componentCode:r.componentCode,operator:R.EQUALS,value:r.values.join(",")})}),t},Rn=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,Ae=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const t=e.match(Rn);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},Se=e=>e==="*"||e==="x"||e==="X",me=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},pn=(e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t],wn=(e,t)=>{if(Se(e)||Se(t))return 0;const[n,r]=pn(me(e),me(t));return n>r?1:n<r?-1:0},Te=(e,t)=>{for(let n=0;n<Math.max(e.length,t.length);n++){const r=wn(e[n]||"0",t[n]||"0");if(r!==0)return r}return 0},vn=(e,t)=>{const n=Ae(e),r=Ae(t),s=n.pop(),o=r.pop(),i=Te(n,r);return i!==0?i:s&&o?Te(s.split("."),o.split(".")):s||o?s?-1:1:0},Nn=(e,t,n)=>{Pn(n);const r=vn(e,t);return lt[n].includes(r)},lt={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},Re=Object.keys(lt),Pn=e=>{if(Re.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${Re.join("|")}`)},$="+",q=(e,t)=>{const{agency:n,id:r,version:s}=p(e),o=t.filter(c=>{var u;return c.agencyID===n&&c.id===r&&!((u=c==null?void 0:c.version)!=null&&u.includes($))});if(o.length===1)return o[0];if(!(s!=null&&s.includes($)))return o.find(c=>c.version===s);const i=o.map(c=>c.version),a=dt(s,i);return o.find(c=>c.version===a[0])},dt=(e,t)=>{const n=_n(e,t);return n.length>0?[n[0]]:[]},_n=(e,t)=>{const n=[];return t.forEach(r=>{ft(e,r)&&n.push(r)}),n},gt=e=>{const t=e.trim().replace(/\d+\+/,"*"),[n]=t.split("*");return new RegExp(`^${n}`)},ft=(e,t)=>{const n=e.trim().replace(/\+/,"");return gt(e).test(t)&&Nn(t,n,">=")},B=(e,t)=>{const{concept:n}=Et(e,t);return n},Et=(e,t)=>{if(e==null)return{concept:void 0,scheme:void 0};const{childId:n,agency:r,id:s,version:o}=pe(e);if(o!=null&&o.includes($)){const i=q(e,t);return{concept:ee((i==null?void 0:i.concepts)||[],n),scheme:i}}for(const i of t)if(In(i,s,r,o))return{concept:ee((i==null?void 0:i.concepts)||[],n),scheme:i};return{concept:void 0,scheme:void 0}},ee=(e,t)=>e==null?void 0:e.find(n=>n.id===t),In=(e,t,n,r)=>e.id===t&&e.agencyID===n&&e.version===r,$n=(e=[],t=[],n)=>{var c,u;const r=(n==null?void 0:n.conceptIdentity)||"",s=B(r,t),o=v((c=n==null?void 0:n.localRepresentation)==null?void 0:c.enumeration),i=v((u=s==null?void 0:s.coreRepresentation)==null?void 0:u.enumeration),a=o||i;if(a!=null)return q(a,e)},On=(e,t,n,r)=>{var o,i;const s=(o=t==null?void 0:t.find(a=>(a==null?void 0:a.id)===(e==null?void 0:e.id)))==null?void 0:o.values;return((i=n==null?void 0:n.filter(a=>s==null?void 0:s.some(c=>c.id===a.id)))==null?void 0:i.map(a=>({...a,name:r?F(a,r):a==null?void 0:a.name})))||[]},ht=(e,t)=>{var s,o,i;const n=(s=t==null?void 0:t.dataStructureComponents)==null?void 0:s.attributeList,r=(o=e==null?void 0:e.metadataStructureComponents)==null?void 0:o.metadataAttributeList;return(i=n==null?void 0:n.metadataAttributeUsages)==null?void 0:i.map(a=>{var u;const c=(u=r==null?void 0:r.metadataAttributes)==null?void 0:u.find(l=>(l==null?void 0:l.id)===(a==null?void 0:a.metadataAttributeReference));return{...c,attributeRelationship:a.attributeRelationship,isMandatory:Number(c==null?void 0:c.minOccurs)>0}})},Ln=(e=[],t,n)=>{const r=v(t==null?void 0:t.conceptIdentity)||"",s=B(r,e);return n?F(s,n):(s==null?void 0:s.name)??(s==null?void 0:s.id)??(t==null?void 0:t.id)};function te(e){var t,n,r;return(r=(n=(t=e==null?void 0:e.dataStructures)==null?void 0:t[0])==null?void 0:n.dataStructureComponents)==null?void 0:r.dimensionList}function bn(e){var t,n,r,s;return((s=(r=(n=(t=e==null?void 0:e.data)==null?void 0:t.structures)==null?void 0:n[0])==null?void 0:r.dimensions)==null?void 0:s.series)||[]}function Un(e){var t,n,r,s,o;return((o=(s=(r=(n=(t=e==null?void 0:e.data)==null?void 0:t.structures)==null?void 0:n[0])==null?void 0:r.dimensions)==null?void 0:s.observation)==null?void 0:o[0].values.map(i=>i.value).filter(i=>i!=null))||[]}function Cn(e){return e.find(t=>t.type===L.TIME_DIMENSION)}const Wn=e=>{var i,a,c,u,l,g;const t=new Map,n=(i=e==null?void 0:e.dataStructures)==null?void 0:i[0],r=(a=e==null?void 0:e.metadataStructures)==null?void 0:a[0],s=(e==null?void 0:e.conceptSchemes)||[],o=(e==null?void 0:e.codelists)||[];return e&&[...((c=te(e))==null?void 0:c.dimensions)||[],...((u=te(e))==null?void 0:u.timeDimensions)||[],...ht(r,n),...((g=(l=n==null?void 0:n.dataStructureComponents)==null?void 0:l.attributeList)==null?void 0:g.attributes)||[]].forEach(d=>{var D,A;const f=B(d==null?void 0:d.conceptIdentity,s),h=((D=d==null?void 0:d.localRepresentation)==null?void 0:D.enumeration)||((A=f==null?void 0:f.coreRepresentation)==null?void 0:A.enumeration),y=q(h,o);d!=null&&d.id&&(h?t.set(d==null?void 0:d.id,{...y,name:f==null?void 0:f.name,names:f==null?void 0:f.names}):t.set(d==null?void 0:d.id,{id:d==null?void 0:d.id,name:f==null?void 0:f.name,names:f==null?void 0:f.names}))}),t},xn=e=>{var t;return((t=e==null?void 0:e.find(n=>n.id===Q.SERIES_COUNT))==null?void 0:t.title)||""},Yn="/api/download",Mn=(e,t,n,r,s,o,i)=>{const a=new URLSearchParams({urn:e,format:t,compress:"false",filename:o,filters:JSON.stringify(s),attribute:r,language:n,isMetadata:i?"true":"none"}).toString(),c=`${Yn}?${a}`;window.open(c,"_blank")},kn=(e,t)=>{var r,s;const n=[];for(const o of e){if(o.type!==L.DIMENSION)continue;const i=t.find(a=>a.componentCode===o.id);i!=null&&((r=i.values)==null?void 0:r.length)>0?n.push((s=i.values)==null?void 0:s.join(Ie)):n.push("*")}return n.join(".")},Dt=(e,t)=>{if(!e||!e.startPeriod&&!e.endPeriod)return null;const n=[],{startPeriod:r,endPeriod:s}=e;if(r&&n.push(`${R.GREATER_OR_EQUAL}${fe}${r.toISOString().split("T")[0]}`),s&&n.push(`${R.LESS_OR_EQUAL}${fe}${s.toISOString().split("T")[0]}`),n.length===0)return null;const o=t;return n.map(i=>`${encodeURIComponent(`c[${o}]`)}${_t}${encodeURIComponent(i)}`).join(_e)},Qn=(e,t)=>{const n=yt(e,t)||null;return n?Dt(n,t==null?void 0:t.id):null},yt=(e,t)=>{var c,u;const n=t.id,r=(c=e==null?void 0:e.filters)==null?void 0:c.find(l=>l.componentCode===n);if(!r||!r.values)return null;const s=(u=r.values)==null?void 0:u.filter(l=>!!l);if(!s.length)return null;const o=r.operator;if(o===R.LESS_OR_EQUAL||o===R.LESS)return{startPeriod:null,endPeriod:_(s[0])};if(o===R.GREATER_OR_EQUAL||o===R.GREATER)return{startPeriod:_(s[0]),endPeriod:null};const i=_(s[0]),a=_(s[1]);return{startPeriod:i,endPeriod:a}},de=(e,t,n)=>{const r=T(t,!0),s=T(n),o=T(e,!0),i=T(e),a=r.getTime()>o.getTime()?r:o,c=s.getTime()<i.getTime()?s:i;return{start:a,end:c}},At=(e,t,n,r="W")=>{const s=+e,{start:o,end:i}=de(e,t,n);if(o.getTime()>i.getTime())return[];const a=N(o,r),c=a.weekYear===s?a.weekNumber:a.weekYear<s?1:Z(s,r),u=N(i,r),l=u.weekYear===s?u.weekNumber:u.weekYear>s?Z(s,r):1,g=[];if(c<l)for(let E=c;E<=l;E++)g.push(ce(s,E,r));return g},Fn=e=>{const t=new Date(e);return t.setMinutes(t.getMinutes()-t.getTimezoneOffset()),t.toISOString().slice(0,10)},St=(e,t,n)=>{const{start:r,end:s}=de(e,t,n);if(r.getTime()>s.getTime())return[];const o=[],i=new Date(r.getFullYear(),r.getMonth(),r.getDate()),a=new Date(s.getFullYear(),s.getMonth(),s.getDate());for(;i.getTime()<a.getTime();){const c=Fn(i);o.push(c),i.setDate(i.getDate()+1)}return o},mt=e=>({isDailyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="D")),isWeeklyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="W")),isMonthlyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="M")),isQuarterlyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="Q")),isSemiAnnualExist:!!(e!=null&&e.some(({memberValue:t})=>t==="S")),isYearlyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="A"||t==="Y"))}),qn=(e,t,n,r)=>{var i,a;const s=r===0?((i=T(t.toString(),!0))==null?void 0:i.getMonth())+1:void 0,o=r===e.length-1?((a=T(n.toString()))==null?void 0:a.getMonth())+1||1:void 0;return{startMonth:s,endMonth:o}},Tt=["FREQUENCY","FREQ"],Bn=(e,t)=>{var c,u,l,g,E,d,f;const n=(E=(g=(l=(u=(c=e==null?void 0:e[0])==null?void 0:c.cubeRegions)==null?void 0:u[0])==null?void 0:l.memberSelection)==null?void 0:g.find(h=>Tt.includes(h.componentId)))==null?void 0:E.selectionValues,r=mt(n||[]),s=((d=t==null?void 0:t.startPeriod)==null?void 0:d.getTime())||1,o=((f=t==null?void 0:t.endPeriod)==null?void 0:f.getTime())||1,i=tt(o,s),a=[];return i.forEach((h,y)=>{const D=[],{startMonth:A,endMonth:S}=qn(i,new Date(s),new Date(o),y),{isDailyExist:V,isWeeklyExist:G,isMonthlyExist:K,isQuarterlyExist:j,isSemiAnnualExist:z,isYearlyExist:m}=r;m&&D.push(h.toString()),z&&D.push(...Xe(h,A,S)),j&&D.push(...Je(h,A,S,!1)),K&&D.push(...et(h,A,S)),G&&D.push(...At(h,s.toString(),o.toString())),V&&D.push(...St(h,s.toString(),o.toString())),a.push(...D)}),a};exports.Annotations=Q;exports.AssignmentStatus=Oe;exports.AvailabilityApi=Nt;exports.DATASET_DATA_URL=Pe;exports.DatasetApi=Ot;exports.DimensionType=L;exports.DownloadType=ve;exports.FREQUENCY_DIMENSION_ID=kt;exports.FREQUENCY_DIM_ID=Tt;exports.FileColumnsAttribute=we;exports.GET_v3_FILTER_ALL=$e;exports.GET_v3_FILTER_AND=It;exports.GET_v3_FILTER_OR=Ie;exports.OBSERVATION_KEY=Ce;exports.OccurrenceType=Le;exports.Periods=st;exports.RepresentationTextType=rt;exports.SDMX_DATA_QUERY_PARAMS=nt;exports.SINGLE_WILDCARD_SYMBOL=$;exports.SdmxApiClient=Mt;exports.SdmxAvailabilityMode=ne;exports.SdmxDataFormat=w;exports.SdmxDetails=re;exports.SdmxReferences=O;exports.SeriesFilterOperator=R;exports.TIME_PERIOD=ut;exports.TIME_PERIOD_END=at;exports.TIME_PERIOD_START=ct;exports.dailyPattern=qe;exports.decodeDimensionId=Ye;exports.findCodelistByDimension=$n;exports.generateDatasetDataRequest=J;exports.generateShortUrn=wt;exports.getAdditionalColumns=Bn;exports.getAnnotationPeriod=En;exports.getArtifactByUrnWithWildCard=q;exports.getAttachedDimensionsSeriesByDimension=Qt;exports.getAttachedDimensionsSeriesByTsId=be;exports.getAttachedDimensionsSeriesKey=se;exports.getAttributeValueFromDataQueryResponse=Ue;exports.getAvailableCodes=On;exports.getAvailableCodesFromConstrains=Sn;exports.getChildParsedUrn=pe;exports.getConcept=B;exports.getConceptByUrn=ee;exports.getConceptWithScheme=Et;exports.getConvertedMetaAttributes=ht;exports.getDailyRegExp=Ge;exports.getDaysColumns=St;exports.getDimensionTitle=Ln;exports.getDimensions=te;exports.getFilteredItemsWithParents=it;exports.getFiltersDtoFromDataQuery=Tn;exports.getISOWeek=N;exports.getKeyFromUrn=v;exports.getLastUpdatedTime=fn;exports.getLastWeekNumberOfYear=Z;exports.getLocalizedName=F;exports.getMonthlyData=et;exports.getMonthlyDataByQuarter=un;exports.getMonthlyRegExp=W;exports.getParsedEndPeriodDate=le;exports.getParsedResponse=Ft;exports.getParsedStartPeriodDate=ue;exports.getPeriodDate=T;exports.getPeriods=mt;exports.getQuarterByMonth=on;exports.getQuarterlyRegExp=Y;exports.getQuartersData=Je;exports.getQueryTimePeriodFilters=Dt;exports.getRequestAcceptHeader=Ne;exports.getResolvedVersionBySingleWildcard=dt;exports.getSemiAnnualData=Xe;exports.getSemiAnnuallyRegExp=Ve;exports.getSeriesAttributes=I;exports.getSeriesName=We;exports.getStructureComponentsMap=Wn;exports.getStructureDimensions=bn;exports.getTimeDimension=Cn;exports.getTimePeriods=Un;exports.getTimeQueryFilter=Qn;exports.getTimeRangeFromAttachment=yt;exports.getTimeSeriesCount=xn;exports.getTimeSeriesFilterKey=kn;exports.getTimeSeriesId=xe;exports.getWeekCode=ce;exports.getWeeklyPeriodEndDate=He;exports.getWeeklyPeriodStartDate=ze;exports.getWeeklyRegExp=je;exports.getWeeksColumns=At;exports.getWildCardRegexp=gt;exports.getYearPeriod=de;exports.getYearlyRegExp=b;exports.getYears=tt;exports.isDaily=Ke;exports.isMonthly=x;exports.isQuarterly=M;exports.isSemiAnnually=C;exports.isWeekly=k;exports.isWildCardVersionCorrect=ft;exports.isYearly=U;exports.monthlyPattern=Be;exports.openDownloadWindow=Mn;exports.quarterPattern=Me;exports.semiAnnuallyPattern=Qe;exports.sortPeriods=gn;exports.splitUrn=p;exports.weeklyPattern=ke;exports.yearlyPattern=Fe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=e=>{if(e!=null){const t=e.split("=");return t.length===1?e:t[1]}},p=e=>{var s;if(e==null)return{};const t=v(e),n={agency:"",id:"",version:""},r=o=>typeof o=="string"&&/^[a-zA-Z0-9_.-]+$/.test(o);if(t){if(t.includes(":")){const o=t.split(":")[0],i=t.split(":")[1].split("(")[0];n.agency=r(o)?o:"",n.id=r(i)?i:""}if(t.includes("(")&&t.includes(")")){const o=(s=t.split("(")[1])==null?void 0:s.split(")")[0];n.version=r(o)?o:""}}return n},we=e=>{const[t,n]=e.split(")."),{agency:r,id:s,version:o}=p(t+")");return{childId:n,agency:r,id:s,version:o}},vt=(e,t,n)=>{const r=t===""?"":`(${t})`;return`${n}:${e}${r}`};var L=(e=>(e.DESCENDANTS="descendants",e.NONE="none",e.ALL="all",e))(L||{}),re=(e=>(e.EXACT="exact",e.AVAILABLE="available",e))(re||{});const Pt=(e="",t="",n="")=>`sdmx/3.0/availability/dataflow/${e}/${t}/${n}`;class _t{constructor(t){this.client=t}async getConstraints(t,n){const{agency:r,id:s,version:o}=p(t),i={filters:n||[],mode:re.AVAILABLE,references:L.NONE},a=Pt(r,s,o);return await this.client.postRequest(a,{body:i})}}var w=(e=>(e.CSV="csv",e.JSON="json",e.XML="xml",e))(w||{}),ve=(e=>(e.ID="id",e.NAME="name",e.ID_NAME="both",e))(ve||{}),Pe=(e=>(e.FULL_DATASET="full",e.DATA_IN_TABLE="query",e))(Pe||{});const _e=(e,t)=>{switch(e){case w.CSV:return _("application/vnd.sdmx.data+csv;version=2.0.0",t);case w.XML:return _("application/vnd.sdmx.data+xml;version=3.0.0",t);case w.JSON:return _(`application/${e}`,t);default:return _("application/vnd.sdmx.data+csv;version=2.0.0",t)}},_=(e,t)=>`${e}; labels=${t}`;var se=(e=>(e.REFERENCE_PARTIAL="referencepartial",e.FULL="full",e))(se||{});const It="all",Ie="sdmx/3.0/data/dataflow",Ne="&",Ee=":",Nt="=",$e="+",$t=",",Oe="*",X=(e,t,n)=>{const{filterKey:r,timeFilter:s}=n,{agency:o,id:i,version:a}=p(e),c=[s||"",t].filter(l=>!!l).join(Ne);return`${`${Ie}/${o}/${i}/${a}`}/${r||Oe}?${c}`},Ot=(e="",t="",n="",r=L.DESCENDANTS)=>`sdmx/3.0/structure/dataflow/${e}/${t}/${n}?references=${r}&detail=${se.REFERENCE_PARTIAL}`;class Lt{constructor(t){this.client=t}async getDataSet(t,n){const{agency:r,id:s,version:o}=p(t);return await this.client.getRequest(Ot(r,s,o,n))}async getDatasetData(t,n){const r=new URLSearchParams({includeHistory:"false",limit:"1000",attributes:It,dimensionAtObservation:"TIME_PERIOD"}).toString(),s=X(t,r,n);return await this.client.getRequest(s)}async downloadDataSet(t,n,r,s,o,i,a=!1){const c=new URLSearchParams({format:n,compress:"false",attributes:a?"all":"none",limit:"1000"}).toString(),u=X(t,c,o);return this.client.streamRequest(u,{method:"GET",headers:{Accept:_e(n,s),"Accept-language":r}},i)}}const bt=(e,t)=>e.error||e.message||`${t.status} ${t.statusText}`,Ct="application/json",Ut="Content-Type",J="Api-Key",Wt="X-CONVERSATION-ID",N="Ocp-Apim-Subscription-Key",I=e=>isNaN(Date.parse(e))?null:new Date(e),Z=(e,t,n)=>{const r={[Ut]:(t==null?void 0:t.contentType)||Ct};return t!=null&&t.jwt&&(r.Authorization=`Bearer ${t.jwt}`),t!=null&&t.chatReference&&(r[Wt]=t.chatReference),{...r,...n}},xt=e=>{const t={...e};return t[J]&&(t[J]=t[J].substring(0,8)+"...[REDACTED]"),t.Authorization&&(t.Authorization="Bearer [REDACTED]"),t[N]&&(t[N]=t[N].substring(0,8)+"...[REDACTED]"),t},he=async(e,t,n)=>await fetch(e,{method:n.method||"GET",headers:t,body:n.body?JSON.stringify(n.body):void 0}),Yt=async(e,t,n)=>await fetch(e,{method:n.method,headers:t,body:n!=null&&n.isFormData&&typeof(n==null?void 0:n.body)=="string"?n.body:JSON.stringify(n.body),signal:n==null?void 0:n.signal});class Mt{constructor(){this.decoder=new TextDecoder}async streamChat(t,n,r={},s){const{onMessage:o,onError:i,onComplete:a,signal:c}=r;try{const u=await this.initializeStreamRequest(t,n,c,s);await this.processStreamData(u,o),a==null||a()}catch(u){this.handleStreamError(u,i)}}async initializeStreamRequest(t,n,r,s){const o=Z(void 0,{jwt:s}),i=await Yt(t,{Accept:"text/event-stream",...o},{method:"POST",body:n,signal:r});if(!i.ok){const a=await i.text();throw new Error(JSON.stringify({status:i.status,message:a}))}if(!i.body)throw new Error("No response body");return i.body.getReader()}async processStreamData(t,n){let r="";try{for(;;){const{done:s,value:o}=await t.read();if(s){r.trim()&&this.parseSSEDataLine(r,n);break}const i=this.decoder.decode(o,{stream:!0});r+=i;const a=r.split(`
2
+ `);r=a.pop()||"";for(const c of a)this.parseSSEDataLine(c,n)}}finally{t.releaseLock()}}handleStreamError(t,n){const r=t instanceof Error?t:new Error(String(t));throw n==null||n(r),r}parseSSEDataLine(t,n){const r=t.trim();if(!(!r||r.startsWith(":"))&&r.startsWith("data: ")){const s=r.slice(6);if(s==="[DONE]"){console.info("SSE: Stream completed");return}try{const o=JSON.parse(s);n==null||n(o)}catch(o){console.error(`Failed to parse SSE data: ${s} ${o}`)}}}}new Mt;class kt{constructor(t){this.config=t,console.info("SdmxApiClient initialized",{apiUrl:t.apiUrl||"NOT SET"})}async getRequest(t,n){return this.request(t,{...n,method:"GET"})}async postRequest(t,n){return this.request(t,{...n,method:"POST"})}async streamRequest(t,n,r){const s=`${this.config.apiUrl}/${t}`,o={...Z(void 0,{jwt:this.config.jwt}),...n.headers};this.config.apiKey!=null&&(o[N]=this.config.apiKey);const i=new ReadableStream({async start(c){var u;try{const l=await he(s,o,n);if(!l.ok){const f=await l.text();throw console.error(`Fetch failed! Status: ${l.status}, Body: ${f}`),new Error(`Fetch failed with status ${l.status}`)}const g=(u=l.body)==null?void 0:u.getReader();if(!g)throw new Error("Failed to create stream reader");const E=new Uint8Array([239,187,191]);c.enqueue(E);const d=async()=>{const{done:f,value:h}=await g.read();f?c.close():(c.enqueue(h),await d())};d()}catch(l){c.error(l)}}}),a=new Headers({"Content-Disposition":`attachment; filename=${encodeURIComponent(r)}`});return new Response(i,{headers:a})}async request(t,n){const r=Date.now(),s=t.includes("availability")&&this.config.constrainsApiUrl?`${this.config.constrainsApiUrl}/${t}`:`${this.config.apiUrl}/${t}`,o={...Z(void 0,{jwt:this.config.jwt}),...n.headers};this.config.apiKey!=null&&(o["Ocp-Apim-Subscription-Key"]=this.config.apiKey),this.addInfoRequestLog("API Request",s,n,o);try{const i=await he(s,o,n),a=Date.now()-r;let c;const u=await i.text();try{c=u?JSON.parse(u):{}}catch{if(this.addErrorRequestParsing(s,n,i,a,u),!i.ok)throw new Error(`API request failed: ${i.status} ${i.statusText} - ${u.substring(0,100)}`);c={data:u}}if(!i.ok){this.addErrorRequestLog(s,n,i,a,c);const l=bt(c,i);throw new Error(`API request failed: ${l}`)}return c}catch(i){const a=Date.now()-r;throw console.error("API Request Exception",{method:n.method,url:s,duration:`${a}ms`,error:i instanceof Error?i.message:String(i)}),i}}addInfoRequestLog(t,n,r,s){const o={method:r.method||"GET",url:n,headers:xt(s)};r.body&&(o.body=r.body),console.info(t,o)}addErrorRequestLog(t,n,r,s,o){console.error("API Request Failed",{method:n.method,url:t,status:r.status,statusText:r.statusText,duration:`${s}ms`,response:o})}addErrorRequestParsing(t,n,r,s,o){console.error("API Response Parse Error",{method:n.method,url:t,status:r.status,statusText:r.statusText,duration:`${s}ms`,responseText:o.substring(0,200),error:"Response is not valid JSON"})}}const Qt=["FREQ","FREQUENCY"];var Le=(e=>(e.CONDITIONAL="Conditional",e.MANDATORY="Mandatory",e))(Le||{}),b=(e=>(e.DIMENSION="Dimension",e.MEASURE_DIMENSION="MeasureDimension",e.TIME_DIMENSION="TimeDimension",e))(b||{}),be=(e=>(e.UNBOUNDED="unbounded",e))(be||{});const Ce=(e,t)=>{var a,c,u,l,g;const n=(c=(a=e==null?void 0:e.data)==null?void 0:a.dataSets)==null?void 0:c[0],r=(l=(u=e==null?void 0:e.data)==null?void 0:u.structures)==null?void 0:l[0],s=((g=r==null?void 0:r.attributes)==null?void 0:g.dimensionGroup)||[],o=n==null?void 0:n.dimensionGroupAttributes,i={};for(const E of s){const d=E.relationship.dimensions,{codedSeriesKey:f,decodedSeriesKey:h}=oe(e,t,d);i[E.id]={values:(o==null?void 0:o[f])||[],decodedSeriesKey:h,codedSeriesKey:f}}return i},oe=(e,t,n)=>{var a,c;const r=(c=(a=e==null?void 0:e.data)==null?void 0:a.structures)==null?void 0:c[0],s=[...(r==null?void 0:r.dimensions.series)||[],...(r==null?void 0:r.dimensions.observation)||[]],o=new Array(s==null?void 0:s.length),i=new Array(s==null?void 0:s.length);return n==null||n.forEach(u=>{const l=(s==null?void 0:s.findIndex(d=>d.id===u))||0,g=t[l],E=s[l].values.findIndex(d=>d.id===g||d.value===g)||0;o[l]=E>=0?E:g,i[l]=g}),{codedSeriesKey:o.join(":"),decodedSeriesKey:i.join(":")}},Ft=(e,t,n)=>{var g,E,d,f,h;const r=(E=(g=e==null?void 0:e.data)==null?void 0:g.dataSets)==null?void 0:E[0],s=(f=(d=e==null?void 0:e.data)==null?void 0:d.structures)==null?void 0:f[0],o=(((h=s==null?void 0:s.attributes)==null?void 0:h.dimensionGroup)||[]).filter(A=>{var D;return((D=A.relationship.dimensions)==null?void 0:D.length)===1&&A.relationship.dimensions.includes(t||"")}),i=r==null?void 0:r.dimensionGroupAttributes,a=[...(s==null?void 0:s.dimensions.series)||[],...(s==null?void 0:s.dimensions.observation)||[]],c=a==null?void 0:a.findIndex(A=>A.id===t),u=new Array(a==null?void 0:a.length);u[c]=n||"";const l={};for(const A of o){const D=A.relationship.dimensions,{codedSeriesKey:y,decodedSeriesKey:S}=oe(e,u,D);l[A.id]={values:(i==null?void 0:i[y])||[],decodedSeriesKey:S,codedSeriesKey:y}}return l},Ue=(e,t)=>{var r;if(t==null)return;const n=(r=e.values)==null?void 0:r[t];return n??(t instanceof Array?{values:t}:{value:t.toString()})},We="Observation",qt=e=>{var u,l,g,E,d,f;const t=(u=e==null?void 0:e.data)==null?void 0:u.dataSets,n=(g=(l=e==null?void 0:e.data)==null?void 0:l.structures)==null?void 0:g[0];if(!t||!n)return[];const r=n.attributes,s=n.dimensions,o=(r==null?void 0:r.dimensionGroup)||[],i=t[0].series||t[0].observations,a=(E=s.series)!=null&&E.length?s.series:s.observation,c=[];for(const h in i){const A=[],{name:D,parsedTimeSeriesValue:y}=xe(h,a),S=i[h],G=S.attributes||[];if(Object.keys(S).length===0){c.push({name:D,parsedTimeSeriesValue:y,values:A,attributes:[],dataSetAttrs:[]});continue}A.push(...Vt(S,n));const K=$((r==null?void 0:r.series)||[],m=>G[m]),j=Gt(((d=n.attributes)==null?void 0:d.dataSet)||[],((f=t[0].attributes)==null?void 0:f.filter(m=>m!=null))||[]),z=Ce(e,y),H=o.map((m,pt)=>{const fe=z[m.id],wt=Ue(m,fe.values[pt]);return{attribute:m,dimensionGroupValue:wt,dimensionGroupData:fe}});c.push({name:D,parsedTimeSeriesValue:y,values:A,attributes:K,dataSetAttrs:j,dimensionGroupAttributes:H})}return c},xe=(e,t)=>{const n=e.split(new RegExp("(?<!\\|):(?!\\||$)")),r=[];for(let s=0;s<n.length;s++){const o=t==null?void 0:t[s],i=Number(n[s]);if(i<0||o==null)continue;const a=o.values[i];if(a==null){r.push(n[s].replace("|:",":"));continue}r.push((a==null?void 0:a.id)||(a==null?void 0:a.value)||"")}return{name:Ye(r),parsedTimeSeriesValue:r}},$=(e,t)=>{const n=[];for(let r=0;r<e.length;r++){const s=e[r],o=t(r),i=o!=null&&s.values!=null?Bt(o,s):void 0;n.push({name:s.id,value:i})}return n},Bt=(e,t)=>{const n=t.values[e];return n==null?typeof e=="object"?e:e.toString():(n==null?void 0:n.id)||(n==null?void 0:n.value)||(n==null?void 0:n.ids)||(n==null?void 0:n.values)},Ye=e=>e.map(t=>t?Me(t):"").join("."),Me=e=>e.replace(/\./g,"|.").replace(/:/g,"|:"),Vt=(e,t)=>{var i,a,c,u,l;const n=(a=(i=t.measures)==null?void 0:i.observation)==null?void 0:a.length;if(e.observations==null)return[{values:De(e,t.measures),obsAttributes:$(((c=t.attributes)==null?void 0:c.observation)||[],g=>e[g+n]),dimensionAtObservation:We}];const r=e.observations,s=(u=t.dimensions.observation)==null?void 0:u[0],o=[];for(const g in r){const E=s==null?void 0:s.values[g];o.push({dimensionAtObservation:(E==null?void 0:E.value)||(E==null?void 0:E.id),values:De(r[g],t.measures),obsAttributes:$(((l=t.attributes)==null?void 0:l.observation)||[],d=>r[g][d+n])})}return o},De=(e,t)=>{var n;return((n=t==null?void 0:t.observation)==null?void 0:n.map((r,s)=>({name:r.id,value:e[s]})))||[]},Gt=(e,t)=>e.reduce((n,r,s)=>{const o=t[s];return Kt(n,r,o,""),n},[]),Kt=(e,t,n,r)=>{var o,i,a;const s=n!=null?((o=t==null?void 0:t.values)==null?void 0:o.length)>0?((i=t.values[n])==null?void 0:i.id)||((a=t.values[n])==null?void 0:a.value):String(n):r;e.push({name:t.id,value:s||""})},ke=/^[0-9][0-9][0-9][0-9]-Q[1-4]$/,Qe=/^[0-9][0-9][0-9][0-9]-W[0-9][0-9]?$/,Fe=/^[0-9][0-9][0-9][0-9]-S[1-2]$/,qe=/^[0-9][0-9][0-9][0-9]$/,Be=/^[0-9][0-9][0-9][0-9]-(0[1-9]|1[0-2])-[0-9][0-9]$/,Ve=/^[0-9][0-9][0-9][0-9]-M(0[1-9]|(1[0-2]))$/,C=e=>qe.exec(e),U=e=>!!C(e),Ge=e=>Fe.exec(e),W=e=>!!Ge(e),x=e=>Ve.exec(e),Y=e=>!!x(e),M=e=>ke.exec(e),k=e=>!!M(e),Ke=e=>Be.exec(e),je=e=>!!Ke(e),ze=e=>Qe.exec(e),Q=e=>!!ze(e),ie=1440*60*1e3,ae=7*ie;function ce(e){const t=`${e}-01-01`,n=new Date(t);if(n.getDay()!==4){const s=1+(4-n.getDay()+7)%7;n.setMonth(0,s)}return n}function jt(e){const t=new Date(e),r=-((t.getDay()+6)%7)+3;return t.setDate(t.getDate()+r),new Date(t.valueOf())}function ee(e,t="W"){const n=`${e}-12-31`,r=P(new Date(n),t);if(r.weekYear===e)return r.weekNumber;const s=`${e}-12-24`;return P(new Date(s),t).weekNumber}function ue(e,t,n="W"){return`${e}-${n}${t<10?"0"+t:t}`}function P(e,t="W"){const n=jt(e),r=n.getFullYear(),s=ce(r),o=1+Math.ceil((n.getTime()-s.getTime())/ae);return{code:ue(r,o,t),weekNumber:o,weekYear:r}}function He(e){const[t,n]=e.split("-W"),s=ce(+t).getTime()+(+n-1)*ae-3*ie;return new Date(s)}function Je(e){const[t,n]=e.split("-W"),s=ce(+t).getTime()+(+n-1)*ae+3*ie;return new Date(s)}function le(e){return U(e)?zt(e):W(e)?Jt(e):k(e)?Zt(e):Y(e)?tn(e):Q(e)?He(e):rn(e)}function de(e){return U(e)?Ht(e):W(e)?Xt(e):k(e)?en(e):Y(e)?nn(e):Q(e)?Je(e):sn(e)}function zt(e){const t=C(e);if(t)return new Date(Number(t[0]),0,1)}function Ht(e){const t=C(e);if(t)return new Date(Number(t[0])+1,0,1)}function Jt(e){const[t,n]=e.split("-S");switch(+n){case 1:return new Date(+t,0,1);case 2:return new Date(+t,6,1)}}function Xt(e){const[t,n]=e.split("-S");switch(+n){case 1:return new Date(+t,6,1);case 2:return new Date(+t+1,0,1)}}function Zt(e){const t=M(e);if(!t)return;const[n,r]=t[0].split("-Q");switch(+r){case 1:return new Date(+n,0,1);case 2:return new Date(+n,3,1);case 3:return new Date(+n,6,1);case 4:return new Date(+n,9,1)}}function en(e){const t=M(e);if(!t)return;const[n,r]=t[0].split("-Q");switch(+r){case 1:return new Date(+n,3,1);case 2:return new Date(+n,6,1);case 3:return new Date(+n,9,1);case 4:return new Date(+n+1,0,1)}}function tn(e){const t=x(e);if(!t)return;const[n,r]=t[0].split("-M");return new Date(+n,+r-1,1)}function nn(e){const t=x(e);if(!t)return;const[n,r]=t[0].split("-M");return new Date(+n,+r,1)}const rn=e=>new Date(`${e}T00:00:00`),sn=e=>{const t=new Date(`${e}T23:59:00`);return t.setMinutes(t.getMinutes()+1),t},on=1,Xe=(e,t,n,r=!0,s="Q")=>{const o=[],i=t&&t>3?gn(t,r):1,a=n?Math.floor((n-1)/3):4;for(let c=i;c<=a;c++)o.push(`${e}-${s}${c}`);return o},Ze=(e,t,n,r="S")=>{const s=[];return(t||1)<7&&(n||12)>6&&s.push(`${e}-${r}1`),n==null&&s.push(`${e}-${r}2`),s},an=e=>Math.ceil(e/3),et=(e,t,n="M")=>`${e}-${n}${t.toString().padStart(2,"0")}`,cn=(e,t,n="M")=>{const r=[];for(let s=t;s<=12;s++)r.push(et(e,s,n));return r},un=(e,t,n,r="M")=>{const s=[];for(let o=t;o<n;o++)s.push(et(e,o,r));return s},tt=(e,t,n,r="M")=>{const s=t||1,o=n==null,i=n||12;return o?cn(e,s,r):un(e,s,i,r)},ln=(e,t,n="M")=>{switch(t){case 0:return[`${e}-${n}01`,`${e}-${n}02`,`${e}-${n}03`];case 1:return[`${e}-${n}04`,`${e}-${n}05`,`${e}-${n}06`];case 2:return[`${e}-${n}07`,`${e}-${n}08`,`${e}-${n}09`];case 3:return[`${e}-${n}10`,`${e}-${n}11`,`${e}-${n}12`];default:return[]}},nt=(e,t)=>{const n=T(t,!0),r=T(e),s=n.getFullYear(),o=r.getFullYear(),i=n.getTime()<=r.getTime()?o+on-s:0;return Array.from({length:i},(c,u)=>s+u)},T=(e,t=!1)=>{const n=dn(e,t);return n?(n.getTimezoneOffset()>0&&n.setMinutes(n.getMinutes()+n.getTimezoneOffset()),n):new Date},dn=(e,t=!1)=>{const n=Number(e);return e.toString().length!==13?t?le(e):de(e):isNaN(n)?new Date(`${e}T00:00:00.000Z`):new Date(n)},gn=(e,t)=>t?Math.floor((e+1)/3):Math.ceil((e+1)/3),fn=(e,t)=>{const n=ye(e)-ye(t);if(n===0&&e!==t){const r=Ae(e),s=Ae(t);return r-s}return n},Ae=e=>U(e)?6:W(e)?5:k(e)?4:Y(e)?3:Q(e)?2:je(e)?1:0,ye=(e,t=!1)=>{const n=t?le(e):de(e);return(n==null?void 0:n.getTime())||0};var F=(e=>(e.LAST_UPDATE_AT="lastUpdatedAt",e.SERIES_COUNT="series_count",e))(F||{}),rt=(e=>(e.C="c",e))(rt||{}),R=(e=>(e.EQUALS="eq",e.NOT_EQUALS="ne",e.LESS="lt",e.LESS_OR_EQUAL="le",e.GREATER="gt",e.GREATER_OR_EQUAL="ge",e.CONTAINS="co",e.NOT_CONTAINS="nc",e.STARTS="sw",e.ENDS="ew",e))(R||{}),st=(e=>(e.BOOLEAN="Boolean",e.DATE_TIME="DateTime",e.DECIMAL="Decimal",e.INTEGER="Integer",e.OBSERVATION_TIME_PERIOD="ObservationalTimePeriod",e.STRING="String",e.TIME="Time",e.TIME_RANGE="TimeRange",e.URI="URI",e))(st||{}),ot=(e=>(e.ANNUAL="A",e.QUARTERLY="Q",e.MONTHLY="M",e))(ot||{});function En(e){var t,n;return(n=(t=e==null?void 0:e.annotations)==null?void 0:t.find(r=>{if(r.id===F.LAST_UPDATE_AT)return r}))==null?void 0:n.value}const q=(e,t)=>(e==null?void 0:e.names)&&(e==null?void 0:e.names[t])||(e==null?void 0:e.name),it=(e,t,n)=>{if(!(!e||t!=null&&t.has(e==null?void 0:e.id))&&(t==null||t.set(e==null?void 0:e.id,e),e!=null&&e.parent)){const r=n==null?void 0:n.get(e==null?void 0:e.parent);it(r,t,n)}},at=(e,t)=>{const n=new Map,r=new Map(e==null?void 0:e.map(s=>[s.id,s]));return t==null||t.forEach(s=>{it(s,n,r)}),Array.from(n==null?void 0:n.values())},ct="time_period_end",ut="time_period_start",lt="TIME_PERIOD",hn=e=>{const t=e==null?void 0:e.find(o=>o.id===ut),n=e==null?void 0:e.find(o=>o.id===ct),r=n!=null&&n.title?new Date(n==null?void 0:n.title):null;return{startPeriod:t!=null&&t.title?new Date(t==null?void 0:t.title):null,endPeriod:r}},Dn=(e,t)=>e.id.localeCompare(t.id),An=(e,t)=>e.memberValue.localeCompare(t.memberValue),yn=(e,t)=>{const n=new Array(e.length),r=e.map((i,a)=>[i,a]);r.sort((i,a)=>Dn(i[0],a[0]));const s=[...t];s.sort(An);let o=0;for(const i of r){const a=i[0];for(;o<s.length&&s[o].memberValue.localeCompare(a.id)<0;)o+=1;o<s.length&&s[o].memberValue===a.id&&(n[i[1]]=i[0])}return n.filter(i=>i!=null)},Sn=e=>!!(e!=null&&e.some(t=>t.parent)),mn=(e,t,n,r,s=[])=>{var i,a;let o=e||[];if(Tn(n||[],t||"")){const c=(i=(n||[])[0].cubeRegions)==null?void 0:i.find(({isIncluded:u})=>u);if(c){const u=(a=c.memberSelection)==null?void 0:a.find(({componentId:l})=>l===t);u?o=o.length===0?(u.selectionValues||[]).map(({memberValue:l})=>({id:l,name:l})):yn(o,u.selectionValues):o=[]}}else s.length!==0&&(o=o.filter(({id:c})=>s.includes(c)));return Sn(e)&&(o=at(e,o)),o==null?void 0:o.map(c=>({...c,name:r?q(c,r):c==null?void 0:c.name}))},Tn=(e,t)=>e!=null&&e.length>0&&t!=null,Rn=e=>{var n;const t=[];return(n=e==null?void 0:e.filters)==null||n.forEach(r=>{r.componentCode!==lt&&t.push({componentCode:r.componentCode,operator:R.EQUALS,value:r.values.join(",")})}),t},pn=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,Se=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const t=e.match(pn);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},me=e=>e==="*"||e==="x"||e==="X",Te=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},wn=(e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t],vn=(e,t)=>{if(me(e)||me(t))return 0;const[n,r]=wn(Te(e),Te(t));return n>r?1:n<r?-1:0},Re=(e,t)=>{for(let n=0;n<Math.max(e.length,t.length);n++){const r=vn(e[n]||"0",t[n]||"0");if(r!==0)return r}return 0},Pn=(e,t)=>{const n=Se(e),r=Se(t),s=n.pop(),o=r.pop(),i=Re(n,r);return i!==0?i:s&&o?Re(s.split("."),o.split(".")):s||o?s?-1:1:0},_n=(e,t,n)=>{In(n);const r=Pn(e,t);return dt[n].includes(r)},dt={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},pe=Object.keys(dt),In=e=>{if(pe.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${pe.join("|")}`)},O="+",B=(e,t)=>{const{agency:n,id:r,version:s}=p(e),o=t.filter(c=>{var u;return c.agencyID===n&&c.id===r&&!((u=c==null?void 0:c.version)!=null&&u.includes(O))});if(o.length===1)return o[0];if(!(s!=null&&s.includes(O)))return o.find(c=>c.version===s);const i=o.map(c=>c.version),a=gt(s,i);return o.find(c=>c.version===a[0])},gt=(e,t)=>{const n=Nn(e,t);return n.length>0?[n[0]]:[]},Nn=(e,t)=>{const n=[];return t.forEach(r=>{Et(e,r)&&n.push(r)}),n},ft=e=>{const t=e.trim().replace(/\d+\+/,"*"),[n]=t.split("*");return new RegExp(`^${n}`)},Et=(e,t)=>{const n=e.trim().replace(/\+/,"");return ft(e).test(t)&&_n(t,n,">=")},V=(e,t)=>{const{concept:n}=ht(e,t);return n},ht=(e,t)=>{if(e==null)return{concept:void 0,scheme:void 0};const{childId:n,agency:r,id:s,version:o}=we(e);if(o!=null&&o.includes(O)){const i=B(e,t);return{concept:te((i==null?void 0:i.concepts)||[],n),scheme:i}}for(const i of t)if($n(i,s,r,o))return{concept:te((i==null?void 0:i.concepts)||[],n),scheme:i};return{concept:void 0,scheme:void 0}},te=(e,t)=>e==null?void 0:e.find(n=>n.id===t),$n=(e,t,n,r)=>e.id===t&&e.agencyID===n&&e.version===r,On=(e=[],t=[],n)=>{var c,u;const r=(n==null?void 0:n.conceptIdentity)||"",s=V(r,t),o=v((c=n==null?void 0:n.localRepresentation)==null?void 0:c.enumeration),i=v((u=s==null?void 0:s.coreRepresentation)==null?void 0:u.enumeration),a=o||i;if(a!=null)return B(a,e)},Ln=(e,t,n,r)=>{var o,i;const s=(o=t==null?void 0:t.find(a=>(a==null?void 0:a.id)===(e==null?void 0:e.id)))==null?void 0:o.values;return((i=n==null?void 0:n.filter(a=>s==null?void 0:s.some(c=>c.id===a.id)))==null?void 0:i.map(a=>({...a,name:r?q(a,r):a==null?void 0:a.name})))||[]},Dt=(e,t)=>{var s,o,i;const n=(s=t==null?void 0:t.dataStructureComponents)==null?void 0:s.attributeList,r=(o=e==null?void 0:e.metadataStructureComponents)==null?void 0:o.metadataAttributeList;return(i=n==null?void 0:n.metadataAttributeUsages)==null?void 0:i.map(a=>{var u;const c=(u=r==null?void 0:r.metadataAttributes)==null?void 0:u.find(l=>(l==null?void 0:l.id)===(a==null?void 0:a.metadataAttributeReference));return{...c,attributeRelationship:a.attributeRelationship,isMandatory:Number(c==null?void 0:c.minOccurs)>0}})},bn=(e=[],t,n)=>{const r=v(t==null?void 0:t.conceptIdentity)||"",s=V(r,e);return n?q(s,n):(s==null?void 0:s.name)??(s==null?void 0:s.id)??(t==null?void 0:t.id)};function ne(e){var t,n,r;return(r=(n=(t=e==null?void 0:e.dataStructures)==null?void 0:t[0])==null?void 0:n.dataStructureComponents)==null?void 0:r.dimensionList}function Cn(e){var t,n,r,s;return((s=(r=(n=(t=e==null?void 0:e.data)==null?void 0:t.structures)==null?void 0:n[0])==null?void 0:r.dimensions)==null?void 0:s.series)||[]}function Un(e){var t,n,r,s,o;return((o=(s=(r=(n=(t=e==null?void 0:e.data)==null?void 0:t.structures)==null?void 0:n[0])==null?void 0:r.dimensions)==null?void 0:s.observation)==null?void 0:o[0].values.map(i=>i.value).filter(i=>i!=null))||[]}function Wn(e){return e.find(t=>t.type===b.TIME_DIMENSION)}const xn=e=>{var i,a,c,u,l,g;const t=new Map,n=(i=e==null?void 0:e.dataStructures)==null?void 0:i[0],r=(a=e==null?void 0:e.metadataStructures)==null?void 0:a[0],s=(e==null?void 0:e.conceptSchemes)||[],o=(e==null?void 0:e.codelists)||[];return e&&[...((c=ne(e))==null?void 0:c.dimensions)||[],...((u=ne(e))==null?void 0:u.timeDimensions)||[],...Dt(r,n),...((g=(l=n==null?void 0:n.dataStructureComponents)==null?void 0:l.attributeList)==null?void 0:g.attributes)||[]].forEach(d=>{var D,y;const f=V(d==null?void 0:d.conceptIdentity,s),h=((D=d==null?void 0:d.localRepresentation)==null?void 0:D.enumeration)||((y=f==null?void 0:f.coreRepresentation)==null?void 0:y.enumeration),A=B(h,o);d!=null&&d.id&&(h?t.set(d==null?void 0:d.id,{...A,name:f==null?void 0:f.name,names:f==null?void 0:f.names}):t.set(d==null?void 0:d.id,{id:d==null?void 0:d.id,name:f==null?void 0:f.name,names:f==null?void 0:f.names}))}),t},Yn=e=>{var t;return((t=e==null?void 0:e.find(n=>n.id===F.SERIES_COUNT))==null?void 0:t.title)||""},Mn="/api/download",kn=(e,t,n,r,s,o,i)=>{const a=new URLSearchParams({urn:e,format:t,compress:"false",filename:o,filters:JSON.stringify(s),attribute:r,language:n,isMetadata:i?"true":"none"}).toString(),c=`${Mn}?${a}`;window.open(c,"_blank")},Qn=(e,t)=>{var r,s;const n=[];for(const o of e){if(o.type!==b.DIMENSION)continue;const i=t.find(a=>a.componentCode===o.id);i!=null&&((r=i.values)==null?void 0:r.length)>0?n.push((s=i.values)==null?void 0:s.join($e)):n.push("*")}return n.join(".")},At=(e,t)=>{if(!e||!e.startPeriod&&!e.endPeriod)return null;const n=[],{startPeriod:r,endPeriod:s}=e;if(r&&n.push(`${R.GREATER_OR_EQUAL}${Ee}${r.toISOString().split("T")[0]}`),s&&n.push(`${R.LESS_OR_EQUAL}${Ee}${s.toISOString().split("T")[0]}`),n.length===0)return null;const o=t;return n.map(i=>`${encodeURIComponent(`c[${o}]`)}${Nt}${encodeURIComponent(i)}`).join(Ne)},Fn=(e,t)=>{const n=yt(e,t)||null;return n?At(n,t==null?void 0:t.id):null},yt=(e,t)=>{var c,u;const n=t.id,r=(c=e==null?void 0:e.filters)==null?void 0:c.find(l=>l.componentCode===n);if(!r||!r.values)return null;const s=(u=r.values)==null?void 0:u.filter(l=>!!l);if(!s.length)return null;const o=r.operator;if(o===R.LESS_OR_EQUAL||o===R.LESS)return{startPeriod:null,endPeriod:I(s[0])};if(o===R.GREATER_OR_EQUAL||o===R.GREATER)return{startPeriod:I(s[0]),endPeriod:null};const i=I(s[0]),a=I(s[1]);return{startPeriod:i,endPeriod:a}},ge=(e,t,n)=>{const r=T(t,!0),s=T(n),o=T(e,!0),i=T(e),a=r.getTime()>o.getTime()?r:o,c=s.getTime()<i.getTime()?s:i;return{start:a,end:c}},St=(e,t,n,r="W")=>{const s=+e,{start:o,end:i}=ge(e,t,n);if(o.getTime()>i.getTime())return[];const a=P(o,r),c=a.weekYear===s?a.weekNumber:a.weekYear<s?1:ee(s,r),u=P(i,r),l=u.weekYear===s?u.weekNumber:u.weekYear>s?ee(s,r):1,g=[];if(c<l)for(let E=c;E<=l;E++)g.push(ue(s,E,r));return g},qn=e=>{const t=new Date(e);return t.setMinutes(t.getMinutes()-t.getTimezoneOffset()),t.toISOString().slice(0,10)},mt=(e,t,n)=>{const{start:r,end:s}=ge(e,t,n);if(r.getTime()>s.getTime())return[];const o=[],i=new Date(r.getFullYear(),r.getMonth(),r.getDate()),a=new Date(s.getFullYear(),s.getMonth(),s.getDate());for(;i.getTime()<a.getTime();){const c=qn(i);o.push(c),i.setDate(i.getDate()+1)}return o},Tt=e=>({isDailyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="D")),isWeeklyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="W")),isMonthlyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="M")),isQuarterlyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="Q")),isSemiAnnualExist:!!(e!=null&&e.some(({memberValue:t})=>t==="S")),isYearlyExist:!!(e!=null&&e.some(({memberValue:t})=>t==="A"||t==="Y"))}),Bn=(e,t,n,r)=>{var i,a;const s=r===0?((i=T(t.toString(),!0))==null?void 0:i.getMonth())+1:void 0,o=r===e.length-1?((a=T(n.toString()))==null?void 0:a.getMonth())+1||1:void 0;return{startMonth:s,endMonth:o}},Rt=["FREQUENCY","FREQ"],Vn=(e,t)=>{var c,u,l,g,E,d,f;const n=(E=(g=(l=(u=(c=e==null?void 0:e[0])==null?void 0:c.cubeRegions)==null?void 0:u[0])==null?void 0:l.memberSelection)==null?void 0:g.find(h=>Rt.includes(h.componentId)))==null?void 0:E.selectionValues,r=Tt(n||[]),s=((d=t==null?void 0:t.startPeriod)==null?void 0:d.getTime())||1,o=((f=t==null?void 0:t.endPeriod)==null?void 0:f.getTime())||1,i=nt(o,s),a=[];return i.forEach((h,A)=>{const D=[],{startMonth:y,endMonth:S}=Bn(i,new Date(s),new Date(o),A),{isDailyExist:G,isWeeklyExist:K,isMonthlyExist:j,isQuarterlyExist:z,isSemiAnnualExist:H,isYearlyExist:m}=r;m&&D.push(h.toString()),H&&D.push(...Ze(h,y,S)),z&&D.push(...Xe(h,y,S,!1)),j&&D.push(...tt(h,y,S)),K&&D.push(...St(h,s.toString(),o.toString())),G&&D.push(...mt(h,s.toString(),o.toString())),a.push(...D)}),a};exports.Annotations=F;exports.AssignmentStatus=Le;exports.AvailabilityApi=_t;exports.DATASET_DATA_URL=Ie;exports.DatasetApi=Lt;exports.DimensionType=b;exports.DownloadType=Pe;exports.FREQUENCY_DIMENSION_ID=Qt;exports.FREQUENCY_DIM_ID=Rt;exports.FileColumnsAttribute=ve;exports.GET_v3_FILTER_ALL=Oe;exports.GET_v3_FILTER_AND=$t;exports.GET_v3_FILTER_OR=$e;exports.OBSERVATION_KEY=We;exports.OccurrenceType=be;exports.Periods=ot;exports.RepresentationTextType=st;exports.SDMX_DATA_QUERY_PARAMS=rt;exports.SINGLE_WILDCARD_SYMBOL=O;exports.SdmxApiClient=kt;exports.SdmxAvailabilityMode=re;exports.SdmxDataFormat=w;exports.SdmxDetails=se;exports.SdmxReferences=L;exports.SeriesFilterOperator=R;exports.TIME_PERIOD=lt;exports.TIME_PERIOD_END=ct;exports.TIME_PERIOD_START=ut;exports.dailyPattern=Be;exports.decodeDimensionId=Me;exports.findCodelistByDimension=On;exports.generateDatasetDataRequest=X;exports.generateShortUrn=vt;exports.getAdditionalColumns=Vn;exports.getAnnotationPeriod=hn;exports.getArtifactByUrnWithWildCard=B;exports.getAttachedDimensionsSeriesByDimension=Ft;exports.getAttachedDimensionsSeriesByTsId=Ce;exports.getAttachedDimensionsSeriesKey=oe;exports.getAttributeValueFromDataQueryResponse=Ue;exports.getAvailableCodes=Ln;exports.getAvailableCodesFromConstrains=mn;exports.getChildParsedUrn=we;exports.getConcept=V;exports.getConceptByUrn=te;exports.getConceptWithScheme=ht;exports.getConvertedMetaAttributes=Dt;exports.getDailyRegExp=Ke;exports.getDaysColumns=mt;exports.getDimensionTitle=bn;exports.getDimensions=ne;exports.getFilteredItemsWithParents=at;exports.getFiltersDtoFromDataQuery=Rn;exports.getISOWeek=P;exports.getKeyFromUrn=v;exports.getLastUpdatedTime=En;exports.getLastWeekNumberOfYear=ee;exports.getLocalizedName=q;exports.getMonthlyData=tt;exports.getMonthlyDataByQuarter=ln;exports.getMonthlyRegExp=x;exports.getParsedEndPeriodDate=de;exports.getParsedResponse=qt;exports.getParsedStartPeriodDate=le;exports.getPeriodDate=T;exports.getPeriods=Tt;exports.getQuarterByMonth=an;exports.getQuarterlyRegExp=M;exports.getQuartersData=Xe;exports.getQueryTimePeriodFilters=At;exports.getRequestAcceptHeader=_e;exports.getResolvedVersionBySingleWildcard=gt;exports.getSemiAnnualData=Ze;exports.getSemiAnnuallyRegExp=Ge;exports.getSeriesAttributes=$;exports.getSeriesName=xe;exports.getStructureComponentsMap=xn;exports.getStructureDimensions=Cn;exports.getTimeDimension=Wn;exports.getTimePeriods=Un;exports.getTimeQueryFilter=Fn;exports.getTimeRangeFromAttachment=yt;exports.getTimeSeriesCount=Yn;exports.getTimeSeriesFilterKey=Qn;exports.getTimeSeriesId=Ye;exports.getWeekCode=ue;exports.getWeeklyPeriodEndDate=Je;exports.getWeeklyPeriodStartDate=He;exports.getWeeklyRegExp=ze;exports.getWeeksColumns=St;exports.getWildCardRegexp=ft;exports.getYearPeriod=ge;exports.getYearlyRegExp=C;exports.getYears=nt;exports.isDaily=je;exports.isMonthly=Y;exports.isQuarterly=k;exports.isSemiAnnually=W;exports.isWeekly=Q;exports.isWildCardVersionCorrect=Et;exports.isYearly=U;exports.monthlyPattern=Ve;exports.openDownloadWindow=kn;exports.quarterPattern=ke;exports.semiAnnuallyPattern=Fe;exports.sortPeriods=fn;exports.splitUrn=p;exports.weeklyPattern=Qe;exports.yearlyPattern=qe;