@epam/statgpt-sdmx-toolkit 0.2.0-rc.11 → 0.2.0-rc.13

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/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 r;const t={agency:"",id:"",version:""};if(e==null)return t;const n=v(e);if(n&&(n.includes(":")&&(t.agency=n.split(":")[0],t.id=n.split(":")[1].split("(")[0]),n.includes("("))){const s=n.split("(");t.version=(r=s[1])==null?void 0:r.split(")")[0],t.id||(t.id=s[0])}return t},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(":")}},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(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",Bt=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],K=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 G=$((r==null?void 0:r.series)||[],T=>K[T]),j=Kt(((d=n.attributes)==null?void 0:d.dataSet)||[],((f=t[0].attributes)==null?void 0:f.filter(T=>T!=null))||[]),z=Ce(e,y),H=o.map((T,pt)=>{const fe=z[T.id],wt=Ue(T,fe.values[pt]);return{attribute:T,dimensionGroupValue:wt,dimensionGroupData:fe}});c.push({name:D,parsedTimeSeriesValue:y,values:A,attributes:G,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?Ft(o,s):void 0;n.push({name:s.id,value:i})}return n},Ft=(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]})))||[]},Kt=(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||""})},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]?$/,qe=/^[0-9][0-9][0-9][0-9]-S[1-2]$/,Be=/^[0-9][0-9][0-9][0-9]$/,Fe=/^[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=>Be.exec(e),U=e=>!!C(e),Ke=e=>qe.exec(e),W=e=>!!Ke(e),x=e=>Ve.exec(e),Y=e=>!!x(e),M=e=>ke.exec(e),k=e=>!!M(e),Ge=e=>Fe.exec(e),je=e=>!!Ge(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=m(t,!0),r=m(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)},m=(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 q=(e=>(e.LAST_UPDATE_AT="lastUpdatedAt",e.SERIES_COUNT="series_count",e))(q||{}),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===q.LAST_UPDATE_AT)return r}))==null?void 0:n.value}const B=(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)),Tn=(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 Sn(e)&&(o=at(e,o)),o==null?void 0:o.map(c=>({...c,name:r?B(c,r):c==null?void 0:c.name}))},mn=(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},Te=e=>e==="*"||e==="x"||e==="X",me=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(Te(e)||Te(t))return 0;const[n,r]=wn(me(e),me(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="+",F=(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=F(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 F(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?B(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?B(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=F(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===q.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)},qn=(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=m(t,!0),s=m(n),o=m(e,!0),i=m(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},Bn=e=>{const t=new Date(e);return t.setMinutes(t.getMinutes()-t.getTimezoneOffset()),t.toISOString().slice(0,10)},Tt=(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=Bn(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"))}),Fn=(e,t,n,r)=>{var i,a;const s=r===0?((i=m(t.toString(),!0))==null?void 0:i.getMonth())+1:void 0,o=r===e.length-1?((a=m(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=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=nt(o,s),a=[];return i.forEach((h,A)=>{const D=[],{startMonth:y,endMonth:S}=Fn(i,new Date(s),new Date(o),A),{isDailyExist:K,isWeeklyExist:G,isMonthlyExist:j,isQuarterlyExist:z,isSemiAnnualExist:H,isYearlyExist:T}=r;T&&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)),G&&D.push(...St(h,s.toString(),o.toString())),K&&D.push(...Tt(h,s.toString(),o.toString())),a.push(...D)}),a};exports.Annotations=q;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=Fe;exports.decodeDimensionId=Me;exports.findCodelistByDimension=On;exports.generateDatasetDataRequest=X;exports.generateShortUrn=vt;exports.getAdditionalColumns=Vn;exports.getAnnotationPeriod=hn;exports.getArtifactByUrnWithWildCard=F;exports.getAttachedDimensionsSeriesByDimension=qt;exports.getAttachedDimensionsSeriesByTsId=Ce;exports.getAttachedDimensionsSeriesKey=oe;exports.getAttributeValueFromDataQueryResponse=Ue;exports.getAvailableCodes=Ln;exports.getAvailableCodesFromConstrains=Tn;exports.getChildParsedUrn=we;exports.getConcept=V;exports.getConceptByUrn=te;exports.getConceptWithScheme=ht;exports.getConvertedMetaAttributes=Dt;exports.getDailyRegExp=Ge;exports.getDaysColumns=Tt;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=B;exports.getMonthlyData=tt;exports.getMonthlyDataByQuarter=ln;exports.getMonthlyRegExp=x;exports.getParsedEndPeriodDate=de;exports.getParsedResponse=Bt;exports.getParsedStartPeriodDate=le;exports.getPeriodDate=m;exports.getPeriods=mt;exports.getQuarterByMonth=an;exports.getQuarterlyRegExp=M;exports.getQuartersData=Xe;exports.getQueryTimePeriodFilters=At;exports.getRequestAcceptHeader=_e;exports.getResolvedVersionBySingleWildcard=gt;exports.getSemiAnnualData=Ze;exports.getSemiAnnuallyRegExp=Ke;exports.getSeriesAttributes=$;exports.getSeriesName=xe;exports.getStructureComponentsMap=xn;exports.getStructureDimensions=Cn;exports.getTimeDimension=Wn;exports.getTimePeriods=Un;exports.getTimeQueryFilter=qn;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=qe;exports.sortPeriods=fn;exports.splitUrn=p;exports.weeklyPattern=Qe;exports.yearlyPattern=Be;
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 r;if(e==null)return{};const t=v(e),n={agency:"",id:"",version:""};return t&&(t.includes(":")&&(n.agency=t.split(":")[0],n.id=t.split(":")[1].split("(")[0]),t.includes("(")&&t.includes(")")&&(n.version=(r=t.split("(")[1])==null?void 0:r.split(")")[0])),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}`,Ut="application/json",Ct="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={[Ct]:(t==null?void 0:t.contentType)||Ut};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 Ue=(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},Ce=(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)||[],T=>G[T]),j=Gt(((d=n.attributes)==null?void 0:d.dataSet)||[],((f=t[0].attributes)==null?void 0:f.filter(T=>T!=null))||[]),z=Ue(e,y),H=o.map((T,pt)=>{const fe=z[T.id],wt=Ce(T,fe.values[pt]);return{attribute:T,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]))$/,U=e=>qe.exec(e),C=e=>!!U(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 C(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 C(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=U(e);if(t)return new Date(Number(t[0]),0,1)}function Ht(e){const t=U(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=m(t,!0),r=m(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)},m=(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=>C(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)),Tn=(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 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}))},mn=(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},Te=e=>e==="*"||e==="x"||e==="X",me=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(Te(e)||Te(t))return 0;const[n,r]=wn(me(e),me(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 Un(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 Cn(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=m(t,!0),s=m(n),o=m(e,!0),i=m(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)},Tt=(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},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"))}),Bn=(e,t,n,r)=>{var i,a;const s=r===0?((i=m(t.toString(),!0))==null?void 0:i.getMonth())+1:void 0,o=r===e.length-1?((a=m(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=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=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:T}=r;T&&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(...Tt(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=Ue;exports.getAttachedDimensionsSeriesKey=oe;exports.getAttributeValueFromDataQueryResponse=Ce;exports.getAvailableCodes=Ln;exports.getAvailableCodesFromConstrains=Tn;exports.getChildParsedUrn=we;exports.getConcept=V;exports.getConceptByUrn=te;exports.getConceptWithScheme=ht;exports.getConvertedMetaAttributes=Dt;exports.getDailyRegExp=Ke;exports.getDaysColumns=Tt;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=m;exports.getPeriods=mt;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=Un;exports.getTimeDimension=Wn;exports.getTimePeriods=Cn;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=U;exports.getYears=nt;exports.isDaily=je;exports.isMonthly=Y;exports.isQuarterly=k;exports.isSemiAnnually=W;exports.isWeekly=Q;exports.isWildCardVersionCorrect=Et;exports.isYearly=C;exports.monthlyPattern=Ve;exports.openDownloadWindow=kn;exports.quarterPattern=ke;exports.semiAnnuallyPattern=Fe;exports.sortPeriods=fn;exports.splitUrn=p;exports.weeklyPattern=Qe;exports.yearlyPattern=qe;
package/index.mjs CHANGED
@@ -5,19 +5,14 @@ const I = (e) => {
5
5
  }
6
6
  }, p = (e) => {
7
7
  var r;
8
- const t = {
8
+ if (e == null)
9
+ return {};
10
+ const t = I(e), n = {
9
11
  agency: "",
10
12
  id: "",
11
13
  version: ""
12
14
  };
13
- if (e == null)
14
- return t;
15
- const n = I(e);
16
- if (n && (n.includes(":") && (t.agency = n.split(":")[0], t.id = n.split(":")[1].split("(")[0]), n.includes("("))) {
17
- const s = n.split("(");
18
- t.version = (r = s[1]) == null ? void 0 : r.split(")")[0], t.id || (t.id = s[0]);
19
- }
20
- return t;
15
+ return t && (t.includes(":") && (n.agency = t.split(":")[0], n.id = t.split(":")[1].split("(")[0]), t.includes("(") && t.includes(")") && (n.version = (r = t.split("(")[1]) == null ? void 0 : r.split(")")[0])), n;
21
16
  }, Pe = (e) => {
22
17
  const [t, n] = e.split(")."), { agency: r, id: s, version: o } = p(t + ")");
23
18
  return { childId: n, agency: r, id: s, version: o };
@@ -25,7 +20,7 @@ const I = (e) => {
25
20
  const r = t === "" ? "" : `(${t})`;
26
21
  return `${n}:${e}${r}`;
27
22
  };
28
- var q = /* @__PURE__ */ ((e) => (e.DESCENDANTS = "descendants", e.NONE = "none", e.ALL = "all", e))(q || {}), De = /* @__PURE__ */ ((e) => (e.EXACT = "exact", e.AVAILABLE = "available", e))(De || {});
23
+ var k = /* @__PURE__ */ ((e) => (e.DESCENDANTS = "descendants", e.NONE = "none", e.ALL = "all", e))(k || {}), De = /* @__PURE__ */ ((e) => (e.EXACT = "exact", e.AVAILABLE = "available", e))(De || {});
29
24
  const Oe = (e = "", t = "", n = "") => `sdmx/3.0/availability/dataflow/${e}/${t}/${n}`;
30
25
  class Tn {
31
26
  constructor(t) {
@@ -35,7 +30,7 @@ class Tn {
35
30
  const { agency: r, id: s, version: o } = p(t), i = {
36
31
  filters: n || [],
37
32
  mode: De.AVAILABLE,
38
- references: q.NONE
33
+ references: k.NONE
39
34
  }, c = Oe(r, s, o);
40
35
  return await this.client.postRequest(c, { body: i });
41
36
  }
@@ -63,10 +58,10 @@ const Ue = (e, t) => {
63
58
  }
64
59
  }, m = (e, t) => `${e}; labels=${t}`;
65
60
  var ye = /* @__PURE__ */ ((e) => (e.REFERENCE_PARTIAL = "referencepartial", e.FULL = "full", e))(ye || {});
66
- const xe = "all", Ye = "sdmx/3.0/data/dataflow", Se = "&", re = ":", Ce = "=", We = "+", Rn = ",", qe = "*", se = (e, t, n) => {
61
+ const xe = "all", Ye = "sdmx/3.0/data/dataflow", Se = "&", re = ":", Ce = "=", We = "+", Rn = ",", ke = "*", se = (e, t, n) => {
67
62
  const { filterKey: r, timeFilter: s } = n, { agency: o, id: i, version: c } = p(e), a = [s || "", t].filter((l) => !!l).join(Se);
68
- return `${`${Ye}/${o}/${i}/${c}`}/${r || qe}?${a}`;
69
- }, Me = (e = "", t = "", n = "", r = q.DESCENDANTS) => `sdmx/3.0/structure/dataflow/${e}/${t}/${n}?references=${r}&detail=${ye.REFERENCE_PARTIAL}`;
63
+ return `${`${Ye}/${o}/${i}/${c}`}/${r || ke}?${a}`;
64
+ }, qe = (e = "", t = "", n = "", r = k.DESCENDANTS) => `sdmx/3.0/structure/dataflow/${e}/${t}/${n}?references=${r}&detail=${ye.REFERENCE_PARTIAL}`;
70
65
  class wn {
71
66
  constructor(t) {
72
67
  this.client = t;
@@ -74,7 +69,7 @@ class wn {
74
69
  async getDataSet(t, n) {
75
70
  const { agency: r, id: s, version: o } = p(t);
76
71
  return await this.client.getRequest(
77
- Me(r, s, o, n)
72
+ qe(r, s, o, n)
78
73
  );
79
74
  }
80
75
  async getDatasetData(t, n) {
@@ -107,7 +102,7 @@ class wn {
107
102
  );
108
103
  }
109
104
  }
110
- const ke = (e, t) => e.error || e.message || `${t.status} ${t.statusText}`, Qe = "application/json", Be = "Content-Type", x = "Api-Key", Ve = "X-CONVERSATION-ID", N = "Ocp-Apim-Subscription-Key", v = (e) => isNaN(Date.parse(e)) ? null : new Date(e), Y = (e, t, n) => {
105
+ const Me = (e, t) => e.error || e.message || `${t.status} ${t.statusText}`, Qe = "application/json", Be = "Content-Type", x = "Api-Key", Ve = "X-CONVERSATION-ID", N = "Ocp-Apim-Subscription-Key", v = (e) => isNaN(Date.parse(e)) ? null : new Date(e), Y = (e, t, n) => {
111
106
  const r = {
112
107
  [Be]: (t == null ? void 0 : t.contentType) || Qe
113
108
  };
@@ -119,13 +114,13 @@ const ke = (e, t) => e.error || e.message || `${t.status} ${t.statusText}`, Qe =
119
114
  method: n.method || "GET",
120
115
  headers: t,
121
116
  body: n.body ? JSON.stringify(n.body) : void 0
122
- }), Ke = async (e, t, n) => await fetch(e, {
117
+ }), Ge = async (e, t, n) => await fetch(e, {
123
118
  method: n.method,
124
119
  headers: t,
125
120
  body: n != null && n.isFormData && typeof (n == null ? void 0 : n.body) == "string" ? n.body : JSON.stringify(n.body),
126
121
  signal: n == null ? void 0 : n.signal
127
122
  });
128
- class Ge {
123
+ class Ke {
129
124
  constructor() {
130
125
  this.decoder = new TextDecoder();
131
126
  }
@@ -146,7 +141,7 @@ class Ge {
146
141
  async initializeStreamRequest(t, n, r, s) {
147
142
  const o = Y(void 0, {
148
143
  jwt: s
149
- }), i = await Ke(
144
+ }), i = await Ge(
150
145
  t,
151
146
  {
152
147
  Accept: "text/event-stream",
@@ -210,7 +205,7 @@ class Ge {
210
205
  }
211
206
  }
212
207
  }
213
- new Ge();
208
+ new Ke();
214
209
  class pn {
215
210
  constructor(t) {
216
211
  this.config = t, console.info("SdmxApiClient initialized", {
@@ -289,7 +284,7 @@ class pn {
289
284
  }
290
285
  if (!i.ok) {
291
286
  this.addErrorRequestLog(s, n, i, c, a);
292
- const l = ke(a, i);
287
+ const l = Me(a, i);
293
288
  throw new Error(`API request failed: ${l}`);
294
289
  }
295
290
  return a;
@@ -334,7 +329,7 @@ class pn {
334
329
  }
335
330
  }
336
331
  const mn = ["FREQ", "FREQUENCY"];
337
- var je = /* @__PURE__ */ ((e) => (e.CONDITIONAL = "Conditional", e.MANDATORY = "Mandatory", e))(je || {}), M = /* @__PURE__ */ ((e) => (e.DIMENSION = "Dimension", e.MEASURE_DIMENSION = "MeasureDimension", e.TIME_DIMENSION = "TimeDimension", e))(M || {}), ze = /* @__PURE__ */ ((e) => (e.UNBOUNDED = "unbounded", e))(ze || {});
332
+ var je = /* @__PURE__ */ ((e) => (e.CONDITIONAL = "Conditional", e.MANDATORY = "Mandatory", e))(je || {}), q = /* @__PURE__ */ ((e) => (e.DIMENSION = "Dimension", e.MEASURE_DIMENSION = "MeasureDimension", e.TIME_DIMENSION = "TimeDimension", e))(q || {}), ze = /* @__PURE__ */ ((e) => (e.UNBOUNDED = "unbounded", e))(ze || {});
338
333
  const He = (e, t) => {
339
334
  var c, a, u, l, f;
340
335
  const n = (a = (c = e == null ? void 0 : e.data) == null ? void 0 : c.dataSets) == null ? void 0 : a[0], r = (l = (u = e == null ? void 0 : e.data) == null ? void 0 : u.structures) == null ? void 0 : l[0], s = ((f = r == null ? void 0 : r.attributes) == null ? void 0 : f.dimensionGroup) || [], o = n == null ? void 0 : n.dimensionGroupAttributes, i = {};
@@ -528,7 +523,7 @@ const He = (e, t) => {
528
523
  name: t.id,
529
524
  value: s || ""
530
525
  });
531
- }, it = /^[0-9][0-9][0-9][0-9]-Q[1-4]$/, ct = /^[0-9][0-9][0-9][0-9]-W[0-9][0-9]?$/, at = /^[0-9][0-9][0-9][0-9]-S[1-2]$/, ut = /^[0-9][0-9][0-9][0-9]$/, lt = /^[0-9][0-9][0-9][0-9]-(0[1-9]|1[0-2])-[0-9][0-9]$/, dt = /^[0-9][0-9][0-9][0-9]-M(0[1-9]|(1[0-2]))$/, k = (e) => ut.exec(e), Q = (e) => !!k(e), ft = (e) => at.exec(e), B = (e) => !!ft(e), V = (e) => dt.exec(e), F = (e) => !!V(e), K = (e) => it.exec(e), G = (e) => !!K(e), gt = (e) => lt.exec(e), Et = (e) => !!gt(e), ht = (e) => ct.exec(e), j = (e) => !!ht(e), z = 1440 * 60 * 1e3, H = 7 * z;
526
+ }, it = /^[0-9][0-9][0-9][0-9]-Q[1-4]$/, ct = /^[0-9][0-9][0-9][0-9]-W[0-9][0-9]?$/, at = /^[0-9][0-9][0-9][0-9]-S[1-2]$/, ut = /^[0-9][0-9][0-9][0-9]$/, lt = /^[0-9][0-9][0-9][0-9]-(0[1-9]|1[0-2])-[0-9][0-9]$/, dt = /^[0-9][0-9][0-9][0-9]-M(0[1-9]|(1[0-2]))$/, M = (e) => ut.exec(e), Q = (e) => !!M(e), ft = (e) => at.exec(e), B = (e) => !!ft(e), V = (e) => dt.exec(e), F = (e) => !!V(e), G = (e) => it.exec(e), K = (e) => !!G(e), gt = (e) => lt.exec(e), Et = (e) => !!gt(e), ht = (e) => ct.exec(e), j = (e) => !!ht(e), z = 1440 * 60 * 1e3, H = 7 * z;
532
527
  function J(e) {
533
528
  const t = `${e}-01-01`, n = new Date(t);
534
529
  if (n.getDay() !== 4) {
@@ -570,18 +565,18 @@ function yt(e) {
570
565
  return new Date(s);
571
566
  }
572
567
  function we(e) {
573
- return Q(e) ? St(e) : B(e) ? Rt(e) : G(e) ? pt(e) : F(e) ? vt(e) : j(e) ? Dt(e) : Nt(e);
568
+ return Q(e) ? St(e) : B(e) ? Rt(e) : K(e) ? pt(e) : F(e) ? vt(e) : j(e) ? Dt(e) : Nt(e);
574
569
  }
575
570
  function pe(e) {
576
- return Q(e) ? Tt(e) : B(e) ? wt(e) : G(e) ? mt(e) : F(e) ? $t(e) : j(e) ? yt(e) : It(e);
571
+ return Q(e) ? Tt(e) : B(e) ? wt(e) : K(e) ? mt(e) : F(e) ? $t(e) : j(e) ? yt(e) : It(e);
577
572
  }
578
573
  function St(e) {
579
- const t = k(e);
574
+ const t = M(e);
580
575
  if (t)
581
576
  return new Date(Number(t[0]), 0, 1);
582
577
  }
583
578
  function Tt(e) {
584
- const t = k(e);
579
+ const t = M(e);
585
580
  if (t)
586
581
  return new Date(Number(t[0]) + 1, 0, 1);
587
582
  }
@@ -604,7 +599,7 @@ function wt(e) {
604
599
  }
605
600
  }
606
601
  function pt(e) {
607
- const t = K(e);
602
+ const t = G(e);
608
603
  if (!t)
609
604
  return;
610
605
  const [n, r] = t[0].split("-Q");
@@ -620,7 +615,7 @@ function pt(e) {
620
615
  }
621
616
  }
622
617
  function mt(e) {
623
- const t = K(e);
618
+ const t = G(e);
624
619
  if (!t)
625
620
  return;
626
621
  const [n, r] = t[0].split("-Q");
@@ -718,11 +713,11 @@ const Nt = (e) => /* @__PURE__ */ new Date(`${e}T00:00:00`), It = (e) => {
718
713
  return r - s;
719
714
  }
720
715
  return n;
721
- }, ae = (e) => Q(e) ? 6 : B(e) ? 5 : G(e) ? 4 : F(e) ? 3 : j(e) ? 2 : Et(e) ? 1 : 0, ue = (e, t = !1) => {
716
+ }, ae = (e) => Q(e) ? 6 : B(e) ? 5 : K(e) ? 4 : F(e) ? 3 : j(e) ? 2 : Et(e) ? 1 : 0, ue = (e, t = !1) => {
722
717
  const n = t ? we(e) : pe(e);
723
718
  return (n == null ? void 0 : n.getTime()) || 0;
724
719
  };
725
- var X = /* @__PURE__ */ ((e) => (e.LAST_UPDATE_AT = "lastUpdatedAt", e.SERIES_COUNT = "series_count", e))(X || {}), Wt = /* @__PURE__ */ ((e) => (e.C = "c", e))(Wt || {}), w = /* @__PURE__ */ ((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))(w || {}), qt = /* @__PURE__ */ ((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))(qt || {}), Mt = /* @__PURE__ */ ((e) => (e.ANNUAL = "A", e.QUARTERLY = "Q", e.MONTHLY = "M", e))(Mt || {});
720
+ var X = /* @__PURE__ */ ((e) => (e.LAST_UPDATE_AT = "lastUpdatedAt", e.SERIES_COUNT = "series_count", e))(X || {}), Wt = /* @__PURE__ */ ((e) => (e.C = "c", e))(Wt || {}), w = /* @__PURE__ */ ((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))(w || {}), kt = /* @__PURE__ */ ((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))(kt || {}), qt = /* @__PURE__ */ ((e) => (e.ANNUAL = "A", e.QUARTERLY = "Q", e.MONTHLY = "M", e))(qt || {});
726
721
  function Pn(e) {
727
722
  var t, n;
728
723
  return (n = (t = e == null ? void 0 : e.annotations) == null ? void 0 : t.find((r) => {
@@ -735,7 +730,7 @@ const Z = (e, t) => (e == null ? void 0 : e.names) && (e == null ? void 0 : e.na
735
730
  const r = n == null ? void 0 : n.get(e == null ? void 0 : e.parent);
736
731
  ve(r, t, n);
737
732
  }
738
- }, kt = (e, t) => {
733
+ }, Mt = (e, t) => {
739
734
  const n = /* @__PURE__ */ new Map(), r = new Map(e == null ? void 0 : e.map((s) => [s.id, s]));
740
735
  return t == null || t.forEach((s) => {
741
736
  ve(s, n, r);
@@ -750,13 +745,13 @@ const Z = (e, t) => (e == null ? void 0 : e.names) && (e == null ? void 0 : e.na
750
745
  startPeriod: t != null && t.title ? new Date(t == null ? void 0 : t.title) : null,
751
746
  endPeriod: r
752
747
  };
753
- }, Ft = (e, t) => e.id.localeCompare(t.id), Kt = (e, t) => e.memberValue.localeCompare(t.memberValue), Gt = (e, t) => {
748
+ }, Ft = (e, t) => e.id.localeCompare(t.id), Gt = (e, t) => e.memberValue.localeCompare(t.memberValue), Kt = (e, t) => {
754
749
  const n = new Array(e.length), r = e.map((i, c) => [i, c]);
755
750
  r.sort(
756
751
  (i, c) => Ft(i[0], c[0])
757
752
  );
758
753
  const s = [...t];
759
- s.sort(Kt);
754
+ s.sort(Gt);
760
755
  let o = 0;
761
756
  for (const i of r) {
762
757
  const c = i[0];
@@ -779,10 +774,10 @@ const Z = (e, t) => (e == null ? void 0 : e.names) && (e == null ? void 0 : e.na
779
774
  u ? o = o.length === 0 ? (u.selectionValues || []).map(({ memberValue: l }) => ({
780
775
  id: l,
781
776
  name: l
782
- })) : Gt(o, u.selectionValues) : o = [];
777
+ })) : Kt(o, u.selectionValues) : o = [];
783
778
  }
784
779
  } else s.length !== 0 && (o = o.filter(({ id: a }) => s.includes(a)));
785
- return jt(e) && (o = kt(e, o)), o == null ? void 0 : o.map((a) => ({
780
+ return jt(e) && (o = Mt(e, o)), o == null ? void 0 : o.map((a) => ({
786
781
  ...a,
787
782
  name: r ? Z(a, r) : a == null ? void 0 : a.name
788
783
  }));
@@ -944,12 +939,12 @@ function Wn(e) {
944
939
  var t, n, r, s, o;
945
940
  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)) || [];
946
941
  }
947
- function qn(e) {
942
+ function kn(e) {
948
943
  return e.find(
949
- (t) => t.type === M.TIME_DIMENSION
944
+ (t) => t.type === q.TIME_DIMENSION
950
945
  );
951
946
  }
952
- const Mn = (e) => {
947
+ const qn = (e) => {
953
948
  var i, c, a, u, l, f;
954
949
  const t = /* @__PURE__ */ new Map(), n = (i = e == null ? void 0 : e.dataStructures) == null ? void 0 : i[0], r = (c = e == null ? void 0 : e.metadataStructures) == null ? void 0 : c[0], s = (e == null ? void 0 : e.conceptSchemes) || [], o = (e == null ? void 0 : e.codelists) || [];
955
950
  return e && [
@@ -978,7 +973,7 @@ const Mn = (e) => {
978
973
  }));
979
974
  }
980
975
  ), t;
981
- }, kn = (e) => {
976
+ }, Mn = (e) => {
982
977
  var t;
983
978
  return ((t = e == null ? void 0 : e.find(
984
979
  (n) => n.id === X.SERIES_COUNT
@@ -999,7 +994,7 @@ const Mn = (e) => {
999
994
  var r, s;
1000
995
  const n = [];
1001
996
  for (const o of e) {
1002
- if (o.type !== M.DIMENSION)
997
+ if (o.type !== q.DIMENSION)
1003
998
  continue;
1004
999
  const i = t.find((c) => c.componentCode === o.id);
1005
1000
  i != null && ((r = i.values) == null ? void 0 : r.length) > 0 ? n.push((s = i.values) == null ? void 0 : s.join(We)) : n.push("*");
@@ -1118,25 +1113,25 @@ export {
1118
1113
  Tn as AvailabilityApi,
1119
1114
  Ye as DATASET_DATA_URL,
1120
1115
  wn as DatasetApi,
1121
- M as DimensionType,
1116
+ q as DimensionType,
1122
1117
  be as DownloadType,
1123
1118
  mn as FREQUENCY_DIMENSION_ID,
1124
1119
  yn as FREQUENCY_DIM_ID,
1125
1120
  Le as FileColumnsAttribute,
1126
- qe as GET_v3_FILTER_ALL,
1121
+ ke as GET_v3_FILTER_ALL,
1127
1122
  Rn as GET_v3_FILTER_AND,
1128
1123
  We as GET_v3_FILTER_OR,
1129
1124
  Xe as OBSERVATION_KEY,
1130
1125
  ze as OccurrenceType,
1131
- Mt as Periods,
1132
- qt as RepresentationTextType,
1126
+ qt as Periods,
1127
+ kt as RepresentationTextType,
1133
1128
  Wt as SDMX_DATA_QUERY_PARAMS,
1134
1129
  W as SINGLE_WILDCARD_SYMBOL,
1135
1130
  pn as SdmxApiClient,
1136
1131
  De as SdmxAvailabilityMode,
1137
1132
  $ as SdmxDataFormat,
1138
1133
  ye as SdmxDetails,
1139
- q as SdmxReferences,
1134
+ k as SdmxReferences,
1140
1135
  w as SeriesFilterOperator,
1141
1136
  Vt as TIME_PERIOD,
1142
1137
  Qt as TIME_PERIOD_END,
@@ -1164,7 +1159,7 @@ export {
1164
1159
  hn as getDaysColumns,
1165
1160
  Yn as getDimensionTitle,
1166
1161
  Ae as getDimensions,
1167
- kt as getFilteredItemsWithParents,
1162
+ Mt as getFilteredItemsWithParents,
1168
1163
  bn as getFiltersDtoFromDataQuery,
1169
1164
  _ as getISOWeek,
1170
1165
  I as getKeyFromUrn,
@@ -1180,7 +1175,7 @@ export {
1180
1175
  R as getPeriodDate,
1181
1176
  An as getPeriods,
1182
1177
  Nn as getQuarterByMonth,
1183
- K as getQuarterlyRegExp,
1178
+ G as getQuarterlyRegExp,
1184
1179
  Pt as getQuartersData,
1185
1180
  dn as getQueryTimePeriodFilters,
1186
1181
  Ue as getRequestAcceptHeader,
@@ -1189,13 +1184,13 @@ export {
1189
1184
  ft as getSemiAnnuallyRegExp,
1190
1185
  C as getSeriesAttributes,
1191
1186
  Ze as getSeriesName,
1192
- Mn as getStructureComponentsMap,
1187
+ qn as getStructureComponentsMap,
1193
1188
  Cn as getStructureDimensions,
1194
- qn as getTimeDimension,
1189
+ kn as getTimeDimension,
1195
1190
  Wn as getTimePeriods,
1196
1191
  Vn as getTimeQueryFilter,
1197
1192
  fn as getTimeRangeFromAttachment,
1198
- kn as getTimeSeriesCount,
1193
+ Mn as getTimeSeriesCount,
1199
1194
  Bn as getTimeSeriesFilterKey,
1200
1195
  tt as getTimeSeriesId,
1201
1196
  Re as getWeekCode,
@@ -1205,11 +1200,11 @@ export {
1205
1200
  gn as getWeeksColumns,
1206
1201
  sn as getWildCardRegexp,
1207
1202
  Ne as getYearPeriod,
1208
- k as getYearlyRegExp,
1203
+ M as getYearlyRegExp,
1209
1204
  xt as getYears,
1210
1205
  Et as isDaily,
1211
1206
  F as isMonthly,
1212
- G as isQuarterly,
1207
+ K as isQuarterly,
1213
1208
  B as isSemiAnnually,
1214
1209
  j as isWeekly,
1215
1210
  on as isWildCardVersionCorrect,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epam/statgpt-sdmx-toolkit",
3
- "version": "0.2.0-rc.11",
3
+ "version": "0.2.0-rc.13",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": {
@@ -14,8 +14,8 @@
14
14
  "module": "./index.mjs",
15
15
  "types": "./index.d.ts",
16
16
  "dependencies": {
17
- "@epam/statgpt-dial-toolkit": "0.2.0-rc.11",
18
- "@epam/statgpt-shared-toolkit": "0.2.0-rc.11",
17
+ "@epam/statgpt-dial-toolkit": "0.2.0-rc.13",
18
+ "@epam/statgpt-shared-toolkit": "0.2.0-rc.13",
19
19
  "compare-versions": "^6.1.1"
20
20
  }
21
21
  }
package/utils/urn.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ArtifactChildUrnParsed, SplittedUrn } from '../models/splitted-urn';
2
2
  export declare const getKeyFromUrn: (urn?: string | null) => string | undefined;
3
- export declare const splitUrn: (urn?: string | null) => SplittedUrn;
3
+ export declare const splitUrn: (urn?: string) => SplittedUrn;
4
4
  export declare const getChildParsedUrn: (childUrn: string) => ArtifactChildUrnParsed;
5
5
  export declare const generateShortUrn: (id?: string, version?: string, agency?: string) => string;