@epam/statgpt-sdmx-toolkit 0.2.0-rc.37 → 0.2.0-rc.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.cjs +1 -1
  2. package/index.mjs +33 -33
  3. package/package.json +3 -3
package/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=e=>{if(e!=null){const t=e.split("=");return t.length===1?e:t[1]}},p=e=>{var 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},ve=e=>{const[t,n]=e.split(")."),{agency:r,id:s,version:o}=p(t+")");return{childId:n,agency:r,id:s,version:o}},Pt=(e,t,n)=>{const r=t===""?"":`(${t})`;return`${n}:${e}${r}`};var b=(e=>(e.DESCENDANTS="descendants",e.NONE="none",e.ALL="all",e))(b||{}),re=(e=>(e.EXACT="exact",e.AVAILABLE="available",e))(re||{});const Nt=(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:b.NONE},a=Nt(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||{}),Pe=(e=>(e.ID="id",e.NAME="name",e.ID_NAME="both",e))(Pe||{}),Ne=(e=>(e.FULL_DATASET="full",e.DATA_IN_TABLE="query",e))(Ne||{});const _e=(e,t)=>{switch(e){case w.CSV:return N("application/vnd.sdmx.data+csv;version=2.0.0",t);case w.XML:return N("application/vnd.sdmx.data+xml;version=3.0.0",t);case w.JSON:return N(`application/${e}`,t);default:return N("application/vnd.sdmx.data+csv;version=2.0.0",t)}},N=(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",$e="&",Ee=":",$t="=",Oe="+",Ot=",",be="*",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($e);return`${`${Ie}/${o}/${i}/${a}`}/${r||be}?${c}`},bt=(e="",t="",n="",r=b.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(bt(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 Ut=(e,t)=>e.error||e.message||`${t.status} ${t.statusText}`,Ct="application/json",Wt="Content-Type",J="Api-Key",xt="X-CONVERSATION-ID",I="Ocp-Apim-Subscription-Key";class he extends Error{constructor(t){super(t.message),this.name="HttpError",this.status=t.status,this.details=t.details}}const _=e=>isNaN(Date.parse(e))?null:new Date(e),Z=(e,t,n)=>{const r={[Wt]:(t==null?void 0:t.contentType)||Ct};return t!=null&&t.jwt&&(r.Authorization=`Bearer ${t.jwt}`),t!=null&&t.chatReference&&(r[xt]=t.chatReference),{...r,...n}},Yt=e=>{const t={...e};return t[J]&&(t[J]=t[J].substring(0,8)+"...[REDACTED]"),t.Authorization&&(t.Authorization="Bearer [REDACTED]"),t[I]&&(t[I]=t[I].substring(0,8)+"...[REDACTED]"),t},De=async(e,t,n)=>await fetch(e,{method:n.method||"GET",headers:t,body:n.body?JSON.stringify(n.body):void 0}),Mt=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 kt{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 Mt(t,{Accept:"text/event-stream",...o},{method:"POST",body:n,signal:r});if(!i.ok){const a=await i.text();let c={};try{c=JSON.parse(a)}catch{c.message="Failed to parse error body"}throw new he({status:i.status,message:c.message??"No response body"})}if(!i.body)throw new he({message:"No response body",status:i.status});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(`
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},ve=e=>{const[t,n]=e.split(")."),{agency:r,id:s,version:o}=p(t+")");return{childId:n,agency:r,id:s,version:o}},Pt=(e,t,n)=>{const r=t===""?"":`(${t})`;return`${n}:${e}${r}`};var b=(e=>(e.DESCENDANTS="descendants",e.NONE="none",e.ALL="all",e))(b||{}),re=(e=>(e.EXACT="exact",e.AVAILABLE="available",e))(re||{});const Nt=(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:b.NONE},a=Nt(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||{}),Pe=(e=>(e.ID="id",e.NAME="name",e.ID_NAME="both",e))(Pe||{}),Ne=(e=>(e.FULL_DATASET="full",e.DATA_IN_TABLE="query",e))(Ne||{});const _e=(e,t)=>{switch(e){case w.CSV:return N("application/vnd.sdmx.data+csv;version=2.0.0",t);case w.XML:return N("application/vnd.sdmx.data+xml;version=3.0.0",t);case w.JSON:return N(`application/${e}`,t);default:return N("application/vnd.sdmx.data+csv;version=2.0.0",t)}},N=(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",$e="&",Ee=":",$t="=",Oe="+",Ot=",",be="*",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($e);return`${`${Ie}/${o}/${i}/${a}`}/${r||be}?${c}`},bt=(e="",t="",n="",r=b.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(bt(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 Ut=(e,t)=>e.error||e.message||`${t.status} ${t.statusText}`,Ct="application/json",Wt="Content-Type",J="Api-Key",xt="X-CONVERSATION-ID",I="Ocp-Apim-Subscription-Key";class he extends Error{constructor(t){super(t.message),this.isHttpError=!0,this.name="HttpError",this.status=t.status,this.details=t.details}}const _=e=>isNaN(Date.parse(e))?null:new Date(e),Z=(e,t,n)=>{const r={[Wt]:(t==null?void 0:t.contentType)||Ct};return t!=null&&t.jwt&&(r.Authorization=`Bearer ${t.jwt}`),t!=null&&t.chatReference&&(r[xt]=t.chatReference),{...r,...n}},Yt=e=>{const t={...e};return t[J]&&(t[J]=t[J].substring(0,8)+"...[REDACTED]"),t.Authorization&&(t.Authorization="Bearer [REDACTED]"),t[I]&&(t[I]=t[I].substring(0,8)+"...[REDACTED]"),t},De=async(e,t,n)=>await fetch(e,{method:n.method||"GET",headers:t,body:n.body?JSON.stringify(n.body):void 0}),Mt=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 kt{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 Mt(t,{Accept:"text/event-stream",...o},{method:"POST",body:n,signal:r});if(!i.ok){const a=await i.text();let c={};try{c=JSON.parse(a)}catch{c.error="Failed to parse error body"}throw new he({status:i.status,message:c.error??"No response body"})}if(!i.body)throw new he({message:"No response body",status:i.status});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
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 kt;class Qt{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[I]=this.config.apiKey);const i=new ReadableStream({async start(c){var u;try{const l=await De(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 De(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=Ut(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:Yt(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 Ft=["FREQ","FREQUENCY"];var Le=(e=>(e.CONDITIONAL="Conditional",e.MANDATORY="Mandatory",e))(Le||{}),L=(e=>(e.DIMENSION="Dimension",e.MEASURE_DIMENSION="MeasureDimension",e.TIME_DIMENSION="TimeDimension",e))(L||{}),Ue=(e=>(e.UNBOUNDED="unbounded",e))(Ue||{});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},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()})},xe="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}=Ye(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(...Gt(S,n));const K=$((r==null?void 0:r.series)||[],m=>G[m]),j=Kt(((d=n.attributes)==null?void 0:d.dataSet)||[],((f=t[0].attributes)==null?void 0:f.filter(m=>m!=null))||[]),H=Ce(e,y),z=o.map((m,wt)=>{const fe=H[m.id],vt=We(m,fe.values[wt]);return{attribute:m,dimensionGroupValue:vt,dimensionGroupData:fe}});c.push({name:D,parsedTimeSeriesValue:y,values:A,attributes:K,dataSetAttrs:j,dimensionGroupAttributes:z})}return c},Ye=(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:Me(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?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)},Me=e=>e.map(t=>t?ke(t):"").join("."),ke=e=>e.replace(/\./g,"|.").replace(/:/g,"|:"),Gt=(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:Ae(e,t.measures),obsAttributes:$(((c=t.attributes)==null?void 0:c.observation)||[],g=>e[g+n]),dimensionAtObservation:xe}];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:Ae(r[g],t.measures),obsAttributes:$(((l=t.attributes)==null?void 0:l.observation)||[],d=>r[g][d+n])})}return o},Ae=(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 jt(n,r,o,""),n},[]),jt=(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||""})},Qe=/^[0-9][0-9][0-9][0-9]-Q[1-4]$/,Fe=/^[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]$/,Ve=/^[0-9][0-9][0-9][0-9]-(0[1-9]|1[0-2])-[0-9][0-9]$/,Ge=/^[0-9][0-9][0-9][0-9]-M(0[1-9]|(1[0-2]))$/,U=e=>Be.exec(e),C=e=>!!U(e),Ke=e=>qe.exec(e),W=e=>!!Ke(e),x=e=>Ge.exec(e),Y=e=>!!x(e),M=e=>Qe.exec(e),k=e=>!!M(e),je=e=>Ve.exec(e),He=e=>!!je(e),ze=e=>Fe.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 Ht(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=Ht(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 Je(e){const[t,n]=e.split("-W"),s=ce(+t).getTime()+(+n-1)*ae-3*ie;return new Date(s)}function Xe(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)?Xt(e):k(e)?en(e):Y(e)?nn(e):Q(e)?Je(e):sn(e)}function de(e){return C(e)?Jt(e):W(e)?Zt(e):k(e)?tn(e):Y(e)?rn(e):Q(e)?Xe(e):on(e)}function zt(e){const t=U(e);if(t)return new Date(Number(t[0]),0,1)}function Jt(e){const t=U(e);if(t)return new Date(Number(t[0])+1,0,1)}function Xt(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 Zt(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 en(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 tn(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 nn(e){const t=x(e);if(!t)return;const[n,r]=t[0].split("-M");return new Date(+n,+r-1,1)}function rn(e){const t=x(e);if(!t)return;const[n,r]=t[0].split("-M");return new Date(+n,+r,1)}const sn=e=>new Date(`${e}T00:00:00`),on=e=>{const t=new Date(`${e}T23:59:00`);return t.setMinutes(t.getMinutes()+1),t},an=1,Ze=(e,t,n,r=!0,s="Q")=>{const o=[],i=t&&t>3?fn(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},et=(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},cn=e=>Math.ceil(e/3),tt=(e,t,n="M")=>`${e}-${n}${t.toString().padStart(2,"0")}`,un=(e,t,n="M")=>{const r=[];for(let s=t;s<=12;s++)r.push(tt(e,s,n));return r},ln=(e,t,n,r="M")=>{const s=[];for(let o=t;o<n;o++)s.push(tt(e,o,r));return s},nt=(e,t,n,r="M")=>{const s=t||1,o=n==null,i=n||12;return o?un(e,s,r):ln(e,s,i,r)},dn=(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[]}},rt=(e,t)=>{const n=T(t,!0),r=T(e),s=n.getFullYear(),o=r.getFullYear(),i=n.getTime()<=r.getTime()?o+an-s:0;return Array.from({length:i},(c,u)=>s+u)},T=(e,t=!1)=>{const n=gn(e,t);return n?(n.getTimezoneOffset()>0&&n.setMinutes(n.getMinutes()+n.getTimezoneOffset()),n):new Date},gn=(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)},fn=(e,t)=>t?Math.floor((e+1)/3):Math.ceil((e+1)/3),En=(e,t)=>{const n=Se(e)-Se(t);if(n===0&&e!==t){const r=ye(e),s=ye(t);return r-s}return n},ye=e=>C(e)?6:W(e)?5:k(e)?4:Y(e)?3:Q(e)?2:He(e)?1:0,Se=(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||{}),st=(e=>(e.C="c",e))(st||{}),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||{}),ot=(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))(ot||{}),it=(e=>(e.ANNUAL="A",e.QUARTERLY="Q",e.MONTHLY="M",e))(it||{});function hn(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),at=(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);at(r,t,n)}},ct=(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=>{at(s,n,r)}),Array.from(n==null?void 0:n.values())},ut="time_period_end",lt="time_period_start",dt="TIME_PERIOD",Dn=e=>{const t=e==null?void 0:e.find(o=>o.id===lt),n=e==null?void 0:e.find(o=>o.id===ut),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}},An=(e,t)=>e.id.localeCompare(t.id),yn=(e,t)=>e.memberValue.localeCompare(t.memberValue),Sn=(e,t)=>{const n=new Array(e.length),r=e.map((i,a)=>[i,a]);r.sort((i,a)=>An(i[0],a[0]));const s=[...t];s.sort(yn);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)},mn=e=>!!(e!=null&&e.some(t=>t.parent)),Tn=(e,t,n,r,s=[])=>{var i,a;let o=e||[];if(Rn(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})):Sn(o,u.selectionValues):o=[]}}else s.length!==0&&(o=o.filter(({id:c})=>s.includes(c)));return mn(e)&&(o=ct(e,o)),o==null?void 0:o.map(c=>({...c,name:r?q(c,r):c==null?void 0:c.name}))},Rn=(e,t)=>e!=null&&e.length>0&&t!=null,pn=e=>{var n;const t=[];return(n=e==null?void 0:e.filters)==null||n.forEach(r=>{r.componentCode!==dt&&t.push({componentCode:r.componentCode,operator:R.EQUALS,value:r.values.join(",")})}),t},wn=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,me=e=>{if(typeof e!="string")throw new TypeError("Invalid argument expected string");const t=e.match(wn);if(!t)throw new Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},Te=e=>e==="*"||e==="x"||e==="X",Re=e=>{const t=parseInt(e,10);return isNaN(t)?e:t},vn=(e,t)=>typeof e!=typeof t?[String(e),String(t)]:[e,t],Pn=(e,t)=>{if(Te(e)||Te(t))return 0;const[n,r]=vn(Re(e),Re(t));return n>r?1:n<r?-1:0},pe=(e,t)=>{for(let n=0;n<Math.max(e.length,t.length);n++){const r=Pn(e[n]||"0",t[n]||"0");if(r!==0)return r}return 0},Nn=(e,t)=>{const n=me(e),r=me(t),s=n.pop(),o=r.pop(),i=pe(n,r);return i!==0?i:s&&o?pe(s.split("."),o.split(".")):s||o?s?-1:1:0},_n=(e,t,n)=>{In(n);const r=Nn(e,t);return gt[n].includes(r)},gt={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},we=Object.keys(gt),In=e=>{if(we.indexOf(e)===-1)throw new Error(`Invalid operator, expected one of ${we.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=ft(s,i);return o.find(c=>c.version===a[0])},ft=(e,t)=>{const n=$n(e,t);return n.length>0?[n[0]]:[]},$n=(e,t)=>{const n=[];return t.forEach(r=>{ht(e,r)&&n.push(r)}),n},Et=e=>{const t=e.trim().replace(/\d+\+/,"*"),[n]=t.split("*");return new RegExp(`^${n}`)},ht=(e,t)=>{const n=e.trim().replace(/\+/,"");return Et(e).test(t)&&_n(t,n,">=")},V=(e,t)=>{const{concept:n}=Dt(e,t);return n},Dt=(e,t)=>{if(e==null)return{concept:void 0,scheme:void 0};const{childId:n,agency:r,id:s,version:o}=ve(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(On(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),On=(e,t,n,r)=>e.id===t&&e.agencyID===n&&e.version===r,bn=(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})))||[]},At=(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}})},Un=(e=[],t,n)=>{const r=v(t==null?void 0:t.conceptIdentity)||"",s=V(r,e);return n?q(s,n):(s==null?void 0:s.name)??(s==null?void 0:s.id)??(t==null?void 0:t.id)};function ne(e){var t,n,r;return(r=(n=(t=e==null?void 0:e.dataStructures)==null?void 0:t[0])==null?void 0:n.dataStructureComponents)==null?void 0:r.dimensionList}function Cn(e){var t,n,r,s;return((s=(r=(n=(t=e==null?void 0:e.data)==null?void 0:t.structures)==null?void 0:n[0])==null?void 0:r.dimensions)==null?void 0:s.series)||[]}function Wn(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 xn(e){return e.find(t=>t.type===L.TIME_DIMENSION)}const Yn=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)||[],...At(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},Mn=e=>{var t;return((t=e==null?void 0:e.find(n=>n.id===F.SERIES_COUNT))==null?void 0:t.title)||""},kn="/api/download",Qn=(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=`${kn}?${a}`;window.open(c,"_blank")},Fn=(e,t)=>{var r,s;const n=[];for(const o of e){if(o.type!==L.DIMENSION)continue;const i=t.find(a=>a.componentCode===o.id);i!=null&&((r=i.values)==null?void 0:r.length)>0?n.push((s=i.values)==null?void 0:s.join(Oe)):n.push("*")}return n.join(".")},yt=(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}]`)}${$t}${encodeURIComponent(i)}`).join($e)},qn=(e,t)=>{const n=St(e,t)||null;return n?yt(n,t==null?void 0:t.id):null},St=(e,t)=>{var c,u;const n=t.id,r=(c=e==null?void 0:e.filters)==null?void 0:c.find(l=>l.componentCode===n);if(!r||!r.values)return null;const s=(u=r.values)==null?void 0:u.filter(l=>!!l);if(!s.length)return null;const o=r.operator;if(o===R.LESS_OR_EQUAL||o===R.LESS)return{startPeriod:null,endPeriod:_(s[0])};if(o===R.GREATER_OR_EQUAL||o===R.GREATER)return{startPeriod:_(s[0]),endPeriod:null};const i=_(s[0]),a=_(s[1]);return{startPeriod:i,endPeriod:a}},ge=(e,t,n)=>{const r=T(t,!0),s=T(n),o=T(e,!0),i=T(e),a=r.getTime()>o.getTime()?r:o,c=s.getTime()<i.getTime()?s:i;return{start:a,end:c}},mt=(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},Rt=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"))}),Vn=(e,t,n,r)=>{var i,a;const s=r===0?((i=T(t.toString(),!0))==null?void 0:i.getMonth())+1:void 0,o=r===e.length-1?((a=T(n.toString()))==null?void 0:a.getMonth())+1||1:void 0;return{startMonth:s,endMonth:o}},pt=["FREQUENCY","FREQ"],Gn=(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=>pt.includes(h.componentId)))==null?void 0:E.selectionValues,r=Rt(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=rt(o,s),a=[];return i.forEach((h,A)=>{const D=[],{startMonth:y,endMonth:S}=Vn(i,new Date(s),new Date(o),A),{isDailyExist:G,isWeeklyExist:K,isMonthlyExist:j,isQuarterlyExist:H,isSemiAnnualExist:z,isYearlyExist:m}=r;m&&D.push(h.toString()),z&&D.push(...et(h,y,S)),H&&D.push(...Ze(h,y,S,!1)),j&&D.push(...nt(h,y,S)),K&&D.push(...mt(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=L;exports.DownloadType=Ne;exports.FREQUENCY_DIMENSION_ID=Ft;exports.FREQUENCY_DIM_ID=pt;exports.FileColumnsAttribute=Pe;exports.GET_v3_FILTER_ALL=be;exports.GET_v3_FILTER_AND=Ot;exports.GET_v3_FILTER_OR=Oe;exports.OBSERVATION_KEY=xe;exports.OccurrenceType=Ue;exports.Periods=it;exports.RepresentationTextType=ot;exports.SDMX_DATA_QUERY_PARAMS=st;exports.SINGLE_WILDCARD_SYMBOL=O;exports.SdmxApiClient=Qt;exports.SdmxAvailabilityMode=re;exports.SdmxDataFormat=w;exports.SdmxDetails=se;exports.SdmxReferences=b;exports.SeriesFilterOperator=R;exports.TIME_PERIOD=dt;exports.TIME_PERIOD_END=ut;exports.TIME_PERIOD_START=lt;exports.dailyPattern=Ve;exports.decodeDimensionId=ke;exports.findCodelistByDimension=bn;exports.generateDatasetDataRequest=X;exports.generateShortUrn=Pt;exports.getAdditionalColumns=Gn;exports.getAnnotationPeriod=Dn;exports.getArtifactByUrnWithWildCard=B;exports.getAttachedDimensionsSeriesByDimension=qt;exports.getAttachedDimensionsSeriesByTsId=Ce;exports.getAttachedDimensionsSeriesKey=oe;exports.getAttributeValueFromDataQueryResponse=We;exports.getAvailableCodes=Ln;exports.getAvailableCodesFromConstrains=Tn;exports.getChildParsedUrn=ve;exports.getConcept=V;exports.getConceptByUrn=te;exports.getConceptWithScheme=Dt;exports.getConvertedMetaAttributes=At;exports.getDailyRegExp=je;exports.getDaysColumns=Tt;exports.getDimensionTitle=Un;exports.getDimensions=ne;exports.getFilteredItemsWithParents=ct;exports.getFiltersDtoFromDataQuery=pn;exports.getISOWeek=P;exports.getKeyFromUrn=v;exports.getLastUpdatedTime=hn;exports.getLastWeekNumberOfYear=ee;exports.getLocalizedName=q;exports.getMonthlyData=nt;exports.getMonthlyDataByQuarter=dn;exports.getMonthlyRegExp=x;exports.getParsedEndPeriodDate=de;exports.getParsedResponse=Bt;exports.getParsedStartPeriodDate=le;exports.getPeriodDate=T;exports.getPeriods=Rt;exports.getQuarterByMonth=cn;exports.getQuarterlyRegExp=M;exports.getQuartersData=Ze;exports.getQueryTimePeriodFilters=yt;exports.getRequestAcceptHeader=_e;exports.getResolvedVersionBySingleWildcard=ft;exports.getSemiAnnualData=et;exports.getSemiAnnuallyRegExp=Ke;exports.getSeriesAttributes=$;exports.getSeriesName=Ye;exports.getStructureComponentsMap=Yn;exports.getStructureDimensions=Cn;exports.getTimeDimension=xn;exports.getTimePeriods=Wn;exports.getTimeQueryFilter=qn;exports.getTimeRangeFromAttachment=St;exports.getTimeSeriesCount=Mn;exports.getTimeSeriesFilterKey=Fn;exports.getTimeSeriesId=Me;exports.getWeekCode=ue;exports.getWeeklyPeriodEndDate=Xe;exports.getWeeklyPeriodStartDate=Je;exports.getWeeklyRegExp=ze;exports.getWeeksColumns=mt;exports.getWildCardRegexp=Et;exports.getYearPeriod=ge;exports.getYearlyRegExp=U;exports.getYears=rt;exports.isDaily=He;exports.isMonthly=Y;exports.isQuarterly=k;exports.isSemiAnnually=W;exports.isWeekly=Q;exports.isWildCardVersionCorrect=ht;exports.isYearly=C;exports.monthlyPattern=Ge;exports.openDownloadWindow=Qn;exports.quarterPattern=Qe;exports.semiAnnuallyPattern=qe;exports.sortPeriods=En;exports.splitUrn=p;exports.weeklyPattern=Fe;exports.yearlyPattern=Be;
package/index.mjs CHANGED
@@ -3,7 +3,7 @@ const I = (e) => {
3
3
  const t = e.split("=");
4
4
  return t.length === 1 ? e : t[1];
5
5
  }
6
- }, p = (e) => {
6
+ }, w = (e) => {
7
7
  var s;
8
8
  if (e == null)
9
9
  return {};
@@ -14,7 +14,7 @@ const I = (e) => {
14
14
  };
15
15
  return t && (t.includes(":") && (n.agency = t.split(":")[0], n.id = t.split(":")[1].split("(")[0]), t.includes("(") && t.includes(")") && (n.version = (s = t.split("(")[1]) == null ? void 0 : s.split(")")[0])), n;
16
16
  }, Pe = (e) => {
17
- const [t, n] = e.split(")."), { agency: s, id: r, version: o } = p(t + ")");
17
+ const [t, n] = e.split(")."), { agency: s, id: r, version: o } = w(t + ")");
18
18
  return { childId: n, agency: s, id: r, version: o };
19
19
  }, Tn = (e, t, n) => {
20
20
  const s = t === "" ? "" : `(${t})`;
@@ -27,7 +27,7 @@ class Rn {
27
27
  this.client = t;
28
28
  }
29
29
  async getConstraints(t, n) {
30
- const { agency: s, id: r, version: o } = p(t), i = {
30
+ const { agency: s, id: r, version: o } = w(t), i = {
31
31
  filters: n || [],
32
32
  mode: ye.AVAILABLE,
33
33
  references: k.NONE
@@ -58,16 +58,16 @@ const xe = (e, t) => {
58
58
  }
59
59
  }, m = (e, t) => `${e}; labels=${t}`;
60
60
  var Se = /* @__PURE__ */ ((e) => (e.REFERENCE_PARTIAL = "referencepartial", e.FULL = "full", e))(Se || {});
61
- const Ye = "all", Ce = "sdmx/3.0/data/dataflow", Te = "&", se = ":", We = "=", ke = "+", wn = ",", qe = "*", re = (e, t, n) => {
62
- const { filterKey: s, timeFilter: r } = n, { agency: o, id: i, version: c } = p(e), a = [r || "", t].filter((l) => !!l).join(Te);
61
+ const Ye = "all", Ce = "sdmx/3.0/data/dataflow", Te = "&", se = ":", We = "=", ke = "+", pn = ",", qe = "*", re = (e, t, n) => {
62
+ const { filterKey: s, timeFilter: r } = n, { agency: o, id: i, version: c } = w(e), a = [r || "", t].filter((l) => !!l).join(Te);
63
63
  return `${`${Ce}/${o}/${i}/${c}`}/${s || qe}?${a}`;
64
64
  }, Me = (e = "", t = "", n = "", s = k.DESCENDANTS) => `sdmx/3.0/structure/dataflow/${e}/${t}/${n}?references=${s}&detail=${Se.REFERENCE_PARTIAL}`;
65
- class pn {
65
+ class wn {
66
66
  constructor(t) {
67
67
  this.client = t;
68
68
  }
69
69
  async getDataSet(t, n) {
70
- const { agency: s, id: r, version: o } = p(t);
70
+ const { agency: s, id: r, version: o } = w(t);
71
71
  return await this.client.getRequest(
72
72
  Me(s, r, o, n)
73
73
  );
@@ -105,7 +105,7 @@ class pn {
105
105
  const Qe = (e, t) => e.error || e.message || `${t.status} ${t.statusText}`, Be = "application/json", Ve = "Content-Type", x = "Api-Key", Fe = "X-CONVERSATION-ID", $ = "Ocp-Apim-Subscription-Key";
106
106
  class oe extends Error {
107
107
  constructor(t) {
108
- super(t.message), this.name = "HttpError", this.status = t.status, this.details = t.details;
108
+ super(t.message), this.isHttpError = !0, this.name = "HttpError", this.status = t.status, this.details = t.details;
109
109
  }
110
110
  }
111
111
  const v = (e) => isNaN(Date.parse(e)) ? null : new Date(e), Y = (e, t, n) => {
@@ -165,11 +165,11 @@ class je {
165
165
  try {
166
166
  a = JSON.parse(c);
167
167
  } catch {
168
- a.message = "Failed to parse error body";
168
+ a.error = "Failed to parse error body";
169
169
  }
170
170
  throw new oe({
171
171
  status: i.status,
172
- message: a.message ?? "No response body"
172
+ message: a.error ?? "No response body"
173
173
  });
174
174
  }
175
175
  if (!i.body)
@@ -559,7 +559,7 @@ function ae(e, t = "W") {
559
559
  const r = `${e}-12-24`;
560
560
  return _(new Date(r), t).weekNumber;
561
561
  }
562
- function we(e, t, n = "W") {
562
+ function pe(e, t, n = "W") {
563
563
  return `${e}-${n}${t < 10 ? "0" + t : t}`;
564
564
  }
565
565
  function _(e, t = "W") {
@@ -567,7 +567,7 @@ function _(e, t = "W") {
567
567
  (n.getTime() - r.getTime()) / z
568
568
  );
569
569
  return {
570
- code: we(s, o, t),
570
+ code: pe(s, o, t),
571
571
  weekNumber: o,
572
572
  weekYear: s
573
573
  };
@@ -580,11 +580,11 @@ function St(e) {
580
580
  const [t, n] = e.split("-W"), r = J(+t).getTime() + (+n - 1) * z + 3 * H;
581
581
  return new Date(r);
582
582
  }
583
- function pe(e) {
584
- return Q(e) ? Tt(e) : B(e) ? wt(e) : K(e) ? mt(e) : F(e) ? Nt(e) : j(e) ? yt(e) : It(e);
583
+ function we(e) {
584
+ return Q(e) ? Tt(e) : B(e) ? pt(e) : K(e) ? mt(e) : F(e) ? Nt(e) : j(e) ? yt(e) : It(e);
585
585
  }
586
586
  function me(e) {
587
- return Q(e) ? Rt(e) : B(e) ? pt(e) : K(e) ? vt(e) : F(e) ? $t(e) : j(e) ? St(e) : _t(e);
587
+ return Q(e) ? Rt(e) : B(e) ? wt(e) : K(e) ? vt(e) : F(e) ? $t(e) : j(e) ? St(e) : _t(e);
588
588
  }
589
589
  function Tt(e) {
590
590
  const t = M(e);
@@ -596,7 +596,7 @@ function Rt(e) {
596
596
  if (t)
597
597
  return new Date(Number(t[0]) + 1, 0, 1);
598
598
  }
599
- function wt(e) {
599
+ function pt(e) {
600
600
  const [t, n] = e.split("-S");
601
601
  switch (+n) {
602
602
  case 1:
@@ -605,7 +605,7 @@ function wt(e) {
605
605
  return new Date(+t, 6, 1);
606
606
  }
607
607
  }
608
- function pt(e) {
608
+ function wt(e) {
609
609
  const [t, n] = e.split("-S");
610
610
  switch (+n) {
611
611
  case 1:
@@ -721,7 +721,7 @@ const It = (e) => /* @__PURE__ */ new Date(`${e}T00:00:00`), _t = (e) => {
721
721
  return n ? (n.getTimezoneOffset() > 0 && n.setMinutes(n.getMinutes() + n.getTimezoneOffset()), n) : /* @__PURE__ */ new Date();
722
722
  }, Ct = (e, t = !1) => {
723
723
  const n = Number(e);
724
- return e.toString().length !== 13 ? t ? pe(e) : me(e) : isNaN(n) ? /* @__PURE__ */ new Date(`${e}T00:00:00.000Z`) : new Date(n);
724
+ return e.toString().length !== 13 ? t ? we(e) : me(e) : isNaN(n) ? /* @__PURE__ */ new Date(`${e}T00:00:00.000Z`) : new Date(n);
725
725
  }, Wt = (e, t) => t ? Math.floor((e + 1) / 3) : Math.ceil((e + 1) / 3), On = (e, t) => {
726
726
  const n = le(e) - le(t);
727
727
  if (n === 0 && e !== t) {
@@ -730,10 +730,10 @@ const It = (e) => /* @__PURE__ */ new Date(`${e}T00:00:00`), _t = (e) => {
730
730
  }
731
731
  return n;
732
732
  }, ue = (e) => Q(e) ? 6 : B(e) ? 5 : K(e) ? 4 : F(e) ? 3 : j(e) ? 2 : Et(e) ? 1 : 0, le = (e, t = !1) => {
733
- const n = t ? pe(e) : me(e);
733
+ const n = t ? we(e) : me(e);
734
734
  return (n == null ? void 0 : n.getTime()) || 0;
735
735
  };
736
- var X = /* @__PURE__ */ ((e) => (e.LAST_UPDATE_AT = "lastUpdatedAt", e.SERIES_COUNT = "series_count", e))(X || {}), kt = /* @__PURE__ */ ((e) => (e.C = "c", e))(kt || {}), w = /* @__PURE__ */ ((e) => (e.EQUALS = "eq", e.NOT_EQUALS = "ne", e.LESS = "lt", e.LESS_OR_EQUAL = "le", e.GREATER = "gt", e.GREATER_OR_EQUAL = "ge", e.CONTAINS = "co", e.NOT_CONTAINS = "nc", e.STARTS = "sw", e.ENDS = "ew", e))(w || {}), qt = /* @__PURE__ */ ((e) => (e.BOOLEAN = "Boolean", e.DATE_TIME = "DateTime", e.DECIMAL = "Decimal", e.INTEGER = "Integer", e.OBSERVATION_TIME_PERIOD = "ObservationalTimePeriod", e.STRING = "String", e.TIME = "Time", e.TIME_RANGE = "TimeRange", e.URI = "URI", e))(qt || {}), Mt = /* @__PURE__ */ ((e) => (e.ANNUAL = "A", e.QUARTERLY = "Q", e.MONTHLY = "M", e))(Mt || {});
736
+ var X = /* @__PURE__ */ ((e) => (e.LAST_UPDATE_AT = "lastUpdatedAt", e.SERIES_COUNT = "series_count", e))(X || {}), kt = /* @__PURE__ */ ((e) => (e.C = "c", e))(kt || {}), p = /* @__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))(p || {}), qt = /* @__PURE__ */ ((e) => (e.BOOLEAN = "Boolean", e.DATE_TIME = "DateTime", e.DECIMAL = "Decimal", e.INTEGER = "Integer", e.OBSERVATION_TIME_PERIOD = "ObservationalTimePeriod", e.STRING = "String", e.TIME = "Time", e.TIME_RANGE = "TimeRange", e.URI = "URI", e))(qt || {}), Mt = /* @__PURE__ */ ((e) => (e.ANNUAL = "A", e.QUARTERLY = "Q", e.MONTHLY = "M", e))(Mt || {});
737
737
  function Pn(e) {
738
738
  var t, n;
739
739
  return (n = (t = e == null ? void 0 : e.annotations) == null ? void 0 : t.find((s) => {
@@ -803,7 +803,7 @@ const Z = (e, t) => (e == null ? void 0 : e.names) && (e == null ? void 0 : e.na
803
803
  return (n = e == null ? void 0 : e.filters) == null || n.forEach((s) => {
804
804
  s.componentCode !== Ft && t.push({
805
805
  componentCode: s.componentCode,
806
- operator: w.EQUALS,
806
+ operator: p.EQUALS,
807
807
  value: s.values.join(",")
808
808
  });
809
809
  }), t;
@@ -847,7 +847,7 @@ const Z = (e, t) => (e == null ? void 0 : e.names) && (e == null ? void 0 : e.na
847
847
  if (Ee.indexOf(e) === -1)
848
848
  throw new Error(`Invalid operator, expected one of ${Ee.join("|")}`);
849
849
  }, W = "+", ee = (e, t) => {
850
- const { agency: n, id: s, version: r } = p(e), o = t.filter(
850
+ const { agency: n, id: s, version: r } = w(e), o = t.filter(
851
851
  (a) => {
852
852
  var u;
853
853
  return a.agencyID === n && a.id === s && !((u = a == null ? void 0 : a.version) != null && u.includes(W));
@@ -1021,9 +1021,9 @@ const Mn = (e) => {
1021
1021
  return null;
1022
1022
  const n = [], { startPeriod: s, endPeriod: r } = e;
1023
1023
  if (s && n.push(
1024
- `${w.GREATER_OR_EQUAL}${se}${s.toISOString().split("T")[0]}`
1024
+ `${p.GREATER_OR_EQUAL}${se}${s.toISOString().split("T")[0]}`
1025
1025
  ), r && n.push(
1026
- `${w.LESS_OR_EQUAL}${se}${r.toISOString().split("T")[0]}`
1026
+ `${p.LESS_OR_EQUAL}${se}${r.toISOString().split("T")[0]}`
1027
1027
  ), n.length === 0)
1028
1028
  return null;
1029
1029
  const o = t;
@@ -1044,9 +1044,9 @@ const Mn = (e) => {
1044
1044
  if (!r.length)
1045
1045
  return null;
1046
1046
  const o = s.operator;
1047
- if (o === w.LESS_OR_EQUAL || o === w.LESS)
1047
+ if (o === p.LESS_OR_EQUAL || o === p.LESS)
1048
1048
  return { startPeriod: null, endPeriod: v(r[0]) };
1049
- if (o === w.GREATER_OR_EQUAL || o === w.GREATER)
1049
+ if (o === p.GREATER_OR_EQUAL || o === p.GREATER)
1050
1050
  return { startPeriod: v(r[0]), endPeriod: null };
1051
1051
  const i = v(r[0]), c = v(r[1]);
1052
1052
  return { startPeriod: i, endPeriod: c };
@@ -1063,7 +1063,7 @@ const Mn = (e) => {
1063
1063
  const c = _(o, s), a = c.weekYear === r ? c.weekNumber : c.weekYear < r ? 1 : ae(r, s), u = _(i, s), l = u.weekYear === r ? u.weekNumber : u.weekYear > r ? ae(r, s) : 1, f = [];
1064
1064
  if (a < l)
1065
1065
  for (let h = a; h <= l; h++)
1066
- f.push(we(r, h, s));
1066
+ f.push(pe(r, h, s));
1067
1067
  return f;
1068
1068
  }, En = (e) => {
1069
1069
  const t = new Date(e);
@@ -1128,14 +1128,14 @@ export {
1128
1128
  He as AssignmentStatus,
1129
1129
  Rn as AvailabilityApi,
1130
1130
  Ce as DATASET_DATA_URL,
1131
- pn as DatasetApi,
1131
+ wn as DatasetApi,
1132
1132
  q as DimensionType,
1133
1133
  Ue as DownloadType,
1134
1134
  vn as FREQUENCY_DIMENSION_ID,
1135
1135
  Sn as FREQUENCY_DIM_ID,
1136
1136
  Le as FileColumnsAttribute,
1137
1137
  qe as GET_v3_FILTER_ALL,
1138
- wn as GET_v3_FILTER_AND,
1138
+ pn as GET_v3_FILTER_AND,
1139
1139
  ke as GET_v3_FILTER_OR,
1140
1140
  Ze as OBSERVATION_KEY,
1141
1141
  ze as OccurrenceType,
@@ -1148,7 +1148,7 @@ export {
1148
1148
  N as SdmxDataFormat,
1149
1149
  Se as SdmxDetails,
1150
1150
  k as SdmxReferences,
1151
- w as SeriesFilterOperator,
1151
+ p as SeriesFilterOperator,
1152
1152
  Ft as TIME_PERIOD,
1153
1153
  Bt as TIME_PERIOD_END,
1154
1154
  Vt as TIME_PERIOD_START,
@@ -1187,7 +1187,7 @@ export {
1187
1187
  V as getMonthlyRegExp,
1188
1188
  me as getParsedEndPeriodDate,
1189
1189
  $n as getParsedResponse,
1190
- pe as getParsedStartPeriodDate,
1190
+ we as getParsedStartPeriodDate,
1191
1191
  R as getPeriodDate,
1192
1192
  Dn as getPeriods,
1193
1193
  In as getQuarterByMonth,
@@ -1209,7 +1209,7 @@ export {
1209
1209
  Qn as getTimeSeriesCount,
1210
1210
  Vn as getTimeSeriesFilterKey,
1211
1211
  nt as getTimeSeriesId,
1212
- we as getWeekCode,
1212
+ pe as getWeekCode,
1213
1213
  St as getWeeklyPeriodEndDate,
1214
1214
  yt as getWeeklyPeriodStartDate,
1215
1215
  At as getWeeklyRegExp,
@@ -1230,7 +1230,7 @@ export {
1230
1230
  ct as quarterPattern,
1231
1231
  ut as semiAnnuallyPattern,
1232
1232
  On as sortPeriods,
1233
- p as splitUrn,
1233
+ w as splitUrn,
1234
1234
  at as weeklyPattern,
1235
1235
  lt as yearlyPattern
1236
1236
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epam/statgpt-sdmx-toolkit",
3
- "version": "0.2.0-rc.37",
3
+ "version": "0.2.0-rc.39",
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.37",
18
- "@epam/statgpt-shared-toolkit": "0.2.0-rc.37",
17
+ "@epam/statgpt-dial-toolkit": "0.2.0-rc.39",
18
+ "@epam/statgpt-shared-toolkit": "0.2.0-rc.39",
19
19
  "compare-versions": "^6.1.1"
20
20
  }
21
21
  }