@epam/statgpt-sdmx-toolkit 0.2.0-rc.10 → 0.2.0-rc.12
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 +2 -2
- package/index.mjs +48 -53
- package/package.json +3 -3
- package/utils/urn.d.ts +1 -1
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:""};
|
|
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
|
-
|
|
8
|
+
if (e == null)
|
|
9
|
+
return {};
|
|
10
|
+
const t = I(e), n = {
|
|
9
11
|
agency: "",
|
|
10
12
|
id: "",
|
|
11
13
|
version: ""
|
|
12
14
|
};
|
|
13
|
-
|
|
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
|
|
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:
|
|
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 = ",",
|
|
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 ||
|
|
69
|
-
},
|
|
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
|
-
|
|
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
|
|
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
|
-
}),
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 || {}),
|
|
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]))$/,
|
|
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) :
|
|
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) :
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 :
|
|
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 || {}),
|
|
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
|
-
},
|
|
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),
|
|
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(
|
|
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
|
-
})) :
|
|
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 =
|
|
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
|
|
942
|
+
function kn(e) {
|
|
948
943
|
return e.find(
|
|
949
|
-
(t) => t.type ===
|
|
944
|
+
(t) => t.type === q.TIME_DIMENSION
|
|
950
945
|
);
|
|
951
946
|
}
|
|
952
|
-
const
|
|
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
|
-
},
|
|
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 !==
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1132
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1187
|
+
qn as getStructureComponentsMap,
|
|
1193
1188
|
Cn as getStructureDimensions,
|
|
1194
|
-
|
|
1189
|
+
kn as getTimeDimension,
|
|
1195
1190
|
Wn as getTimePeriods,
|
|
1196
1191
|
Vn as getTimeQueryFilter,
|
|
1197
1192
|
fn as getTimeRangeFromAttachment,
|
|
1198
|
-
|
|
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
|
-
|
|
1203
|
+
M as getYearlyRegExp,
|
|
1209
1204
|
xt as getYears,
|
|
1210
1205
|
Et as isDaily,
|
|
1211
1206
|
F as isMonthly,
|
|
1212
|
-
|
|
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.
|
|
3
|
+
"version": "0.2.0-rc.12",
|
|
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.
|
|
18
|
-
"@epam/statgpt-shared-toolkit": "0.2.0-rc.
|
|
17
|
+
"@epam/statgpt-dial-toolkit": "0.2.0-rc.12",
|
|
18
|
+
"@epam/statgpt-shared-toolkit": "0.2.0-rc.12",
|
|
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
|
|
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;
|