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