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